Subversion Repositories DevTools

Rev

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

Rev Author Line No. Line
4040 dpurdie 1
--------------------------------------------------------
7000 dpurdie 2
--  File created - Tuesday-April-09-2019   
6999 dpurdie 3
--------------------------------------------------------
4
--------------------------------------------------------
4040 dpurdie 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
 
6999 dpurdie 10
/
11
--------------------------------------------------------
12
--  DDL for Type RELMGR_PKG_DESTROY_ERR_T
13
--------------------------------------------------------
6031 dpurdie 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
 
6999 dpurdie 20
/
21
--------------------------------------------------------
22
--  DDL for Type RELMGR_PKG_DESTROY_ERR_TAB_T
23
--------------------------------------------------------
6031 dpurdie 24
 
25
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."RELMGR_PKG_DESTROY_ERR_TAB_T" 
26
AS TABLE OF RELMGR_PKG_DESTROY_ERR_T;
27
 
6999 dpurdie 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
 
6999 dpurdie 36
/
4040 dpurdie 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
 
6999 dpurdie 44
/
4040 dpurdie 45
--------------------------------------------------------
46
--  DDL for Sequence MICROSOFTSEQDTPROPERTIES
47
--------------------------------------------------------
48
 
6999 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
 
6999 dpurdie 54
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_ADDITIONAL_NOTES"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 38175 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 55
--------------------------------------------------------
6999 dpurdie 56
--  DDL for Sequence SEQ_BLAT_MOD
57
--------------------------------------------------------
58
 
59
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BLAT_MOD"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 261 CACHE 20 NOORDER  NOCYCLE ;
60
--------------------------------------------------------
61
--  DDL for Sequence SEQ_BLAT_SERVER_ID
62
--------------------------------------------------------
63
 
64
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BLAT_SERVER_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 81 CACHE 20 NOORDER  NOCYCLE ;
65
--------------------------------------------------------
4040 dpurdie 66
--  DDL for Sequence SEQ_BMCON_ID
67
--------------------------------------------------------
68
 
6999 dpurdie 69
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BMCON_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 361 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 70
--------------------------------------------------------
71
--  DDL for Sequence SEQ_BM_ID
72
--------------------------------------------------------
73
 
6999 dpurdie 74
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BM_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 6 NOCACHE  ORDER  NOCYCLE ;
75
--------------------------------------------------------
76
--  DDL for Sequence SEQ_BSA_ID
77
--------------------------------------------------------
5172 dpurdie 78
 
6999 dpurdie 79
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BSA_ID"  MINVALUE 8 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 48 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 80
--------------------------------------------------------
6999 dpurdie 81
--  DDL for Sequence SEQ_BUILD_INSTANCE
82
--------------------------------------------------------
5172 dpurdie 83
 
7000 dpurdie 84
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BUILD_INSTANCE"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 240932 CACHE 20 ORDER  NOCYCLE ;
6999 dpurdie 85
--------------------------------------------------------
4040 dpurdie 86
--  DDL for Sequence SEQ_CR_ID
87
--------------------------------------------------------
88
 
6999 dpurdie 89
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_CR_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 95272 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 90
--------------------------------------------------------
91
--  DDL for Sequence SEQ_DAEMON_INSTRUCTION_ID
92
--------------------------------------------------------
93
 
7000 dpurdie 94
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_DAEMON_INSTRUCTION_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 179295 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 95
--------------------------------------------------------
96
--  DDL for Sequence SEQ_GBE_ID
97
--------------------------------------------------------
98
 
6999 dpurdie 99
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_GBE_ID"  MINVALUE 40 MAXVALUE 9999999999999999999999990 INCREMENT BY 1 START WITH 1245 NOCACHE  ORDER  NOCYCLE ;
4040 dpurdie 100
--------------------------------------------------------
101
--  DDL for Sequence SEQ_GROUP_EMAIL_ID
102
--------------------------------------------------------
103
 
6999 dpurdie 104
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_GROUP_EMAIL_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999 INCREMENT BY 1 START WITH 1186 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 105
--------------------------------------------------------
106
--  DDL for Sequence SEQ_MSG_ID
107
--------------------------------------------------------
108
 
6999 dpurdie 109
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_MSG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 582 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 110
--------------------------------------------------------
111
--  DDL for Sequence SEQ_PKG_ID
112
--------------------------------------------------------
113
 
7000 dpurdie 114
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PKG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 68063 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 115
--------------------------------------------------------
116
--  DDL for Sequence SEQ_PROJ_ID
117
--------------------------------------------------------
118
 
6999 dpurdie 119
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PROJ_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1041 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 120
--------------------------------------------------------
121
--  DDL for Sequence SEQ_PV_ID
122
--------------------------------------------------------
123
 
7000 dpurdie 124
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PV_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1238088 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 125
--------------------------------------------------------
126
--  DDL for Sequence SEQ_RCON_ID
127
--------------------------------------------------------
128
 
7000 dpurdie 129
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RCON_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999990 INCREMENT BY 1 START WITH 36790 CACHE 20 ORDER  NOCYCLE ;
6999 dpurdie 130
--------------------------------------------------------
131
--  DDL for Sequence SEQ_RELEASE_MOD
132
--------------------------------------------------------
5172 dpurdie 133
 
7000 dpurdie 134
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RELEASE_MOD"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 298803 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 135
--------------------------------------------------------
136
--  DDL for Sequence SEQ_RTAG_ID
137
--------------------------------------------------------
138
 
7000 dpurdie 139
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RTAG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 39631 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 140
--------------------------------------------------------
141
--  DDL for Sequence SEQ_SCHEDULED_ID
142
--------------------------------------------------------
143
 
7000 dpurdie 144
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SCHEDULED_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999990 INCREMENT BY 1 START WITH 30074 CACHE 20 ORDER  NOCYCLE ;
6999 dpurdie 145
--------------------------------------------------------
146
--  DDL for Sequence SEQ_SDKTAG_ID
147
--------------------------------------------------------
5172 dpurdie 148
 
6999 dpurdie 149
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SDKTAG_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1563 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 150
--------------------------------------------------------
6999 dpurdie 151
--  DDL for Sequence SEQ_SDK_ID
152
--------------------------------------------------------
5172 dpurdie 153
 
6999 dpurdie 154
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SDK_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 163 CACHE 20 NOORDER  NOCYCLE ;
155
--------------------------------------------------------
4040 dpurdie 156
--  DDL for Sequence SEQ_SESSION_NUM
157
--------------------------------------------------------
158
 
7000 dpurdie 159
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SESSION_NUM"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1110364 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 160
--------------------------------------------------------
6999 dpurdie 161
--  DDL for Sequence SEQ_TESTRUN_ID
162
--------------------------------------------------------
5892 dpurdie 163
 
7000 dpurdie 164
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_TESTRUN_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 2141643 CACHE 20 NOORDER  NOCYCLE ;
6999 dpurdie 165
--------------------------------------------------------
4040 dpurdie 166
--  DDL for Sequence SEQ_UNIT_TESTS
167
--------------------------------------------------------
168
 
7000 dpurdie 169
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_UNIT_TESTS"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 375956 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 170
--------------------------------------------------------
171
--  DDL for Sequence SEQ_USER_ID
172
--------------------------------------------------------
173
 
6999 dpurdie 174
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_USER_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 3961 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 175
--------------------------------------------------------
176
--  DDL for Sequence SEQ_VCS_TYPE
177
--------------------------------------------------------
178
 
6999 dpurdie 179
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VCS_TYPE"  MINVALUE 1 MAXVALUE 255 INCREMENT BY 1 START WITH 63 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 180
--------------------------------------------------------
181
--  DDL for Sequence SEQ_VIEW_ID
182
--------------------------------------------------------
183
 
6999 dpurdie 184
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VIEW_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 10341 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 185
--------------------------------------------------------
186
--  DDL for Sequence SEQ_VTREE_ID
187
--------------------------------------------------------
188
 
7000 dpurdie 189
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VTREE_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 36310 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 190
--------------------------------------------------------
191
--  DDL for Table ABT_ACTION_LOG
192
--------------------------------------------------------
193
 
5172 dpurdie 194
  CREATE TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" 
4040 dpurdie 195
   (	"RCON_ID" NUMBER, 
196
	"ACTION_DATETIME" DATE, 
5172 dpurdie 197
	"ACTION" VARCHAR2(4000 BYTE)
198
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 199
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
200
 NOCOMPRESS LOGGING
5172 dpurdie 201
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 202
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
203
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
204
  TABLESPACE "RELEASE_MANAGER_DATA" ;
205
  GRANT SELECT ON "RELEASE_MANAGER"."ABT_ACTION_LOG" TO "RM_READONLY";
206
  GRANT SELECT ON "RELEASE_MANAGER"."ABT_ACTION_LOG" TO "MS_READONLY";
6999 dpurdie 207
  GRANT SELECT ON "RELEASE_MANAGER"."ABT_ACTION_LOG" TO "DM_READONLY";
4040 dpurdie 208
--------------------------------------------------------
209
--  DDL for Table ACTION_LOG
210
--------------------------------------------------------
211
 
5172 dpurdie 212
  CREATE TABLE "RELEASE_MANAGER"."ACTION_LOG" 
4040 dpurdie 213
   (	"USER_ID" NUMBER, 
5172 dpurdie 214
	"ACTION_DATETIME" DATE DEFAULT SYSDATE, 
4040 dpurdie 215
	"PV_ID" NUMBER, 
5172 dpurdie 216
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
217
	"ACTTYPE_ID" NUMBER, 
218
	"ACTION_TIMESTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP
219
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 220
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
221
 NOCOMPRESS LOGGING
5172 dpurdie 222
  STORAGE(INITIAL 308281344 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 223
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
224
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 225
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 226
 
227
   COMMENT ON COLUMN "RELEASE_MANAGER"."ACTION_LOG"."ACTION_DATETIME" IS 'To be deprecated. Use timestamp instead';
6031 dpurdie 228
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "RM_READONLY";
229
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "MS_READONLY";
5892 dpurdie 230
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "DM_READONLY";
231
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "RELEASE_MANAGER_READ";
6031 dpurdie 232
  GRANT DELETE ON "RELEASE_MANAGER"."ACTION_LOG" TO "DEPLOYMENT_MANAGER";
233
  GRANT UPDATE ON "RELEASE_MANAGER"."ACTION_LOG" TO "DEPLOYMENT_MANAGER";
234
  GRANT INSERT ON "RELEASE_MANAGER"."ACTION_LOG" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 235
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 236
--------------------------------------------------------
237
--  DDL for Table ACTION_TYPE
238
--------------------------------------------------------
239
 
5172 dpurdie 240
  CREATE TABLE "RELEASE_MANAGER"."ACTION_TYPE" 
4040 dpurdie 241
   (	"ACTTYPE_ID" NUMBER, 
5172 dpurdie 242
	"NAME" VARCHAR2(255 BYTE), 
243
	"DESCRIPTION" VARCHAR2(4000 BYTE)
244
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 245
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
246
 NOCOMPRESS LOGGING
5172 dpurdie 247
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 248
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
249
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
250
  TABLESPACE "RELEASE_MANAGER_DATA" ;
251
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "RM_READONLY";
252
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "MS_READONLY";
5892 dpurdie 253
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "DM_READONLY";
6999 dpurdie 254
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 255
--------------------------------------------------------
256
--  DDL for Table ADDITIONAL_NOTES
257
--------------------------------------------------------
258
 
5172 dpurdie 259
  CREATE TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" 
4040 dpurdie 260
   (	"NOTE_ID" NUMBER, 
261
	"PV_ID" NUMBER, 
5172 dpurdie 262
	"NOTE_TITLE" VARCHAR2(2000 BYTE), 
263
	"NOTE_BODY" VARCHAR2(4000 BYTE), 
4040 dpurdie 264
	"MOD_DATE" DATE, 
265
	"MOD_USER" NUMBER
5172 dpurdie 266
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 267
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
268
 NOCOMPRESS LOGGING
5172 dpurdie 269
  STORAGE(INITIAL 55574528 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 270
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
271
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
272
  TABLESPACE "RELEASE_MANAGER_DATA" ;
273
  GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "RM_READONLY";
274
  GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "MS_READONLY";
5892 dpurdie 275
  GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "DM_READONLY";
6999 dpurdie 276
  GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 277
--------------------------------------------------------
278
--  DDL for Table ADVISORY_RIPPLE
279
--------------------------------------------------------
280
 
5172 dpurdie 281
  CREATE TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" 
4040 dpurdie 282
   (	"RTAG_ID" NUMBER, 
283
	"PV_ID" NUMBER
5172 dpurdie 284
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 285
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
286
 NOCOMPRESS LOGGING
5172 dpurdie 287
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 288
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
289
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
290
  TABLESPACE "RELEASE_MANAGER_DATA" ;
291
  GRANT SELECT ON "RELEASE_MANAGER"."ADVISORY_RIPPLE" TO "RM_READONLY";
292
  GRANT SELECT ON "RELEASE_MANAGER"."ADVISORY_RIPPLE" TO "MS_READONLY";
6999 dpurdie 293
  GRANT SELECT ON "RELEASE_MANAGER"."ADVISORY_RIPPLE" TO "DM_READONLY";
4040 dpurdie 294
--------------------------------------------------------
295
--  DDL for Table ARCHIVE_ACTION_LOG
296
--------------------------------------------------------
297
 
5172 dpurdie 298
  CREATE TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" 
4040 dpurdie 299
   (	"USER_ID" NUMBER, 
300
	"DATE_TIME_STAMP" DATE, 
301
	"RTAG_ID" NUMBER, 
5172 dpurdie 302
	"DESCRIPTION" VARCHAR2(4000 BYTE)
303
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 304
  PCTFREE 10 PCTUSED 0 INITRANS 1 MAXTRANS 255 
305
 NOCOMPRESS LOGGING
5172 dpurdie 306
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 307
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
308
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
309
  TABLESPACE "RELEASE_MANAGER_DATA" ;
310
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" TO "RM_READONLY";
311
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" TO "MS_READONLY";
6999 dpurdie 312
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" TO "DM_READONLY";
4040 dpurdie 313
--------------------------------------------------------
314
--  DDL for Table ARCHIVE_DATA
315
--------------------------------------------------------
316
 
5172 dpurdie 317
  CREATE TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" 
4040 dpurdie 318
   (	"RTAG_ID" NUMBER(*,0), 
319
	"PV_ID" NUMBER(*,0)
5172 dpurdie 320
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 321
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
322
 NOCOMPRESS LOGGING
5172 dpurdie 323
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 324
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
325
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
326
  TABLESPACE "RELEASE_MANAGER_DATA" ;
327
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_DATA" TO "RM_READONLY";
328
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_DATA" TO "MS_READONLY";
6999 dpurdie 329
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_DATA" TO "DM_READONLY";
4040 dpurdie 330
--------------------------------------------------------
331
--  DDL for Table AUTOBUILD_FAILURE
332
--------------------------------------------------------
333
 
5172 dpurdie 334
  CREATE TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" 
4040 dpurdie 335
   (	"GROUP_EMAIL_ID" NUMBER, 
336
	"PROJ_ID" NUMBER, 
337
	"VIEW_ID" NUMBER
5172 dpurdie 338
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 339
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
340
 NOCOMPRESS LOGGING
5172 dpurdie 341
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 342
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
343
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
344
  TABLESPACE "RELEASE_MANAGER_DATA" ;
345
  GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "RM_READONLY";
346
  GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "MS_READONLY";
5892 dpurdie 347
  GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "DM_READONLY";
6999 dpurdie 348
  GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 349
--------------------------------------------------------
6999 dpurdie 350
--  DDL for Table BLAT_PROJECTS
351
--------------------------------------------------------
352
 
353
  CREATE TABLE "RELEASE_MANAGER"."BLAT_PROJECTS" 
354
   (	"BLAT_ID" NUMBER, 
355
	"PROJ_ID" NUMBER, 
356
	"BP_ENABLED" CHAR(1 BYTE) DEFAULT 'Y'
357
   ) SEGMENT CREATION IMMEDIATE 
358
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
359
 NOCOMPRESS LOGGING
360
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
361
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
362
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
363
  TABLESPACE "RELEASE_MANAGER_DATA" ;
364
 
365
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_PROJECTS"."BLAT_ID" IS 'Ref into BLAT_SERVERS';
366
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_PROJECTS"."PROJ_ID" IS 'Transfer entire project';
367
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_PROJECTS"."BP_ENABLED" IS 'y: Enabled';
368
--------------------------------------------------------
369
--  DDL for Table BLAT_RELEASES
370
--------------------------------------------------------
371
 
372
  CREATE TABLE "RELEASE_MANAGER"."BLAT_RELEASES" 
373
   (	"BLAT_ID" NUMBER, 
374
	"RTAG_ID" NUMBER, 
375
	"BR_ENABLED" CHAR(1 BYTE) DEFAULT 'Y', 
376
	"BR_EXCLUDE" CHAR(1 BYTE) DEFAULT 'N'
377
   ) SEGMENT CREATION IMMEDIATE 
378
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
379
 NOCOMPRESS LOGGING
380
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
381
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
382
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
383
  TABLESPACE "RELEASE_MANAGER_DATA" ;
384
 
385
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_RELEASES"."BLAT_ID" IS 'Ref into BLAT_SERVERS';
386
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_RELEASES"."RTAG_ID" IS 'RTAG_ID to transfer';
387
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_RELEASES"."BR_ENABLED" IS 'y:Enabled';
388
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_RELEASES"."BR_EXCLUDE" IS 'N:Include, else Exclude';
389
--------------------------------------------------------
390
--  DDL for Table BLAT_SERVERS
391
--------------------------------------------------------
392
 
393
  CREATE TABLE "RELEASE_MANAGER"."BLAT_SERVERS" 
394
   (	"BLAT_ID" NUMBER, 
395
	"BLAT_SERVER_NAME" NVARCHAR2(100), 
396
	"BLAT_DISPLAY_NAME" VARCHAR2(20 BYTE), 
397
	"BLAT_DESCRIPTION" VARCHAR2(1000 BYTE), 
398
	"BLAT_ENABLE" CHAR(1 BYTE) DEFAULT 'Y', 
399
	"BLAT_MODE" CHAR(1 BYTE) DEFAULT 'N', 
400
	"BLAT_TIMESTAMP" TIMESTAMP (6), 
401
	"BLAT_SEQNUM" NUMBER DEFAULT 0
402
   ) SEGMENT CREATION IMMEDIATE 
403
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
404
 NOCOMPRESS LOGGING
405
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
406
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
407
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
408
  TABLESPACE "RELEASE_MANAGER_DATA" ;
409
 
410
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_SERVERS"."BLAT_ID" IS 'Unique ID';
411
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_SERVERS"."BLAT_SERVER_NAME" IS 'Name of the Blat server';
412
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_SERVERS"."BLAT_DISPLAY_NAME" IS 'Name displayed to the user';
413
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_SERVERS"."BLAT_DESCRIPTION" IS 'A field of comments';
414
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_SERVERS"."BLAT_ENABLE" IS 'Y:Enabled';
415
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_SERVERS"."BLAT_MODE" IS 'n:Normal, p:All Projects, E: Entire Archive';
416
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_SERVERS"."BLAT_TIMESTAMP" IS 'Time of config chnage';
417
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_SERVERS"."BLAT_SEQNUM" IS 'Indicated config has changed';
418
--------------------------------------------------------
4040 dpurdie 419
--  DDL for Table BUILD_ENVIRONMENTS
420
--------------------------------------------------------
421
 
5172 dpurdie 422
  CREATE TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" 
4040 dpurdie 423
   (	"BE_ID" NUMBER, 
5172 dpurdie 424
	"BE_NAME" VARCHAR2(255 BYTE)
425
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 426
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
427
 NOCOMPRESS LOGGING
5172 dpurdie 428
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 429
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
430
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
431
  TABLESPACE "RELEASE_MANAGER_DATA" ;
432
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "RM_READONLY";
433
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "MS_READONLY";
5892 dpurdie 434
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DM_READONLY";
435
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "RELEASE_MANAGER_READ";
6031 dpurdie 436
  GRANT UPDATE ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DEPLOYMENT_MANAGER";
437
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DEPLOYMENT_MANAGER";
438
  GRANT INSERT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 439
  GRANT DELETE ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 440
--------------------------------------------------------
441
--  DDL for Table BUILD_ENV_DOCUMENTS
442
--------------------------------------------------------
443
 
5172 dpurdie 444
  CREATE TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" 
4040 dpurdie 445
   (	"BE_ID" NUMBER, 
5172 dpurdie 446
	"DOC_NUM" VARCHAR2(255 BYTE)
447
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 448
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
449
 NOCOMPRESS LOGGING
5172 dpurdie 450
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 451
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
452
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
453
  TABLESPACE "RELEASE_MANAGER_DATA" ;
454
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "RM_READONLY";
455
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "MS_READONLY";
5892 dpurdie 456
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "DM_READONLY";
6999 dpurdie 457
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "RELEASE_MANAGER_READ";
458
--------------------------------------------------------
459
--  DDL for Table BUILD_INSTANCES
460
--------------------------------------------------------
5172 dpurdie 461
 
462
  CREATE TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" 
463
   (	"BUILD_ID" NUMBER, 
464
	"RTAG_ID" NUMBER, 
465
	"PV_ID" NUMBER, 
466
	"TIMESTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP, 
467
	"REASON" CHAR(1 BYTE), 
468
	"STATE" CHAR(1 BYTE) DEFAULT 'B'
469
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 470
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
471
 NOCOMPRESS LOGGING
5172 dpurdie 472
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 473
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
474
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 475
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 476
 
477
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."BUILD_ID" IS 'Unique. Auto generated when row is created.';
478
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."RTAG_ID" IS 'Link the build to a Release';
479
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."PV_ID" IS 'Link the build to a Package';
480
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."TIMESTAMP" IS 'When the instance is created';
481
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."REASON" IS 'Reason for the build. Ripple(''R''), Test(''T''), NewVersion(''N''), Restore(''P'')';
6999 dpurdie 482
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."STATE" IS 'Result of the build. ''B'', ''Buiding'', ''C'', ''Complete'', ''E'', ''Error'', ''S'', ''SysErr''';
4040 dpurdie 483
--------------------------------------------------------
484
--  DDL for Table BUILD_MACHINES
485
--------------------------------------------------------
486
 
5172 dpurdie 487
  CREATE TABLE "RELEASE_MANAGER"."BUILD_MACHINES" 
4040 dpurdie 488
   (	"BM_ID" NUMBER, 
5172 dpurdie 489
	"BM_NAME" VARCHAR2(20 BYTE)
490
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 491
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
492
 NOCOMPRESS LOGGING
5172 dpurdie 493
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 494
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
495
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
496
  TABLESPACE "RELEASE_MANAGER_DATA" ;
497
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "RM_READONLY";
498
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "MS_READONLY";
5892 dpurdie 499
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "DM_READONLY";
6999 dpurdie 500
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 501
--------------------------------------------------------
502
--  DDL for Table BUILD_MACHINE_CONFIG
503
--------------------------------------------------------
504
 
5172 dpurdie 505
  CREATE TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" 
4040 dpurdie 506
   (	"BMCON_ID" NUMBER, 
5172 dpurdie 507
	"DISPLAY_NAME" VARCHAR2(50 BYTE), 
508
	"MACHINE_HOSTNAME" VARCHAR2(50 BYTE), 
509
	"DESCRIPTION" VARCHAR2(512 BYTE), 
510
	"GBE_ID" NUMBER, 
511
	"ACTIVE" CHAR(1 BYTE) DEFAULT 'Y'
512
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 513
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
514
 NOCOMPRESS LOGGING
5172 dpurdie 515
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 516
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
517
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 518
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 519
 
520
   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 521
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "RM_READONLY";
522
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "MS_READONLY";
5892 dpurdie 523
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "DM_READONLY";
6999 dpurdie 524
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 525
--------------------------------------------------------
526
--  DDL for Table BUILD_ORDER
527
--------------------------------------------------------
528
 
5172 dpurdie 529
  CREATE TABLE "RELEASE_MANAGER"."BUILD_ORDER" 
4040 dpurdie 530
   (	"RTAG_ID" NUMBER, 
531
	"STEP_NUM" NUMBER, 
532
	"PV_ID" NUMBER, 
5172 dpurdie 533
	"UNRESOLVED" CHAR(1 BYTE)
534
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 535
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
536
 NOCOMPRESS LOGGING
5172 dpurdie 537
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 538
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
539
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
540
  TABLESPACE "RELEASE_MANAGER_DATA" ;
541
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "RM_READONLY";
542
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "MS_READONLY";
5892 dpurdie 543
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "DM_READONLY";
6999 dpurdie 544
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "RELEASE_MANAGER_READ";
545
--------------------------------------------------------
546
--  DDL for Table BUILD_PLAN
547
--------------------------------------------------------
5892 dpurdie 548
 
549
  CREATE TABLE "RELEASE_MANAGER"."BUILD_PLAN" 
550
   (	"RTAG_ID" NUMBER, 
551
	"BUILD_ORDER" NUMBER, 
552
	"PV_ID" NUMBER
553
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 554
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
555
 NOCOMPRESS LOGGING
5892 dpurdie 556
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 557
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
558
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 559
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5892 dpurdie 560
 
561
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_PLAN"."RTAG_ID" IS 'Identify target Release';
562
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_PLAN"."BUILD_ORDER" IS 'Sequence for build';
6999 dpurdie 563
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_PLAN"."PV_ID" IS 'Package to build';
4040 dpurdie 564
--------------------------------------------------------
565
--  DDL for Table BUILD_SERVICE_CONFIG
566
--------------------------------------------------------
567
 
5172 dpurdie 568
  CREATE TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" 
569
   (	"SERVICE" VARCHAR2(50 BYTE), 
570
	"CONFIG" VARCHAR2(2000 BYTE)
571
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 572
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
573
 NOCOMPRESS LOGGING
5172 dpurdie 574
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 575
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
576
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
577
  TABLESPACE "RELEASE_MANAGER_DATA" ;
578
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "RM_READONLY";
579
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "MS_READONLY";
5892 dpurdie 580
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "DM_READONLY";
6999 dpurdie 581
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 582
--------------------------------------------------------
583
--  DDL for Table BUILD_STANDARDS
584
--------------------------------------------------------
585
 
5172 dpurdie 586
  CREATE TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" 
4040 dpurdie 587
   (	"BS_ID" NUMBER, 
5172 dpurdie 588
	"BS_NAME" VARCHAR2(20 BYTE)
589
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 590
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
591
 NOCOMPRESS LOGGING
5172 dpurdie 592
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 593
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
594
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
595
  TABLESPACE "RELEASE_MANAGER_DATA" ;
596
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "RM_READONLY";
597
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "MS_READONLY";
5892 dpurdie 598
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "DM_READONLY";
6999 dpurdie 599
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 600
--------------------------------------------------------
601
--  DDL for Table BUILD_STANDARDS_ADDENDUM
602
--------------------------------------------------------
603
 
5172 dpurdie 604
  CREATE TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" 
4040 dpurdie 605
   (	"BSA_ID" NUMBER, 
5172 dpurdie 606
	"BSA_NAME" VARCHAR2(4000 BYTE), 
4040 dpurdie 607
	"BS_ID" NUMBER
5172 dpurdie 608
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 609
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
610
 NOCOMPRESS LOGGING
5172 dpurdie 611
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 612
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
613
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
614
  TABLESPACE "RELEASE_MANAGER_DATA" ;
615
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "RM_READONLY";
616
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "MS_READONLY";
5892 dpurdie 617
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "DM_READONLY";
6999 dpurdie 618
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 619
--------------------------------------------------------
620
--  DDL for Table CODE_REVIEWS
621
--------------------------------------------------------
622
 
5172 dpurdie 623
  CREATE TABLE "RELEASE_MANAGER"."CODE_REVIEWS" 
4040 dpurdie 624
   (	"PV_ID" NUMBER, 
625
	"DATE_OF_REVIEW" DATE, 
626
	"TIME_SPENT" FLOAT(126), 
5172 dpurdie 627
	"REVIEW_REASON" VARCHAR2(4000 BYTE), 
628
	"RTEAM_DOMAIN_EXPERT" VARCHAR2(4000 BYTE), 
629
	"RTEAM_LANGUAGE_EXPERT" VARCHAR2(4000 BYTE), 
630
	"RTEAM_PEER_DEVELOPER" VARCHAR2(4000 BYTE), 
631
	"RTEAM_AUTHOR" VARCHAR2(4000 BYTE), 
632
	"FILES_REVIEWED" VARCHAR2(4000 BYTE), 
4040 dpurdie 633
	"REVIEW_RESULTS" NUMBER, 
5172 dpurdie 634
	"ISSUES_RAISED" VARCHAR2(4000 BYTE), 
635
	"REVIEW_COMMENTS" VARCHAR2(4000 BYTE), 
636
	"FNC_S_MEETS_FUNCTIONALITY" CHAR(1 BYTE), 
637
	"FNC_C_MEETS_FUNCTIONALITY" VARCHAR2(4000 BYTE), 
638
	"RBS_S_BOUND_COND_HANDLED" CHAR(1 BYTE), 
639
	"RBS_C_BOUND_COND_HANDLED" VARCHAR2(4000 BYTE), 
640
	"RBS_S_CLASS_INTERF_PRECOND" CHAR(1 BYTE), 
641
	"RBS_C_CLASS_INTERF_PRECOND" VARCHAR2(4000 BYTE), 
642
	"RBS_S_NO_UNITIALISED_DATE" CHAR(1 BYTE), 
643
	"RBS_C_NO_UNITIALISED_DATE" VARCHAR2(4000 BYTE), 
644
	"RBS_S_EXCEP_HANDING" CHAR(1 BYTE), 
645
	"RBS_C_EXCEP_HANDING" VARCHAR2(4000 BYTE), 
646
	"RBS_S_RESOURCE_MNG" CHAR(1 BYTE), 
647
	"RBS_C_RESOURCE_MNG" VARCHAR2(4000 BYTE), 
648
	"RBS_S_TRANS_COMPLET" CHAR(1 BYTE), 
649
	"RBS_C_TRANS_COMPLET" VARCHAR2(4000 BYTE), 
650
	"RBS_S_THREADSAFETY" CHAR(1 BYTE), 
651
	"RBS_C_THREADSAFETY" VARCHAR2(4000 BYTE), 
652
	"RBS_S_RET_VALS" CHAR(1 BYTE), 
653
	"RBS_C_RET_VALS" VARCHAR2(4000 BYTE), 
654
	"RBS_S_CORR_ERR_HANDLING" CHAR(1 BYTE), 
655
	"RBS_C_CORR_ERR_HANDLING" VARCHAR2(4000 BYTE), 
656
	"RBS_S_SQL_STD" CHAR(1 BYTE), 
657
	"RBS_C_SQL_STD" VARCHAR2(4000 BYTE), 
658
	"MNT_S_EXT_REF" CHAR(1 BYTE), 
659
	"MNT_C_EXT_REF" VARCHAR2(4000 BYTE), 
660
	"MNT_S_CLASS_SIZE" CHAR(1 BYTE), 
661
	"MNT_C_CLASS_SIZE" VARCHAR2(4000 BYTE), 
662
	"MNT_S_METHOD_SIZE" CHAR(1 BYTE), 
663
	"MNT_C_METHOD_SIZE" VARCHAR2(4000 BYTE), 
664
	"MNT_S_APPROP_COMM" CHAR(1 BYTE), 
665
	"MNT_C_APPROP_COMM" VARCHAR2(4000 BYTE), 
666
	"MNT_S_IDENT_NAME_STD" CHAR(1 BYTE), 
667
	"MNT_C_IDENT_NAME_STD" VARCHAR2(4000 BYTE), 
668
	"MNT_S_SWITCH_HAVE_DEFAULTS" CHAR(1 BYTE), 
669
	"MNT_C_SWITCH_HAVE_DEFAULTS" VARCHAR2(4000 BYTE), 
670
	"MNT_S_NO_LIT_NUM" CHAR(1 BYTE), 
671
	"MNT_C_NO_LIT_NUM" VARCHAR2(4000 BYTE), 
672
	"MNT_S_NO_DEAD_CODE" CHAR(1 BYTE), 
673
	"MNT_C_NO_DEAD_CODE" VARCHAR2(4000 BYTE), 
674
	"DEI_S_STD_DES_PATT" CHAR(1 BYTE), 
675
	"DEI_C_STD_DES_PATT" VARCHAR2(4000 BYTE), 
676
	"DEI_S_APPROP_ALGOR" CHAR(1 BYTE), 
677
	"DEI_C_APPROP_ALGOR" VARCHAR2(4000 BYTE), 
678
	"DEI_S_APPROP_OBJ" CHAR(1 BYTE), 
679
	"DEI_C_APPROP_OBJ" VARCHAR2(4000 BYTE), 
680
	"DEI_S_APPROP_ERR_MSG" CHAR(1 BYTE), 
681
	"DEI_C_APPROP_ERR_MSG" VARCHAR2(4000 BYTE), 
682
	"DEI_S_STD_FRAMEW_COMP" CHAR(1 BYTE), 
683
	"DEI_C_STD_FRAMEW_COMP" VARCHAR2(4000 BYTE), 
684
	"DEI_S_APPROP_LOGGING" CHAR(1 BYTE), 
685
	"DEI_C_APPROP_LOGGING" VARCHAR2(4000 BYTE)
686
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 687
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
688
 NOCOMPRESS LOGGING
5172 dpurdie 689
  STORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 690
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
691
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
692
  TABLESPACE "RELEASE_MANAGER_DATA" ;
693
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "RM_READONLY";
694
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "MS_READONLY";
5892 dpurdie 695
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "DM_READONLY";
6999 dpurdie 696
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 697
--------------------------------------------------------
698
--  DDL for Table CODE_REVIEW_URL
699
--------------------------------------------------------
700
 
5172 dpurdie 701
  CREATE TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" 
4040 dpurdie 702
   (	"CR_ID" NUMBER, 
703
	"PV_ID" NUMBER, 
704
	"PROJ_ID" NUMBER, 
5172 dpurdie 705
	"URL" VARCHAR2(4000 BYTE), 
706
	"REASON" VARCHAR2(4000 BYTE), 
4040 dpurdie 707
	"DATE_OF_REVIEW" DATE, 
708
	"LAST_MODIFIED" DATE
5172 dpurdie 709
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 710
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
711
 NOCOMPRESS LOGGING
5172 dpurdie 712
  STORAGE(INITIAL 983040 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 713
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
714
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
715
  TABLESPACE "RELEASE_MANAGER_DATA" ;
716
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEW_URL" TO "RM_READONLY";
717
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEW_URL" TO "MS_READONLY";
6999 dpurdie 718
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEW_URL" TO "DM_READONLY";
4040 dpurdie 719
--------------------------------------------------------
6999 dpurdie 720
--  DDL for Table CQ_HISTORY
721
--------------------------------------------------------
4585 dpurdie 722
 
5172 dpurdie 723
  CREATE TABLE "RELEASE_MANAGER"."CQ_HISTORY" 
4585 dpurdie 724
   (	"DBID" NUMBER(10,0), 
725
	"ENTITY_DBID" NUMBER(10,0), 
726
	"ENTITYDEF_ID" NUMBER(10,0), 
727
	"ENTITYDEF_NAME" VARCHAR2(30 CHAR), 
728
	"ACTION_TIMESTAMP" DATE, 
729
	"USER_NAME" VARCHAR2(30 CHAR), 
730
	"ACTION_NAME" VARCHAR2(30 CHAR), 
731
	"OLD_STATE" VARCHAR2(30 CHAR), 
732
	"NEW_STATE" VARCHAR2(30 CHAR), 
733
	"EXPIRED_TIMESTAMP" DATE
5172 dpurdie 734
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 735
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
736
 NOCOMPRESS LOGGING
5172 dpurdie 737
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 738
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
739
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
740
  TABLESPACE "RELEASE_MANAGER_DATA" ;
741
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "RM_READONLY";
742
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "MS_READONLY";
5892 dpurdie 743
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "DM_READONLY";
744
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 745
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "ACCESS_MANAGER";
746
--------------------------------------------------------
4040 dpurdie 747
--  DDL for Table CQ_ISSUES
748
--------------------------------------------------------
749
 
5172 dpurdie 750
  CREATE TABLE "RELEASE_MANAGER"."CQ_ISSUES" 
4040 dpurdie 751
   (	"PV_ID" NUMBER, 
752
	"ISS_DB" NUMBER, 
753
	"ISS_ID" NUMBER, 
754
	"ISS_STATE" NUMBER, 
755
	"MOD_DATE" DATE, 
5172 dpurdie 756
	"NOTES" VARCHAR2(255 BYTE)
757
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 758
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
759
 NOCOMPRESS LOGGING
5172 dpurdie 760
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 761
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
762
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
763
  TABLESPACE "RELEASE_MANAGER_DATA" ;
764
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "RM_READONLY";
765
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "MS_READONLY";
5892 dpurdie 766
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "DM_READONLY";
767
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "RELEASE_MANAGER_READ";
6999 dpurdie 768
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "DEPLOYMENT_MANAGER";
769
--------------------------------------------------------
770
--  DDL for Table CQ_SOFTWARE_ISSUE
771
--------------------------------------------------------
4585 dpurdie 772
 
5172 dpurdie 773
  CREATE TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" 
4585 dpurdie 774
   (	"RATL_MASTERSHIP" NUMBER(10,0), 
775
	"DBID" NUMBER(10,0), 
776
	"IS_ACTIVE" NUMBER(10,0), 
777
	"ID" VARCHAR2(13 CHAR), 
778
	"STATE" NUMBER(10,0), 
779
	"VERSION" NUMBER(10,0), 
780
	"LOCK_VERSION" NUMBER(10,0), 
781
	"LOCKED_BY" NUMBER(10,0), 
782
	"IS_DUPLICATE" NUMBER(10,0), 
783
	"UNDUPLICATE_STATE" VARCHAR2(50 CHAR), 
784
	"HEADLINE" VARCHAR2(150 CHAR), 
785
	"DESCRIPTION" CLOB, 
786
	"PRIORITY" VARCHAR2(50 CHAR), 
787
	"SUBMITTER" NUMBER(10,0), 
788
	"SUBMIT_DATE" DATE, 
789
	"OWNER" NUMBER(10,0), 
790
	"APPROVER" NUMBER(10,0), 
791
	"NOTE_ENTRY" CLOB, 
792
	"NOTES_LOG" CLOB, 
793
	"RESOLUTION_DATE" DATE, 
794
	"ISSUE_TYPE" VARCHAR2(50 CHAR), 
795
	"PACKAGE_REF" VARCHAR2(50 CHAR), 
796
	"SOLUTION_APPROVED_DATE" DATE, 
797
	"CLOSE_DATE" DATE, 
798
	"BUILD_NUMBER" VARCHAR2(50 CHAR), 
799
	"NEW_NUM" VARCHAR2(50 CHAR), 
800
	"FOR_INFORMATION" CLOB, 
801
	"PROP_SOL_DATE" DATE, 
802
	"ARTIFACTS_TO_BE_UPDATED_1" CLOB, 
803
	"ISSUE_ID" NUMBER(10,0), 
804
	"SOLUTION_DATE" DATE, 
805
	"KPI_SOLUTION_DATE" DATE, 
806
	"TITLE" VARCHAR2(80 CHAR), 
807
	"PROJECT" VARCHAR2(50 CHAR), 
808
	"ORIGINATING_AREA" VARCHAR2(50 CHAR), 
809
	"ESTIMATED_TIME_INHOURS" NUMBER(10,0), 
810
	"RELEASE_PART1" NUMBER(10,0), 
811
	"RELEASE_PART2" NUMBER(10,0), 
812
	"RELEASE_PART3" NUMBER(10,0), 
813
	"SOLUTION_RELEASE_PART1" NUMBER(10,0), 
814
	"SOLUTION_RELEASE_PART2" NUMBER(10,0), 
815
	"SOLUTION_RELEASE_PART3" NUMBER(10,0), 
816
	"ORIGINAL_IMPLEMENT_DATE" DATE, 
817
	"ISSUE_LABEL" VARCHAR2(50 CHAR), 
818
	"PRODUCT" VARCHAR2(50 CHAR), 
819
	"ORIGIN" VARCHAR2(50 CHAR), 
820
	"CLONE_NOTE" CLOB, 
821
	"SOLUTION_LABEL" VARCHAR2(50 CHAR), 
822
	"REQUIRED_BY" DATE, 
823
	"ITERATION_AFFECTED" VARCHAR2(50 CHAR), 
824
	"MERGE_OLD_ID" VARCHAR2(150 CHAR), 
825
	"COMMENTS" CLOB, 
826
	"CHANGE_CONTROL" VARCHAR2(50 CHAR), 
827
	"MERGE_COMMENTS" CLOB, 
828
	"MERGE_CHANGE_CONTROL" VARCHAR2(50 CHAR), 
829
	"AWAITING_INFO_DESC" CLOB, 
830
	"REQUEST_CLOSE_DESC" CLOB, 
831
	"ROOT_CAUSE" VARCHAR2(50 CHAR), 
832
	"FLAGA" VARCHAR2(50 CHAR), 
833
	"FLAGB" VARCHAR2(50 CHAR), 
834
	"FLAGC" VARCHAR2(50 CHAR), 
835
	"SCHEDULED_RELEASE" VARCHAR2(60 CHAR), 
836
	"SEVERITY" VARCHAR2(50 CHAR), 
837
	"CUSTOM_FIELD_01" CLOB, 
838
	"CUSTOM_FIELD_02" CLOB, 
839
	"CUSTOM_FIELD_03" CLOB, 
840
	"CUSTOMER_REFERENCE" VARCHAR2(254 CHAR), 
841
	"TEAMLEADER" NUMBER(10,0), 
842
	"WIP" CLOB, 
843
	"RELEASEINFO" CLOB, 
844
	"SBOM" VARCHAR2(254 CHAR), 
845
	"NEW_EXTERNAL_NOTE" CLOB, 
846
	"EXTERNAL_NOTE_LOG" CLOB, 
847
	"CUSTOMER_REFERENCE_2" VARCHAR2(50 CHAR), 
848
	"CUSTOMER_REFERENCE_3" VARCHAR2(50 CHAR), 
849
	"CUSTOMER_REFERENCE_4" VARCHAR2(50 CHAR), 
850
	"CUSTOMER_REFERENCE_5" VARCHAR2(50 CHAR), 
851
	"TEST_CASES" CLOB, 
852
	"INTEGRATION_NOTES" CLOB, 
853
	"UPDATED_DESIGN_NOTES" VARCHAR2(50 CHAR), 
854
	"RELATED_DATABASE_PATCHES" VARCHAR2(50 CHAR), 
855
	"AFFECTED_PACKAGES" VARCHAR2(50 CHAR), 
856
	"CODEREVIEW_REFERENCE" CLOB, 
857
	"RISK" VARCHAR2(50 CHAR), 
858
	"DEPENDANT_DEVIS" VARCHAR2(50 CHAR), 
859
	"CUSTOM_FIELD_04" CLOB, 
860
	"CUSTOM_FIELD_05" CLOB, 
861
	"ITERATION_FOUND" VARCHAR2(50 CHAR)
5172 dpurdie 862
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 863
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
864
 NOCOMPRESS LOGGING
5172 dpurdie 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)
868
  TABLESPACE "RELEASE_MANAGER_DATA" 
5172 dpurdie 869
 LOB ("DESCRIPTION") STORE AS BASICFILE (
6031 dpurdie 870
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 871
  NOCACHE LOGGING 
872
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 873
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
874
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 875
 LOB ("NOTE_ENTRY") STORE AS BASICFILE (
6031 dpurdie 876
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 877
  NOCACHE LOGGING 
878
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 879
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
880
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 881
 LOB ("NOTES_LOG") STORE AS BASICFILE (
6031 dpurdie 882
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 883
  NOCACHE LOGGING 
884
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 885
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
886
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 887
 LOB ("FOR_INFORMATION") STORE AS BASICFILE (
6031 dpurdie 888
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 889
  NOCACHE LOGGING 
890
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 891
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
892
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 893
 LOB ("ARTIFACTS_TO_BE_UPDATED_1") STORE AS BASICFILE (
6031 dpurdie 894
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 895
  NOCACHE LOGGING 
896
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 897
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
898
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 899
 LOB ("CLONE_NOTE") STORE AS BASICFILE (
6031 dpurdie 900
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 901
  NOCACHE LOGGING 
902
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 903
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
904
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 905
 LOB ("COMMENTS") STORE AS BASICFILE (
6031 dpurdie 906
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 907
  NOCACHE LOGGING 
908
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 909
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
910
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 911
 LOB ("MERGE_COMMENTS") STORE AS BASICFILE (
6031 dpurdie 912
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 913
  NOCACHE LOGGING 
914
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 915
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
916
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 917
 LOB ("AWAITING_INFO_DESC") STORE AS BASICFILE (
6031 dpurdie 918
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 919
  NOCACHE LOGGING 
920
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 921
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
922
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 923
 LOB ("REQUEST_CLOSE_DESC") STORE AS BASICFILE (
6031 dpurdie 924
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 925
  NOCACHE LOGGING 
926
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 927
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
928
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 929
 LOB ("CUSTOM_FIELD_01") STORE AS BASICFILE (
6031 dpurdie 930
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 931
  NOCACHE LOGGING 
932
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 933
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
934
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 935
 LOB ("CUSTOM_FIELD_02") STORE AS BASICFILE (
6031 dpurdie 936
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 937
  NOCACHE LOGGING 
938
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 939
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
940
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 941
 LOB ("CUSTOM_FIELD_03") STORE AS BASICFILE (
6031 dpurdie 942
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 943
  NOCACHE LOGGING 
944
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 945
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
946
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 947
 LOB ("WIP") STORE AS BASICFILE (
6031 dpurdie 948
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 949
  NOCACHE LOGGING 
950
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 951
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
952
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 953
 LOB ("RELEASEINFO") STORE AS BASICFILE (
6031 dpurdie 954
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 955
  NOCACHE LOGGING 
956
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 957
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
958
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 959
 LOB ("NEW_EXTERNAL_NOTE") STORE AS BASICFILE (
6031 dpurdie 960
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 961
  NOCACHE LOGGING 
962
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 963
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
964
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 965
 LOB ("EXTERNAL_NOTE_LOG") STORE AS BASICFILE (
6031 dpurdie 966
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 967
  NOCACHE LOGGING 
968
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 969
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
970
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 971
 LOB ("TEST_CASES") STORE AS BASICFILE (
6031 dpurdie 972
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 973
  NOCACHE LOGGING 
974
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 975
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
976
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 977
 LOB ("INTEGRATION_NOTES") STORE AS BASICFILE (
6031 dpurdie 978
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 979
  NOCACHE LOGGING 
980
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 981
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
982
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 983
 LOB ("CODEREVIEW_REFERENCE") STORE AS BASICFILE (
6031 dpurdie 984
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 985
  NOCACHE LOGGING 
986
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 987
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
988
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 989
 LOB ("CUSTOM_FIELD_04") STORE AS BASICFILE (
6031 dpurdie 990
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 991
  NOCACHE LOGGING 
992
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 993
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
994
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 995
 LOB ("CUSTOM_FIELD_05") STORE AS BASICFILE (
6031 dpurdie 996
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 997
  NOCACHE LOGGING 
998
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 999
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1000
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
1001
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "RM_READONLY";
1002
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "MS_READONLY";
5892 dpurdie 1003
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "DM_READONLY";
1004
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 1005
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "ACCESS_MANAGER";
1006
--------------------------------------------------------
1007
--  DDL for Table CQ_STATEDEF
1008
--------------------------------------------------------
4585 dpurdie 1009
 
5172 dpurdie 1010
  CREATE TABLE "RELEASE_MANAGER"."CQ_STATEDEF" 
4585 dpurdie 1011
   (	"ID" NUMBER(10,0), 
1012
	"PACKAGE_OWNERSHIP" NUMBER(10,0), 
1013
	"NAME" VARCHAR2(255 CHAR), 
1014
	"ENTITYDEF_ID" NUMBER(10,0), 
1015
	"ORDINAL" NUMBER(10,0)
5172 dpurdie 1016
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1017
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1018
 NOCOMPRESS LOGGING
5172 dpurdie 1019
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1020
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1021
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1022
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1023
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "RM_READONLY";
1024
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "MS_READONLY";
5892 dpurdie 1025
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "DM_READONLY";
1026
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 1027
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "ACCESS_MANAGER";
1028
--------------------------------------------------------
1029
--  DDL for Table CQ_USERS
1030
--------------------------------------------------------
4585 dpurdie 1031
 
5172 dpurdie 1032
  CREATE TABLE "RELEASE_MANAGER"."CQ_USERS" 
1033
   (	"DBID" VARCHAR2(8 BYTE), 
1034
	"LOGIN_NAME" VARCHAR2(17 BYTE), 
1035
	"FULLNAME" VARCHAR2(30 BYTE)
1036
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1037
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1038
 NOCOMPRESS LOGGING
5172 dpurdie 1039
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1040
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1041
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1042
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1043
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "RM_READONLY";
1044
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "MS_READONLY";
5892 dpurdie 1045
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "DM_READONLY";
1046
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 1047
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "ACCESS_MANAGER";
4040 dpurdie 1048
--------------------------------------------------------
1049
--  DDL for Table DAEMON_ACTION_LOG
1050
--------------------------------------------------------
1051
 
5172 dpurdie 1052
  CREATE TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" 
4040 dpurdie 1053
   (	"USER_ID" NUMBER, 
1054
	"ACTION_DATETIME" DATE, 
1055
	"RCON_ID" NUMBER, 
5172 dpurdie 1056
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1057
	"ACTTYPE_ID" NUMBER
5172 dpurdie 1058
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1059
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1060
 NOCOMPRESS LOGGING
5172 dpurdie 1061
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1062
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1063
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1064
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1065
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_ACTION_LOG" TO "RM_READONLY";
1066
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_ACTION_LOG" TO "MS_READONLY";
6999 dpurdie 1067
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_ACTION_LOG" TO "DM_READONLY";
4040 dpurdie 1068
--------------------------------------------------------
1069
--  DDL for Table DAEMON_INSTRUCTIONS
1070
--------------------------------------------------------
1071
 
5172 dpurdie 1072
  CREATE TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" 
4040 dpurdie 1073
   (	"DAEMON_INSTRUCTIONS_ID" NUMBER, 
1074
	"OP_CODE" NUMBER(*,0), 
1075
	"RTAG_ID" NUMBER, 
1076
	"PV_ID" NUMBER, 
1077
	"SCHEDULED_DATETIME" DATE, 
1078
	"REPEAT_SECS" NUMBER(*,0), 
1079
	"ADDED_DATETIME" DATE, 
1080
	"USER_ID" NUMBER, 
5172 dpurdie 1081
	"IN_PROGRESS" CHAR(1 BYTE)
1082
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1083
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1084
 NOCOMPRESS LOGGING
5172 dpurdie 1085
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1086
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1087
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1088
  TABLESPACE "RELEASE_MANAGER_DATA" ;
4040 dpurdie 1089
 
5172 dpurdie 1090
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."OP_CODE" IS 'The instruction op-code';
1091
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."SCHEDULED_DATETIME" IS 'The datetime after which the instruction can be carried out.';
1092
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."REPEAT_SECS" IS 'The number of seconds to add to scheduled_datetime when instruction is repeating';
1093
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."ADDED_DATETIME" IS 'The datetime the instruction was added to the table - informational only';
1094
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."USER_ID" IS 'The user who added the instruction to the table  - informational only';
6031 dpurdie 1095
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" TO "RM_READONLY";
1096
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" TO "MS_READONLY";
6999 dpurdie 1097
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" TO "DM_READONLY";
4040 dpurdie 1098
--------------------------------------------------------
1099
--  DDL for Table DASH_BOARD
1100
--------------------------------------------------------
1101
 
5172 dpurdie 1102
  CREATE TABLE "RELEASE_MANAGER"."DASH_BOARD" 
4040 dpurdie 1103
   (	"PROJ_ID" NUMBER, 
1104
	"RTAG_ID" NUMBER, 
1105
	"LAST_BUILD_TIME" DATE, 
1106
	"AUTOMATED_PACKAGES" NUMBER, 
1107
	"TOTAL_PACKAGES" NUMBER
5172 dpurdie 1108
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1109
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1110
 NOCOMPRESS LOGGING
5172 dpurdie 1111
  STORAGE(INITIAL 65536 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"."DASH_BOARD" TO "RM_READONLY";
1116
  GRANT SELECT ON "RELEASE_MANAGER"."DASH_BOARD" TO "MS_READONLY";
6999 dpurdie 1117
  GRANT SELECT ON "RELEASE_MANAGER"."DASH_BOARD" TO "DM_READONLY";
4040 dpurdie 1118
--------------------------------------------------------
1119
--  DDL for Table DEPRECATED_PACKAGES
1120
--------------------------------------------------------
1121
 
5172 dpurdie 1122
  CREATE TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" 
4040 dpurdie 1123
   (	"RTAG_ID" NUMBER, 
1124
	"PKG_ID" NUMBER, 
5172 dpurdie 1125
	"COMMENTS" VARCHAR2(4000 BYTE), 
1126
	"V_EXT" VARCHAR2(50 BYTE)
1127
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1128
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1129
 NOCOMPRESS LOGGING
5172 dpurdie 1130
  STORAGE(INITIAL 65536 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"."DEPRECATED_PACKAGES" TO "RM_READONLY";
1135
  GRANT SELECT ON "RELEASE_MANAGER"."DEPRECATED_PACKAGES" TO "MS_READONLY";
6999 dpurdie 1136
  GRANT SELECT ON "RELEASE_MANAGER"."DEPRECATED_PACKAGES" TO "DM_READONLY";
4040 dpurdie 1137
--------------------------------------------------------
1138
--  DDL for Table DO_NOT_RIPPLE
1139
--------------------------------------------------------
1140
 
5172 dpurdie 1141
  CREATE TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" 
4040 dpurdie 1142
   (	"RTAG_ID" NUMBER, 
1143
	"PV_ID" NUMBER, 
1144
	"ROOT_PV_ID" NUMBER, 
5172 dpurdie 1145
	"ROOT_CAUSE" VARCHAR2(50 BYTE), 
1146
	"ROOT_FILE" VARCHAR2(100 BYTE)
1147
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1148
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1149
 NOCOMPRESS LOGGING
5172 dpurdie 1150
  STORAGE(INITIAL 655360 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1151
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1152
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1153
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1154
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "RM_READONLY";
1155
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "MS_READONLY";
5892 dpurdie 1156
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "DM_READONLY";
1157
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "RELEASE_MANAGER_READ";
6999 dpurdie 1158
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1159
--------------------------------------------------------
1160
--  DDL for Table GBE_MACHTYPE
1161
--------------------------------------------------------
1162
 
5172 dpurdie 1163
  CREATE TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" 
4040 dpurdie 1164
   (	"GBE_ID" NUMBER, 
5172 dpurdie 1165
	"GBE_VALUE" VARCHAR2(20 BYTE), 
4040 dpurdie 1166
	"BM_ID" NUMBER
5172 dpurdie 1167
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1168
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1169
 NOCOMPRESS LOGGING
5172 dpurdie 1170
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1171
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1172
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1173
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1174
  GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "RM_READONLY";
1175
  GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "MS_READONLY";
5892 dpurdie 1176
  GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "DM_READONLY";
6999 dpurdie 1177
  GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1178
--------------------------------------------------------
1179
--  DDL for Table IGNORE_WARNINGS
1180
--------------------------------------------------------
1181
 
5172 dpurdie 1182
  CREATE TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" 
4040 dpurdie 1183
   (	"RTAG_ID" NUMBER, 
1184
	"PV_ID" NUMBER, 
1185
	"DPV_ID" NUMBER, 
5172 dpurdie 1186
	"IS_PATCH_IGNORE" CHAR(1 BYTE)
1187
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1188
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1189
 NOCOMPRESS LOGGING
5172 dpurdie 1190
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1191
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1192
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1193
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1194
  GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "RM_READONLY";
1195
  GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "MS_READONLY";
5892 dpurdie 1196
  GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "DM_READONLY";
6999 dpurdie 1197
  GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1198
--------------------------------------------------------
1199
--  DDL for Table JIRA_ISSUES
1200
--------------------------------------------------------
1201
 
5172 dpurdie 1202
  CREATE TABLE "RELEASE_MANAGER"."JIRA_ISSUES" 
4040 dpurdie 1203
   (	"PV_ID" NUMBER, 
5172 dpurdie 1204
	"ISS_KEY" VARCHAR2(4000 BYTE), 
4040 dpurdie 1205
	"DATE_TIME_STAMP" DATE
5172 dpurdie 1206
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1207
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1208
 NOCOMPRESS LOGGING
5172 dpurdie 1209
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1210
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1211
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1212
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1213
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "RM_READONLY";
1214
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "MS_READONLY";
5892 dpurdie 1215
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "DM_READONLY";
1216
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "RELEASE_MANAGER_READ";
6999 dpurdie 1217
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1218
--------------------------------------------------------
1219
--  DDL for Table LICENCES
1220
--------------------------------------------------------
1221
 
5172 dpurdie 1222
  CREATE TABLE "RELEASE_MANAGER"."LICENCES" 
4040 dpurdie 1223
   (	"LICENCE" NUMBER, 
5172 dpurdie 1224
	"NAME" VARCHAR2(50 BYTE)
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"."LICENCES" TO "RM_READONLY";
1233
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCES" TO "MS_READONLY";
6999 dpurdie 1234
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCES" TO "DM_READONLY";
4040 dpurdie 1235
--------------------------------------------------------
1236
--  DDL for Table LICENCING
1237
--------------------------------------------------------
1238
 
5172 dpurdie 1239
  CREATE TABLE "RELEASE_MANAGER"."LICENCING" 
4040 dpurdie 1240
   (	"PV_ID" NUMBER, 
1241
	"LICENCE" NUMBER
5172 dpurdie 1242
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1243
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1244
 NOCOMPRESS LOGGING
5172 dpurdie 1245
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1246
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1247
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1248
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1249
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCING" TO "RM_READONLY";
1250
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCING" TO "MS_READONLY";
6999 dpurdie 1251
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCING" TO "DM_READONLY";
4040 dpurdie 1252
--------------------------------------------------------
6999 dpurdie 1253
--  DDL for Table LXR_STATE
1254
--------------------------------------------------------
5384 dpurdie 1255
 
1256
  CREATE TABLE "RELEASE_MANAGER"."LXR_STATE" 
1257
   (	"RTAG_ID" NUMBER, 
1258
	"LXRSERVER" CHAR(1 BYTE) DEFAULT 'N'
1259
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1260
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1261
 NOCOMPRESS LOGGING
5384 dpurdie 1262
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1263
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1264
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 1265
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5384 dpurdie 1266
 
1267
   COMMENT ON COLUMN "RELEASE_MANAGER"."LXR_STATE"."RTAG_ID" IS 'Link to Release_Tags';
1268
   COMMENT ON COLUMN "RELEASE_MANAGER"."LXR_STATE"."LXRSERVER" IS 'Written by server - I:Indexed, C:Closing, N:Not Known. May be InProgress.';
1269
   COMMENT ON TABLE "RELEASE_MANAGER"."LXR_STATE"  IS 'Contains data updated by the LXR server.
1270
This table is writable by a user known to the LXR Server';
6031 dpurdie 1271
  GRANT UPDATE ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";
1272
  GRANT SELECT ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";
1273
  GRANT INSERT ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";
1274
  GRANT DELETE ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";
6999 dpurdie 1275
  GRANT ALTER ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";
1276
--------------------------------------------------------
4040 dpurdie 1277
--  DDL for Table MEMBERS_GROUP
1278
--------------------------------------------------------
1279
 
5172 dpurdie 1280
  CREATE TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" 
4040 dpurdie 1281
   (	"GROUP_EMAIL_ID" NUMBER, 
1282
	"USER_ID" NUMBER
5172 dpurdie 1283
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1284
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1285
 NOCOMPRESS LOGGING
5172 dpurdie 1286
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1287
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1288
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1289
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1290
  GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "RM_READONLY";
1291
  GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "MS_READONLY";
5892 dpurdie 1292
  GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "DM_READONLY";
6999 dpurdie 1293
  GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1294
--------------------------------------------------------
1295
--  DDL for Table MESSAGE_BOARD
1296
--------------------------------------------------------
1297
 
5172 dpurdie 1298
  CREATE TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" 
4040 dpurdie 1299
   (	"MSG_ID" NUMBER, 
5172 dpurdie 1300
	"MSG_DETAILS" VARCHAR2(2000 BYTE), 
4040 dpurdie 1301
	"SUBMITION_DATE" DATE, 
1302
	"EXPIRY_DATE" DATE, 
1303
	"DUE_DATE" DATE
5172 dpurdie 1304
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1305
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1306
 NOCOMPRESS LOGGING
5172 dpurdie 1307
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1308
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1309
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1310
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1311
  GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "RM_READONLY";
1312
  GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "MS_READONLY";
5892 dpurdie 1313
  GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "DM_READONLY";
6999 dpurdie 1314
  GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1315
--------------------------------------------------------
1316
--  DDL for Table MICROSOFTDTPROPERTIES
1317
--------------------------------------------------------
1318
 
5172 dpurdie 1319
  CREATE TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" 
4040 dpurdie 1320
   (	"ID" NUMBER, 
1321
	"OBJECTID" NUMBER, 
5172 dpurdie 1322
	"PROPERTY" VARCHAR2(64 BYTE), 
1323
	"VALUE" VARCHAR2(255 BYTE), 
4040 dpurdie 1324
	"LVALUE" LONG RAW, 
1325
	"VERSION" NUMBER DEFAULT (0)
5172 dpurdie 1326
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1327
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1328
 NOCOMPRESS LOGGING
5172 dpurdie 1329
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1330
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1331
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1332
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1333
  GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "RM_READONLY";
1334
  GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "MS_READONLY";
5892 dpurdie 1335
  GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "DM_READONLY";
6999 dpurdie 1336
  GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1337
--------------------------------------------------------
1338
--  DDL for Table NOTE_MANAGER
1339
--------------------------------------------------------
1340
 
5172 dpurdie 1341
  CREATE TABLE "RELEASE_MANAGER"."NOTE_MANAGER" 
1342
   (	"NID" VARCHAR2(30 BYTE), 
1343
	"LAST_USER" VARCHAR2(20 BYTE), 
4040 dpurdie 1344
	"LAST_DATE" DATE, 
5172 dpurdie 1345
	"DESCRIPTION" VARCHAR2(4000 BYTE)
1346
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1347
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1348
 NOCOMPRESS LOGGING
5172 dpurdie 1349
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1350
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1351
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1352
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1353
  GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "RM_READONLY";
1354
  GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "MS_READONLY";
5892 dpurdie 1355
  GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "DM_READONLY";
6999 dpurdie 1356
  GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1357
--------------------------------------------------------
1358
--  DDL for Table NOTIFICATION_HISTORY
1359
--------------------------------------------------------
1360
 
5172 dpurdie 1361
  CREATE TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" 
4040 dpurdie 1362
   (	"RTAG_ID" NUMBER, 
1363
	"PV_ID" NUMBER, 
1364
	"USER_ID" NUMBER, 
1365
	"DATE_TIME_STAMP" DATE
5172 dpurdie 1366
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1367
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1368
 NOCOMPRESS LOGGING
5172 dpurdie 1369
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1370
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1371
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1372
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1373
  GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "RM_READONLY";
1374
  GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "MS_READONLY";
5892 dpurdie 1375
  GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "DM_READONLY";
6999 dpurdie 1376
  GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1377
--------------------------------------------------------
1378
--  DDL for Table PACKAGES
1379
--------------------------------------------------------
1380
 
5172 dpurdie 1381
  CREATE TABLE "RELEASE_MANAGER"."PACKAGES" 
4040 dpurdie 1382
   (	"PKG_ID" NUMBER, 
5172 dpurdie 1383
	"PKG_NAME" VARCHAR2(255 BYTE), 
1384
	"SUNOS_ELECTRONIC_NAME" VARCHAR2(255 BYTE), 
1385
	"WIN_ELECTRONIC_NAME" VARCHAR2(255 BYTE), 
1386
	"DEFAULT_PEGGED" CHAR(1 BYTE), 
1387
	"DEFAULT_ADVISORY_RIPPLE" CHAR(1 BYTE)
1388
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1389
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1390
 NOCOMPRESS LOGGING
5172 dpurdie 1391
  STORAGE(INITIAL 196608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1392
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1393
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 1394
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 1395
 
1396
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGES"."DEFAULT_PEGGED" IS 'Default pegged state for packages that are added to a release.';
1397
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGES"."DEFAULT_ADVISORY_RIPPLE" IS 'Default advisiory ripple state for packages that are added to a release.';
6031 dpurdie 1398
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "RM_READONLY";
1399
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "MS_READONLY";
5892 dpurdie 1400
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "DM_READONLY";
1401
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "RELEASE_MANAGER_READ";
1402
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER_READ";
6031 dpurdie 1403
  GRANT UPDATE ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER";
1404
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER";
1405
  GRANT INSERT ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 1406
  GRANT DELETE ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1407
--------------------------------------------------------
1408
--  DDL for Table PACKAGE_BUILD_ENV
1409
--------------------------------------------------------
1410
 
5172 dpurdie 1411
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" 
4040 dpurdie 1412
   (	"PV_ID" NUMBER, 
1413
	"BE_ID" NUMBER, 
1414
	"BUILD_TYPE" NUMBER
5172 dpurdie 1415
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1416
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1417
 NOCOMPRESS LOGGING
5172 dpurdie 1418
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1419
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1420
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1421
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1422
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "RM_READONLY";
1423
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "MS_READONLY";
5892 dpurdie 1424
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DM_READONLY";
1425
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "RELEASE_MANAGER_READ";
6031 dpurdie 1426
  GRANT UPDATE ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DEPLOYMENT_MANAGER";
1427
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DEPLOYMENT_MANAGER";
1428
  GRANT INSERT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 1429
  GRANT DELETE ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1430
--------------------------------------------------------
1431
--  DDL for Table PACKAGE_BUILD_INFO
1432
--------------------------------------------------------
1433
 
5172 dpurdie 1434
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" 
4040 dpurdie 1435
   (	"PV_ID" NUMBER, 
1436
	"BM_ID" NUMBER, 
1437
	"BSA_ID" NUMBER
5172 dpurdie 1438
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1439
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1440
 NOCOMPRESS LOGGING
5172 dpurdie 1441
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1442
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1443
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1444
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1445
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "RM_READONLY";
1446
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "MS_READONLY";
5892 dpurdie 1447
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "DM_READONLY";
6999 dpurdie 1448
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1449
--------------------------------------------------------
1450
--  DDL for Table PACKAGE_DEPENDENCIES
1451
--------------------------------------------------------
1452
 
5172 dpurdie 1453
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" 
4040 dpurdie 1454
   (	"PV_ID" NUMBER, 
1455
	"DPV_ID" NUMBER, 
1456
	"PKG_ID" NUMBER, 
1457
	"DPKG_ID" NUMBER, 
5172 dpurdie 1458
	"BUILD_TYPE" CHAR(1 BYTE), 
4040 dpurdie 1459
	"DISPLAY_ORDER" NUMBER
5172 dpurdie 1460
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1461
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1462
 NOCOMPRESS LOGGING
5172 dpurdie 1463
  STORAGE(INITIAL 100663296 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1464
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1465
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 1466
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5384 dpurdie 1467
 
1468
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES"."PV_ID" IS 'Package Version Identifier';
1469
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES"."DPV_ID" IS 'Depends on this package version';
1470
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES"."BUILD_TYPE" IS 'B:BuildPkgArchive, L:LinkPkgArchive';
6031 dpurdie 1471
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "RM_READONLY";
1472
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "MS_READONLY";
5892 dpurdie 1473
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "DM_READONLY";
1474
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "RELEASE_MANAGER_READ";
6999 dpurdie 1475
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1476
--------------------------------------------------------
1477
--  DDL for Table PACKAGE_DOCUMENTS
1478
--------------------------------------------------------
1479
 
5172 dpurdie 1480
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" 
4040 dpurdie 1481
   (	"PV_ID" NUMBER, 
1482
	"TEST_ID" NUMBER, 
1483
	"DOC_ID" NUMBER, 
5172 dpurdie 1484
	"DOC_NUM" VARCHAR2(50 BYTE), 
1485
	"IS_LATEST" CHAR(1 BYTE)
1486
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1487
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1488
 NOCOMPRESS LOGGING
5172 dpurdie 1489
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1490
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1491
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1492
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1493
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "RM_READONLY";
1494
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "MS_READONLY";
5892 dpurdie 1495
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "DM_READONLY";
6999 dpurdie 1496
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1497
--------------------------------------------------------
1498
--  DDL for Table PACKAGE_INTEREST
1499
--------------------------------------------------------
1500
 
5172 dpurdie 1501
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" 
4040 dpurdie 1502
   (	"PKG_ID" NUMBER, 
1503
	"PROJ_ID" NUMBER, 
1504
	"USER_ID" NUMBER
5172 dpurdie 1505
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1506
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1507
 NOCOMPRESS LOGGING
5172 dpurdie 1508
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1509
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1510
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1511
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1512
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_INTEREST" TO "RM_READONLY";
1513
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_INTEREST" TO "MS_READONLY";
6999 dpurdie 1514
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_INTEREST" TO "DM_READONLY";
4040 dpurdie 1515
--------------------------------------------------------
1516
--  DDL for Table PACKAGE_METRICS
1517
--------------------------------------------------------
1518
 
5172 dpurdie 1519
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" 
4040 dpurdie 1520
   (	"PV_ID" NUMBER, 
1521
	"BRANCHES" NUMBER, 
5172 dpurdie 1522
	"BRANCH_LIST" VARCHAR2(4000 BYTE), 
4040 dpurdie 1523
	"CODE_FILES" NUMBER, 
1524
	"IGNORED_FILES" NUMBER, 
1525
	"DIRECTORIES" NUMBER, 
1526
	"DIRECTORY_DEPTH" NUMBER, 
1527
	"TOTAL_FILES" NUMBER, 
1528
	"MAKEFILES" NUMBER, 
1529
	"BLANK_LINES" NUMBER, 
1530
	"CODE_LINES" NUMBER, 
1531
	"COMMENT_LINES" NUMBER, 
1532
	"CREATED_STAMP" DATE
5172 dpurdie 1533
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1534
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1535
 NOCOMPRESS LOGGING
5172 dpurdie 1536
  STORAGE(INITIAL 12582912 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1537
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1538
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1539
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1540
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_METRICS" TO "RM_READONLY";
1541
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_METRICS" TO "MS_READONLY";
6999 dpurdie 1542
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_METRICS" TO "DM_READONLY";
4040 dpurdie 1543
--------------------------------------------------------
1544
--  DDL for Table PACKAGE_PATCHES
1545
--------------------------------------------------------
1546
 
5172 dpurdie 1547
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" 
4040 dpurdie 1548
   (	"PV_ID" NUMBER, 
1549
	"PATCH_ID" NUMBER, 
1550
	"INSTALL_ORDER" NUMBER, 
1551
	"PATCH_OBSOLETED_BY" NUMBER
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 327680 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" ;
1559
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "RM_READONLY";
1560
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "MS_READONLY";
5892 dpurdie 1561
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "DM_READONLY";
1562
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "RELEASE_MANAGER_READ";
6999 dpurdie 1563
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1564
--------------------------------------------------------
1565
--  DDL for Table PACKAGE_PROCESSES
1566
--------------------------------------------------------
1567
 
5172 dpurdie 1568
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" 
4040 dpurdie 1569
   (	"PV_ID" NUMBER, 
1570
	"PROC_ID" NUMBER
5172 dpurdie 1571
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1572
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1573
 NOCOMPRESS LOGGING
5172 dpurdie 1574
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1575
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1576
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1577
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1578
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "RM_READONLY";
1579
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "MS_READONLY";
5892 dpurdie 1580
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DM_READONLY";
6031 dpurdie 1581
  GRANT UPDATE ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DEPLOYMENT_MANAGER";
1582
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DEPLOYMENT_MANAGER";
1583
  GRANT INSERT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 1584
  GRANT DELETE ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1585
--------------------------------------------------------
1586
--  DDL for Table PACKAGE_VERSIONS
1587
--------------------------------------------------------
1588
 
5172 dpurdie 1589
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" 
4040 dpurdie 1590
   (	"PV_ID" NUMBER, 
1591
	"PKG_ID" NUMBER, 
5172 dpurdie 1592
	"PKG_VERSION" VARCHAR2(50 BYTE), 
1593
	"DLOCKED" CHAR(1 BYTE), 
4040 dpurdie 1594
	"RELEASED_AT" NUMBER, 
1595
	"MODIFIED_STAMP" DATE, 
1596
	"MODIFIER_ID" NUMBER, 
1597
	"CREATED_STAMP" DATE, 
1598
	"CREATOR_ID" NUMBER, 
5172 dpurdie 1599
	"COMMENTS" VARCHAR2(4000 BYTE), 
1600
	"V_MM" VARCHAR2(50 BYTE), 
1601
	"V_NMM" VARCHAR2(50 BYTE), 
1602
	"V_EXT" VARCHAR2(50 BYTE), 
1603
	"PKG_LABEL" VARCHAR2(60 BYTE), 
1604
	"SRC_PATH" VARCHAR2(2000 BYTE), 
1605
	"PV_DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1606
	"OWNER_ID" NUMBER, 
5172 dpurdie 1607
	"PV_OVERVIEW" VARCHAR2(4000 BYTE), 
1608
	"IS_PATCH" CHAR(1 BYTE), 
4040 dpurdie 1609
	"LAST_PV_ID" NUMBER, 
5172 dpurdie 1610
	"RELEASE_NOTES_INFO" VARCHAR2(1000 BYTE), 
1611
	"IS_DEPLOYABLE" CHAR(1 BYTE), 
1612
	"IS_BUILD_ENV_REQUIRED" CHAR(1 BYTE), 
1613
	"IS_OBSOLETE" CHAR(1 BYTE), 
1614
	"OBSOLETE_COMMENTS" VARCHAR2(4000 BYTE), 
1615
	"BUILD_TYPE" CHAR(1 BYTE), 
1616
	"CHANGE_TYPE" CHAR(1 BYTE), 
1617
	"LINK" VARCHAR2(4000 BYTE), 
1618
	"PATCH_ELECTRONIC_NAME" VARCHAR2(4000 BYTE), 
4040 dpurdie 1619
	"BS_ID" NUMBER, 
5172 dpurdie 1620
	"IS_AUTOBUILDABLE" CHAR(1 BYTE), 
1621
	"SBOM_PRIORITY" CHAR(1 BYTE), 
4040 dpurdie 1622
	"RIPPLE_FIELD" CHAR(1 CHAR), 
1623
	"MAXIMUM_BUILD_TIME" NUMBER, 
5892 dpurdie 1624
	"BUILD_TIME" NUMBER, 
4040 dpurdie 1625
	"MAJOR_LIMIT" NUMBER(10,0), 
1626
	"MINOR_LIMIT" NUMBER(10,0), 
1627
	"PATCH_LIMIT" NUMBER(10,0), 
1628
	"BUILD_NUMBER_LIMIT" NUMBER(10,0), 
5384 dpurdie 1629
	"VCS_TYPE_ID" NUMBER, 
1630
	"PKG_IDEXT" VARCHAR2(70 BYTE)
5172 dpurdie 1631
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1632
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1633
 NOCOMPRESS LOGGING
5172 dpurdie 1634
  STORAGE(INITIAL 134217728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1635
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1636
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 1637
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 1638
 
1639
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."RELEASED_AT" IS 'No longer used';
6999 dpurdie 1640
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."OWNER_ID" IS 'Copied from previous version. Set on ''Make Pending'' - you touched it you own it.';
5892 dpurdie 1641
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."IS_DEPLOYABLE" IS 'null:No, NonNull:Yes Y:Yes';
6031 dpurdie 1642
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."BUILD_TYPE" IS 'A:Auto, M:Manual, U:UnBuildable';
5892 dpurdie 1643
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."IS_AUTOBUILDABLE" IS 'Y: Indicates that the package has been built on a build machine';
1644
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."BUILD_TIME" IS 'Duration of last build';
6031 dpurdie 1645
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "RM_READONLY";
1646
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "MS_READONLY";
5892 dpurdie 1647
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DM_READONLY";
1648
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "RELEASE_MANAGER_READ";
6031 dpurdie 1649
  GRANT UPDATE ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DEPLOYMENT_MANAGER";
1650
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DEPLOYMENT_MANAGER";
1651
  GRANT INSERT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 1652
  GRANT DELETE ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1653
--------------------------------------------------------
1654
--  DDL for Table PEGGED_VERSIONS
1655
--------------------------------------------------------
1656
 
5172 dpurdie 1657
  CREATE TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" 
4040 dpurdie 1658
   (	"RTAG_ID" NUMBER, 
1659
	"PV_ID" NUMBER
5172 dpurdie 1660
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1661
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1662
 NOCOMPRESS LOGGING
5172 dpurdie 1663
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1664
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1665
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1666
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1667
  GRANT SELECT ON "RELEASE_MANAGER"."PEGGED_VERSIONS" TO "RM_READONLY";
1668
  GRANT SELECT ON "RELEASE_MANAGER"."PEGGED_VERSIONS" TO "MS_READONLY";
6999 dpurdie 1669
  GRANT SELECT ON "RELEASE_MANAGER"."PEGGED_VERSIONS" TO "DM_READONLY";
4040 dpurdie 1670
--------------------------------------------------------
1671
--  DDL for Table PLANNED
1672
--------------------------------------------------------
1673
 
5172 dpurdie 1674
  CREATE TABLE "RELEASE_MANAGER"."PLANNED" 
4040 dpurdie 1675
   (	"RTAG_ID" NUMBER, 
1676
	"PV_ID" NUMBER, 
1677
	"VIEW_ID" NUMBER, 
5172 dpurdie 1678
	"OPERATION" CHAR(1 BYTE)
1679
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1680
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1681
 NOCOMPRESS LOGGING
5172 dpurdie 1682
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1683
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1684
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 1685
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 1686
 
1687
   COMMENT ON COLUMN "RELEASE_MANAGER"."PLANNED"."OPERATION" IS 'A: Add existing version.
1688
 
6031 dpurdie 1689
S:Subtract existing Version.
5172 dpurdie 1690
 
1691
R:Add New Version';
1692
   COMMENT ON TABLE "RELEASE_MANAGER"."PLANNED"  IS 'This table contains WORK IN PROGRESS packages';
6031 dpurdie 1693
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "RM_READONLY";
1694
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "MS_READONLY";
5892 dpurdie 1695
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "DM_READONLY";
1696
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "RELEASE_MANAGER_READ";
6999 dpurdie 1697
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1698
--------------------------------------------------------
1699
--  DDL for Table PLANNED_VERSIONS
1700
--------------------------------------------------------
1701
 
5172 dpurdie 1702
  CREATE TABLE "RELEASE_MANAGER"."PLANNED_VERSIONS" 
4040 dpurdie 1703
   (	"PKG_ID" NUMBER, 
5172 dpurdie 1704
	"PKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 1705
	"PLANNED_TIME" DATE
5172 dpurdie 1706
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1707
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1708
 NOCOMPRESS LOGGING
5172 dpurdie 1709
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1710
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1711
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1712
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1713
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED_VERSIONS" TO "RM_READONLY";
1714
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED_VERSIONS" TO "MS_READONLY";
6999 dpurdie 1715
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED_VERSIONS" TO "DM_READONLY";
4040 dpurdie 1716
--------------------------------------------------------
1717
--  DDL for Table PLATFORMS
1718
--------------------------------------------------------
1719
 
5172 dpurdie 1720
  CREATE TABLE "RELEASE_MANAGER"."PLATFORMS" 
4040 dpurdie 1721
   (	"CODE" NUMBER, 
5172 dpurdie 1722
	"NAME" VARCHAR2(255 BYTE)
1723
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1724
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1725
 NOCOMPRESS LOGGING
5172 dpurdie 1726
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1727
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1728
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1729
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1730
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "RM_READONLY";
1731
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "MS_READONLY";
5892 dpurdie 1732
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "DM_READONLY";
1733
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "RELEASE_MANAGER_READ";
6999 dpurdie 1734
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1735
--------------------------------------------------------
1736
--  DDL for Table PROCESSES
1737
--------------------------------------------------------
1738
 
5172 dpurdie 1739
  CREATE TABLE "RELEASE_MANAGER"."PROCESSES" 
4040 dpurdie 1740
   (	"PROC_ID" NUMBER, 
5172 dpurdie 1741
	"PROC_NAME" VARCHAR2(255 BYTE), 
1742
	"PROC_DESCRIPTION" VARCHAR2(255 BYTE), 
1743
	"RUN_AS" VARCHAR2(255 BYTE), 
1744
	"PKG_OWNER" VARCHAR2(4000 BYTE), 
1745
	"IS_INTERFACE" CHAR(1 BYTE)
1746
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1747
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1748
 NOCOMPRESS LOGGING
5172 dpurdie 1749
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1750
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1751
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1752
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1753
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "RM_READONLY";
1754
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "MS_READONLY";
5892 dpurdie 1755
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "DM_READONLY";
1756
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "RELEASE_MANAGER_READ";
6031 dpurdie 1757
  GRANT UPDATE ON "RELEASE_MANAGER"."PROCESSES" TO "DEPLOYMENT_MANAGER";
1758
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "DEPLOYMENT_MANAGER";
1759
  GRANT INSERT ON "RELEASE_MANAGER"."PROCESSES" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 1760
  GRANT DELETE ON "RELEASE_MANAGER"."PROCESSES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1761
--------------------------------------------------------
1762
--  DDL for Table PRODUCT_COMPONENTS
1763
--------------------------------------------------------
1764
 
5172 dpurdie 1765
  CREATE TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" 
4040 dpurdie 1766
   (	"PV_ID" NUMBER, 
1767
	"OS_ID" NUMBER, 
5172 dpurdie 1768
	"FILE_PATH" VARCHAR2(4000 BYTE), 
1769
	"FILE_NAME" VARCHAR2(4000 BYTE), 
1770
	"DESTINATION_PATH" VARCHAR2(4000 BYTE), 
4040 dpurdie 1771
	"BYTE_SIZE" NUMBER, 
5172 dpurdie 1772
	"CRC_CKSUM" VARCHAR2(2000 BYTE)
1773
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1774
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1775
 NOCOMPRESS LOGGING
5172 dpurdie 1776
  STORAGE(INITIAL 31457280 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1777
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1778
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1779
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1780
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "RM_READONLY";
1781
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "MS_READONLY";
5892 dpurdie 1782
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "DM_READONLY";
1783
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "RELEASE_MANAGER_READ";
6999 dpurdie 1784
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1785
--------------------------------------------------------
1786
--  DDL for Table PRODUCT_STATES
1787
--------------------------------------------------------
1788
 
5172 dpurdie 1789
  CREATE TABLE "RELEASE_MANAGER"."PRODUCT_STATES" 
4040 dpurdie 1790
   (	"STATE_ID" NUMBER, 
5172 dpurdie 1791
	"STATE" VARCHAR2(4000 BYTE)
1792
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1793
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1794
 NOCOMPRESS LOGGING
5172 dpurdie 1795
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1796
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1797
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1798
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1799
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_STATES" TO "RM_READONLY";
1800
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_STATES" TO "MS_READONLY";
6999 dpurdie 1801
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_STATES" TO "DM_READONLY";
4040 dpurdie 1802
--------------------------------------------------------
1803
--  DDL for Table PROJECTS
1804
--------------------------------------------------------
1805
 
5172 dpurdie 1806
  CREATE TABLE "RELEASE_MANAGER"."PROJECTS" 
4040 dpurdie 1807
   (	"PROJ_ID" NUMBER, 
5172 dpurdie 1808
	"PROJ_NAME" VARCHAR2(50 BYTE), 
1809
	"BASE_URL" VARCHAR2(4000 BYTE), 
1810
	"JIRA_KEY" VARCHAR2(16 BYTE)
1811
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1812
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1813
 NOCOMPRESS LOGGING
5172 dpurdie 1814
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1815
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1816
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1817
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1818
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "RM_READONLY";
1819
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "MS_READONLY";
5892 dpurdie 1820
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "DM_READONLY";
1821
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "RELEASE_MANAGER_READ";
1822
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER_READ";
6031 dpurdie 1823
  GRANT UPDATE ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER";
1824
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER";
1825
  GRANT INSERT ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER";
1826
  GRANT DELETE ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 1827
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "ACCESS_MANAGER";
4040 dpurdie 1828
--------------------------------------------------------
1829
--  DDL for Table PROJECT_ACTION_LOG
1830
--------------------------------------------------------
1831
 
5172 dpurdie 1832
  CREATE TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" 
4040 dpurdie 1833
   (	"USER_ID" NUMBER, 
1834
	"ACTION_DATETIME" DATE, 
1835
	"PROJ_ID" NUMBER, 
5172 dpurdie 1836
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1837
	"ACTTYPE_ID" NUMBER, 
1838
	"RTAG_ID" NUMBER
5172 dpurdie 1839
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1840
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1841
 NOCOMPRESS LOGGING
5172 dpurdie 1842
  STORAGE(INITIAL 851968 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1843
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1844
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1845
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1846
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "RM_READONLY";
1847
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "MS_READONLY";
5892 dpurdie 1848
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "DM_READONLY";
6999 dpurdie 1849
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1850
--------------------------------------------------------
1851
--  DDL for Table PROJECT_EXTENTIONS
1852
--------------------------------------------------------
1853
 
5172 dpurdie 1854
  CREATE TABLE "RELEASE_MANAGER"."PROJECT_EXTENTIONS" 
4040 dpurdie 1855
   (	"PROJ_ID" NUMBER, 
5172 dpurdie 1856
	"EXT_NAME" VARCHAR2(10 BYTE), 
1857
	"UCOMMENT" VARCHAR2(120 BYTE), 
1858
	"IS_VISIBLE" CHAR(1 BYTE) DEFAULT 'Y', 
1859
	"IS_COTS" CHAR(1 BYTE) DEFAULT 'N'
1860
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1861
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1862
 NOCOMPRESS LOGGING
5172 dpurdie 1863
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1864
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1865
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1866
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1867
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "RM_READONLY";
1868
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "MS_READONLY";
5892 dpurdie 1869
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "DM_READONLY";
1870
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "RELEASE_MANAGER_READ";
6999 dpurdie 1871
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1872
--------------------------------------------------------
1873
--  DDL for Table RELEASE_COMPONENTS
1874
--------------------------------------------------------
1875
 
5172 dpurdie 1876
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" 
4040 dpurdie 1877
   (	"PV_ID" NUMBER, 
5172 dpurdie 1878
	"FILE_NAME" VARCHAR2(255 BYTE), 
1879
	"FILE_PATH" VARCHAR2(2000 BYTE), 
4040 dpurdie 1880
	"BYTE_SIZE" NUMBER, 
5172 dpurdie 1881
	"CRC_CKSUM" VARCHAR2(50 BYTE), 
1882
	"CRC_MODCRC" VARCHAR2(50 BYTE)
1883
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1884
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1885
 NOCOMPRESS LOGGING
5172 dpurdie 1886
  STORAGE(INITIAL 2828009472 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_COMPONENTS" TO "RM_READONLY";
1891
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "MS_READONLY";
5892 dpurdie 1892
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "DM_READONLY";
6999 dpurdie 1893
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1894
--------------------------------------------------------
1895
--  DDL for Table RELEASE_CONFIG
1896
--------------------------------------------------------
1897
 
5172 dpurdie 1898
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" 
4040 dpurdie 1899
   (	"RCON_ID" NUMBER, 
1900
	"RTAG_ID" NUMBER, 
1901
	"GBE_ID" NUMBER, 
5172 dpurdie 1902
	"DAEMON_HOSTNAME" VARCHAR2(50 BYTE), 
4040 dpurdie 1903
	"DAEMON_MODE" CHAR(1 CHAR), 
5172 dpurdie 1904
	"GBE_BUILDFILTER" VARCHAR2(255 BYTE), 
4308 dpurdie 1905
	"BMCON_ID" NUMBER
5172 dpurdie 1906
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1907
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1908
 NOCOMPRESS LOGGING
5172 dpurdie 1909
  STORAGE(INITIAL 196608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1910
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1911
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1912
  TABLESPACE "RELEASE_MANAGER_DATA" ;
4308 dpurdie 1913
 
5172 dpurdie 1914
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."GBE_ID" IS 'Do not use. Data should come from build_machine_config';
1915
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."DAEMON_HOSTNAME" IS 'Do not use. Data should come from build_machine_config';
1916
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."BMCON_ID" IS 'Link to the build_machine_config table';
6031 dpurdie 1917
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "RM_READONLY";
1918
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "MS_READONLY";
5892 dpurdie 1919
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "DM_READONLY";
6999 dpurdie 1920
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1921
--------------------------------------------------------
1922
--  DDL for Table RELEASE_CONTENT
1923
--------------------------------------------------------
1924
 
5172 dpurdie 1925
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" 
4040 dpurdie 1926
   (	"RTAG_ID" NUMBER, 
1927
	"PV_ID" NUMBER, 
1928
	"BASE_VIEW_ID" NUMBER, 
1929
	"INSERT_STAMP" DATE, 
1930
	"INSERTOR_ID" NUMBER, 
1931
	"PKG_STATE" NUMBER, 
1932
	"PKG_ID" NUMBER, 
1933
	"DEPRECATED_STATE" NUMBER, 
5172 dpurdie 1934
	"PRODUCT_STATE" NUMBER, 
6600 dpurdie 1935
	"SDKTAG_ID" NUMBER, 
1936
	"RIPPLE_STOP" CHAR(1 BYTE), 
1937
	"PERSIST_RIPPLE_STOP" CHAR(1 BYTE)
5172 dpurdie 1938
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1939
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1940
 NOCOMPRESS LOGGING
5172 dpurdie 1941
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1942
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1943
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 1944
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 1945
 
5384 dpurdie 1946
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."PKG_ID" IS 'NotUsed any more. Was:Package that has been deprecated';
5172 dpurdie 1947
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."DEPRECATED_STATE" IS '6: Deprecated Package, 7: Deprecated Dependent';
1948
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."SDKTAG_ID" IS 'Pkg imported via SDK';
6600 dpurdie 1949
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."RIPPLE_STOP" IS 's: Stop Ripple, w:Wait for Reset, g:GoBuild';
1950
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."PERSIST_RIPPLE_STOP" IS 'Null:No';
6031 dpurdie 1951
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "RM_READONLY";
1952
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "MS_READONLY";
5892 dpurdie 1953
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "DM_READONLY";
1954
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "RELEASE_MANAGER_READ";
6999 dpurdie 1955
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1956
--------------------------------------------------------
1957
--  DDL for Table RELEASE_LINKS
1958
--------------------------------------------------------
1959
 
5172 dpurdie 1960
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_LINKS" 
4040 dpurdie 1961
   (	"RTAG_ID" NUMBER, 
1962
	"REF_RTAG_ID" NUMBER
5172 dpurdie 1963
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1964
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1965
 NOCOMPRESS LOGGING
5172 dpurdie 1966
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1967
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1968
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1969
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1970
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "RM_READONLY";
1971
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "MS_READONLY";
5892 dpurdie 1972
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "DM_READONLY";
6999 dpurdie 1973
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1974
--------------------------------------------------------
1975
--  DDL for Table RELEASE_METRICS
1976
--------------------------------------------------------
1977
 
5172 dpurdie 1978
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_METRICS" 
4040 dpurdie 1979
   (	"RTAG_ID" NUMBER, 
1980
	"TOTAL_PACKAGES" NUMBER, 
1981
	"AUTOBUILT" NUMBER, 
1982
	"LINES_OF_CODE" NUMBER, 
1983
	"UNIT_TESTED" NUMBER, 
1984
	"AUTOTESTED" NUMBER, 
1985
	"BRANCHES" NUMBER, 
1986
	"LAST_BUILD_TIME" DATE
5172 dpurdie 1987
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1988
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1989
 NOCOMPRESS LOGGING
5172 dpurdie 1990
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1991
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1992
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1993
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1994
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_METRICS" TO "RM_READONLY";
1995
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_METRICS" TO "MS_READONLY";
6999 dpurdie 1996
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_METRICS" TO "DM_READONLY";
1997
--------------------------------------------------------
1998
--  DDL for Table RELEASE_MODIFIED
1999
--------------------------------------------------------
5172 dpurdie 2000
 
2001
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" 
2002
   (	"RTAG_ID" NUMBER, 
2003
	"TIMESTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP, 
2004
	"SEQNUM" NUMBER
2005
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2006
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2007
 NOCOMPRESS LOGGING
5172 dpurdie 2008
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2009
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2010
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2011
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2012
 
2013
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."RTAG_ID" IS 'Link to Release';
2014
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."TIMESTAMP" IS 'Time of the modification';
2015
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."SEQNUM" IS 'Unique number indicating change';
2016
   COMMENT ON TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED"  IS 'This table conatins a single entry for each RELEASE_TAG.
2017
It is used by the build system to help detect changes to the content of a Release.
2018
A stored proceedure simplifies the use of this table: PK_RELEASE.SET_RELEASE_MODIFIED
2019
 
2020
This should be called whenever the package_versions in the release have changed in such
2021
a manner that the build daemons should examine the release. This includes:
2022
 - Packages added and removed
2023
 - Packages build status changed (re-included in the release )
6999 dpurdie 2024
 - Packages made Pending Build';
4040 dpurdie 2025
--------------------------------------------------------
2026
--  DDL for Table RELEASE_TAGS
2027
--------------------------------------------------------
2028
 
5172 dpurdie 2029
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_TAGS" 
4040 dpurdie 2030
   (	"RTAG_ID" NUMBER, 
2031
	"VTREE_ID" NUMBER, 
5172 dpurdie 2032
	"RTAG_NAME" VARCHAR2(50 BYTE), 
2033
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 2034
	"CREATED_STAMP" DATE, 
2035
	"CREATOR_ID" NUMBER, 
2036
	"OFFICIAL_STAMP" DATE, 
2037
	"RELEASOR_ID" NUMBER, 
5172 dpurdie 2038
	"OFFICIAL" CHAR(1 BYTE), 
2039
	"REBUILD_ENV" CHAR(1 BYTE), 
4040 dpurdie 2040
	"REBUILD_STAMP" NUMBER, 
5172 dpurdie 2041
	"RTAG_VERSION" VARCHAR2(4000 BYTE), 
4040 dpurdie 2042
	"RTAG_LIFE_CYCLE" NUMBER, 
2043
	"PARENT_RTAG_ID" NUMBER, 
2044
	"PROJ_ID" NUMBER, 
2045
	"DISPLAY_ORDER" NUMBER, 
5172 dpurdie 2046
	"OWNER_EMAIL" VARCHAR2(1000 BYTE), 
4040 dpurdie 2047
	"ASSOC_MASS_REF" NUMBER, 
5172 dpurdie 2048
	"OWNER_PERSONAL_EMAIL" VARCHAR2(1000 BYTE), 
2049
	"CONFIG_SPEC_BRANCH" VARCHAR2(4000 BYTE), 
2050
	"PRODUCT_STATE_USED" CHAR(1 BYTE), 
2051
	"OFFICIAL_ID" NUMBER, 
5384 dpurdie 2052
	"BUILD_AGE" NUMBER DEFAULT 31, 
2053
	"LXR" CHAR(1 BYTE) DEFAULT 'N'
5172 dpurdie 2054
   ) SEGMENT CREATION IMMEDIATE 
6999 dpurdie 2055
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
6031 dpurdie 2056
 NOCOMPRESS LOGGING
6999 dpurdie 2057
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2058
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
6999 dpurdie 2059
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2060
  TABLESPACE "RELEASE_MANAGER_DATA" ;
4040 dpurdie 2061
 
5384 dpurdie 2062
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."CREATED_STAMP" IS 'Date Release was created';
2063
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."CREATOR_ID" IS 'User who created the release';
2064
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL_STAMP" IS 'Date OFFICIAL state was changed';
2065
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."RELEASOR_ID" IS 'Not Used';
2066
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL" IS 'State of release. A:Archived, Y:Closed, C:CCB Mode, R:Restricted, N: Open';
2067
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."REBUILD_ENV" IS 'Y: Rebuild Package State';
2068
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."REBUILD_STAMP" IS 'Not used ?';
2069
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL_ID" IS 'User last changed OFFICIAL state';
5172 dpurdie 2070
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."BUILD_AGE" IS 'Days without building before warning is shown';
5384 dpurdie 2071
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."LXR" IS 'Y:Enable LXR';
6999 dpurdie 2072
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "RM_READONLY";
5892 dpurdie 2073
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "MS_READONLY";
6031 dpurdie 2074
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "DM_READONLY";
5892 dpurdie 2075
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "RELEASE_MANAGER_READ";
6999 dpurdie 2076
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 2077
--------------------------------------------------------
6031 dpurdie 2078
--  DDL for Table RM_PACKAGE_ISSUES_DELETE_ME
4040 dpurdie 2079
--------------------------------------------------------
2080
 
6031 dpurdie 2081
  CREATE TABLE "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" 
4040 dpurdie 2082
   (	"PKG_ID" NUMBER, 
5172 dpurdie 2083
	"PKG_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 2084
	"PV_ID" NUMBER, 
5172 dpurdie 2085
	"PKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 2086
	"DPV_ID" NUMBER, 
5172 dpurdie 2087
	"DPKG_NAME" VARCHAR2(50 BYTE), 
2088
	"DPKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 2089
	"ISS_DB" NUMBER, 
2090
	"ISS_ID" NUMBER
5172 dpurdie 2091
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2092
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2093
 NOCOMPRESS LOGGING
5172 dpurdie 2094
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2095
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2096
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2097
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2098
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "RM_READONLY";
2099
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "MS_READONLY";
2100
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "DM_READONLY";
6999 dpurdie 2101
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2102
--------------------------------------------------------
2103
--  DDL for Table RM_PKG_ISSUES
2104
--------------------------------------------------------
2105
 
5172 dpurdie 2106
  CREATE GLOBAL TEMPORARY TABLE "RELEASE_MANAGER"."RM_PKG_ISSUES" 
4040 dpurdie 2107
   (	"PKG_ID" NUMBER, 
5172 dpurdie 2108
	"PKG_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 2109
	"PV_ID" NUMBER, 
5172 dpurdie 2110
	"PKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 2111
	"DPV_ID" NUMBER, 
5172 dpurdie 2112
	"DPKG_NAME" VARCHAR2(50 BYTE), 
2113
	"DPKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 2114
	"ISS_DB" NUMBER, 
2115
	"ISS_ID" NUMBER
2116
   ) ON COMMIT PRESERVE ROWS ;
6031 dpurdie 2117
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "RM_READONLY";
2118
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "MS_READONLY";
5892 dpurdie 2119
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "DM_READONLY";
6999 dpurdie 2120
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2121
--------------------------------------------------------
2122
--  DDL for Table RUNTIME_DEPENDENCIES
2123
--------------------------------------------------------
2124
 
5172 dpurdie 2125
  CREATE TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" 
4040 dpurdie 2126
   (	"PV_ID" NUMBER, 
2127
	"RTD_ID" NUMBER, 
5172 dpurdie 2128
	"RTD_COMMENTS" VARCHAR2(2000 BYTE), 
2129
	"RTD_URL" VARCHAR2(2000 BYTE), 
4040 dpurdie 2130
	"MOD_DATE" DATE, 
2131
	"MOD_USER" NUMBER
5172 dpurdie 2132
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2133
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2134
 NOCOMPRESS LOGGING
5172 dpurdie 2135
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2136
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2137
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2138
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2139
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "RM_READONLY";
2140
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "MS_READONLY";
5892 dpurdie 2141
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "DM_READONLY";
6999 dpurdie 2142
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2143
--------------------------------------------------------
2144
--  DDL for Table RUN_LEVEL
2145
--------------------------------------------------------
2146
 
5172 dpurdie 2147
  CREATE TABLE "RELEASE_MANAGER"."RUN_LEVEL" 
4040 dpurdie 2148
   (	"RCON_ID" NUMBER, 
2149
	"CURRENT_BUILD_FILES" CLOB, 
2150
	"CURRENT_RUN_LEVEL" NUMBER, 
2151
	"PAUSE" NUMBER, 
2152
	"CURRENT_PKG_ID_BEING_BUILT" NUMBER, 
4553 dpurdie 2153
	"KEEP_ALIVE" DATE, 
2154
	"CURRENT_PV_ID" NUMBER, 
2155
	"LAST_BUILD" DATE DEFAULT sysdate
5172 dpurdie 2156
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2157
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2158
 NOCOMPRESS LOGGING
5172 dpurdie 2159
  STORAGE(INITIAL 131072 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
 LOB ("CURRENT_BUILD_FILES") STORE AS BASICFILE (
6031 dpurdie 2164
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
5172 dpurdie 2165
  NOCACHE LOGGING 
2166
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2167
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
6999 dpurdie 2168
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
4553 dpurdie 2169
 
5172 dpurdie 2170
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."RCON_ID" IS 'Link to the Release_config table';
2171
   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 2172
   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 2173
   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';
2174
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_PKG_ID_BEING_BUILT" IS 'pkg_id of the package currently being built';
2175
   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.';
2176
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_PV_ID" IS 'The PV_ID of the package currently being built.';
2177
   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 2178
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL" TO "RM_READONLY";
2179
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL" TO "MS_READONLY";
6999 dpurdie 2180
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL" TO "DM_READONLY";
4040 dpurdie 2181
--------------------------------------------------------
2182
--  DDL for Table RUN_LEVEL_SCHEDULE
2183
--------------------------------------------------------
2184
 
5172 dpurdie 2185
  CREATE TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" 
4040 dpurdie 2186
   (	"SCHEDULED_ID" NUMBER, 
2187
	"SCHEDULED_PAUSE" DATE, 
2188
	"SCHEDULED_RESUME" DATE, 
5172 dpurdie 2189
	"REPEAT" CHAR(1 BYTE), 
2190
	"INDEFINITE_PAUSE" CHAR(1 BYTE)
2191
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2192
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2193
 NOCOMPRESS LOGGING
5172 dpurdie 2194
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2195
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2196
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2197
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2198
 
2199
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_ID" IS 'Unique entry identifier';
2200
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_PAUSE" IS 'Start DateTime of the outage';
2201
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_RESUME" IS 'End DateTime of the outage';
2202
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."REPEAT" IS '0:Once, 1:Daily, 7:Weekly';
2203
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."INDEFINITE_PAUSE" IS 'Non Null indicates indefinite pause';
6031 dpurdie 2204
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" TO "RM_READONLY";
2205
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" TO "MS_READONLY";
6999 dpurdie 2206
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" TO "DM_READONLY";
2207
--------------------------------------------------------
2208
--  DDL for Table SDK_CONTENT
2209
--------------------------------------------------------
5172 dpurdie 2210
 
2211
  CREATE TABLE "RELEASE_MANAGER"."SDK_CONTENT" 
2212
   (	"SDKTAG_ID" NUMBER, 
2213
	"PV_ID" NUMBER, 
2214
	"SDKPKG_STATE" CHAR(1 BYTE) DEFAULT '-'
2215
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2216
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2217
 NOCOMPRESS LOGGING
5172 dpurdie 2218
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2219
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2220
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2221
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2222
 
2223
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."SDKTAG_ID" IS 'Ref to SDK TAG';
2224
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."PV_ID" IS 'Ref to Package Versions';
6999 dpurdie 2225
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."SDKPKG_STATE" IS 'Package State: -:Not exposed, E:Exposed';
2226
--------------------------------------------------------
2227
--  DDL for Table SDK_NAMES
2228
--------------------------------------------------------
5172 dpurdie 2229
 
2230
  CREATE TABLE "RELEASE_MANAGER"."SDK_NAMES" 
2231
   (	"SDK_ID" NUMBER, 
2232
	"SDK_NAME" VARCHAR2(50 BYTE), 
2233
	"SDK_COMMENT" VARCHAR2(4000 BYTE), 
2234
	"VIEW_ID" NUMBER, 
2235
	"PROJ_ID" NUMBER
2236
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2237
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2238
 NOCOMPRESS LOGGING
5172 dpurdie 2239
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2240
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2241
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2242
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2243
 
2244
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_ID" IS 'Auto Created when row is created';
2245
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_NAME" IS 'Name of the SDK';
2246
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_COMMENT" IS 'User comment';
2247
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."VIEW_ID" IS 'Base View for display';
6999 dpurdie 2248
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."PROJ_ID" IS 'Project ID for Security context';
2249
--------------------------------------------------------
2250
--  DDL for Table SDK_TAGS
2251
--------------------------------------------------------
5172 dpurdie 2252
 
2253
  CREATE TABLE "RELEASE_MANAGER"."SDK_TAGS" 
2254
   (	"SDKTAG_ID" NUMBER, 
2255
	"SDKTAG_NAME" VARCHAR2(50 BYTE), 
2256
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
2257
	"SDK_ID" NUMBER, 
2258
	"RTAG_ID" NUMBER, 
2259
	"CREATED_STAMP" TIMESTAMP (6) DEFAULT SYSTIMESTAMP, 
2260
	"CREATOR_ID" NUMBER, 
2261
	"STATE_STAMP" TIMESTAMP (6) DEFAULT SYSTIMESTAMP, 
2262
	"STATE_ID" NUMBER, 
2263
	"SDK_STATE" CHAR(1 BYTE) DEFAULT 'U'
2264
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2265
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2266
 NOCOMPRESS LOGGING
5172 dpurdie 2267
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2268
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2269
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2270
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2271
 
2272
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDKTAG_ID" IS 'Unique ID. Created automatically';
2273
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDKTAG_NAME" IS 'Name of the SDK Version';
2274
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."DESCRIPTION" IS 'General description';
2275
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDK_ID" IS 'Parent SDK';
2276
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."RTAG_ID" IS 'Release within which this SDK is maintained';
2277
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."CREATED_STAMP" IS 'When created';
2278
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."CREATOR_ID" IS 'Who Created the version';
2279
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."STATE_STAMP" IS 'Time of last change to this version';
2280
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."STATE_ID" IS 'User id who made the last state change';
6999 dpurdie 2281
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDK_STATE" IS 'State: U-Under Development; R-Released; D-Deprecated';
4040 dpurdie 2282
--------------------------------------------------------
6999 dpurdie 2283
--  DDL for Table TEMP_ENV_DEPS
2284
--------------------------------------------------------
5384 dpurdie 2285
 
2286
  CREATE TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" 
2287
   (	"SESSION_NUM" NUMBER, 
2288
	"PV_ID" NUMBER, 
2289
	"PKG_ID" NUMBER, 
2290
	"V_EXT" VARCHAR2(50 BYTE), 
2291
	"DPV_ID" NUMBER, 
2292
	"DPKG_ID" NUMBER, 
2293
	"DV_EXT" VARCHAR2(50 BYTE)
2294
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2295
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2296
 NOCOMPRESS LOGGING
5384 dpurdie 2297
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2298
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2299
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2300
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5384 dpurdie 2301
 
2302
   COMMENT ON TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS"  IS 'This table is used in the creation of the package_state information
2303
Data in the table is temporary. It should be cleared out after its been used.
2304
Data will only be used for a few seconds.
2305
 
6999 dpurdie 2306
The table is used to map DPV_IDs to PV_IDs, but only for DPV_IDs that are of interest';
2307
--------------------------------------------------------
4040 dpurdie 2308
--  DDL for Table TEMP_ENV_STATES
2309
--------------------------------------------------------
2310
 
5172 dpurdie 2311
  CREATE TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" 
4040 dpurdie 2312
   (	"SESSION_NUM" NUMBER, 
2313
	"LEVEL_NUM" NUMBER, 
2314
	"PV_ID" NUMBER, 
2315
	"PKG_ID" NUMBER, 
5172 dpurdie 2316
	"V_EXT" VARCHAR2(50 BYTE), 
6031 dpurdie 2317
	"TES_STATE" NUMBER, 
2318
	"BUILD_TYPE" CHAR(1 BYTE)
5172 dpurdie 2319
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2320
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2321
 NOCOMPRESS LOGGING
5172 dpurdie 2322
  STORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2323
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2324
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2325
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2326
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "RM_READONLY";
2327
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "MS_READONLY";
5892 dpurdie 2328
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "DM_READONLY";
6999 dpurdie 2329
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2330
--------------------------------------------------------
2331
--  DDL for Table TEMP_SASH
2332
--------------------------------------------------------
2333
 
5172 dpurdie 2334
  CREATE TABLE "RELEASE_MANAGER"."TEMP_SASH" 
4040 dpurdie 2335
   (	"RTAG_ID" NUMBER, 
2336
	"PROJ_ID" NUMBER
5172 dpurdie 2337
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2338
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2339
 NOCOMPRESS LOGGING
5172 dpurdie 2340
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2341
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2342
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2343
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2344
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "RM_READONLY";
2345
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "MS_READONLY";
5892 dpurdie 2346
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "DM_READONLY";
6999 dpurdie 2347
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2348
--------------------------------------------------------
2349
--  DDL for Table TEMP_TREE_BROWSE
2350
--------------------------------------------------------
2351
 
5172 dpurdie 2352
  CREATE TABLE "RELEASE_MANAGER"."TEMP_TREE_BROWSE" 
4040 dpurdie 2353
   (	"SESSION_NUM" NUMBER, 
2354
	"LEVEL_NUM" NUMBER, 
2355
	"PV_ID" NUMBER, 
2356
	"PKG_ID" NUMBER, 
5172 dpurdie 2357
	"V_EXT" VARCHAR2(50 BYTE), 
4040 dpurdie 2358
	"DIRECTION" NUMBER
5172 dpurdie 2359
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2360
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2361
 NOCOMPRESS LOGGING
5172 dpurdie 2362
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2363
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2364
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2365
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2366
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "RM_READONLY";
2367
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "MS_READONLY";
5892 dpurdie 2368
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "DM_READONLY";
6999 dpurdie 2369
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "RELEASE_MANAGER_READ";
2370
--------------------------------------------------------
2371
--  DDL for Table TEST_RUN
2372
--------------------------------------------------------
5172 dpurdie 2373
 
2374
  CREATE TABLE "RELEASE_MANAGER"."TEST_RUN" 
6031 dpurdie 2375
   (	"TESTRUN_ID" NUMBER, 
2376
	"BUILD_ID" NUMBER, 
5172 dpurdie 2377
	"PLATFORM" VARCHAR2(50 BYTE), 
2378
	"TYPE" VARCHAR2(1 BYTE), 
5384 dpurdie 2379
	"TEST_NAME" VARCHAR2(200 BYTE), 
5172 dpurdie 2380
	"TEST_OUTCOME" VARCHAR2(20 BYTE), 
2381
	"TIME_TAKEN" NUMBER, 
6031 dpurdie 2382
	"FAIL_MESSAGE" CLOB
5172 dpurdie 2383
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2384
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2385
 NOCOMPRESS LOGGING
5172 dpurdie 2386
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2387
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2388
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2389
  TABLESPACE "RELEASE_MANAGER_DATA" 
5172 dpurdie 2390
 LOB ("FAIL_MESSAGE") STORE AS BASICFILE (
6031 dpurdie 2391
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 2392
  NOCACHE LOGGING 
2393
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2394
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
6999 dpurdie 2395
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
5172 dpurdie 2396
 
6031 dpurdie 2397
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TESTRUN_ID" IS 'Unique Id. Used to generate a primary key.';
5172 dpurdie 2398
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."PLATFORM" IS 'Target Platform';
2399
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TYPE" IS 'P or D';
2400
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TEST_OUTCOME" IS 'PASS/FAIL/SKIP';
2401
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TIME_TAKEN" IS 'Test Duration in milliseconds';
6999 dpurdie 2402
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."FAIL_MESSAGE" IS 'Failure Message';
4040 dpurdie 2403
--------------------------------------------------------
2404
--  DDL for Table TEST_TYPES
2405
--------------------------------------------------------
2406
 
5172 dpurdie 2407
  CREATE TABLE "RELEASE_MANAGER"."TEST_TYPES" 
4040 dpurdie 2408
   (	"TEST_TYPE_ID" NUMBER, 
5172 dpurdie 2409
	"TEST_TYPE_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 2410
	"DISPLAY_ORDER" NUMBER
5172 dpurdie 2411
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2412
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2413
 NOCOMPRESS LOGGING
5172 dpurdie 2414
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2415
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2416
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2417
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2418
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "RM_READONLY";
2419
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "MS_READONLY";
5892 dpurdie 2420
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "DM_READONLY";
2421
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "RELEASE_MANAGER_READ";
6999 dpurdie 2422
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 2423
--------------------------------------------------------
2424
--  DDL for Table UNIT_TESTS
2425
--------------------------------------------------------
2426
 
5172 dpurdie 2427
  CREATE TABLE "RELEASE_MANAGER"."UNIT_TESTS" 
4040 dpurdie 2428
   (	"TEST_ID" NUMBER, 
2429
	"PV_ID" NUMBER, 
2430
	"TEST_TYPES_FK" NUMBER, 
5172 dpurdie 2431
	"TEST_SUMMARY" VARCHAR2(4000 BYTE), 
4040 dpurdie 2432
	"COMPLETION_DATE" DATE, 
2433
	"COMPLETED_BY" NUMBER, 
5172 dpurdie 2434
	"RESULTS_URL" VARCHAR2(2000 BYTE), 
2435
	"RESULTS_ATTACHMENT_NAME" VARCHAR2(2000 BYTE), 
2436
	"TEST_ACCEPTED" CHAR(1 BYTE), 
4040 dpurdie 2437
	"ACCEPTANCE_DATE" DATE, 
2438
	"ACCEPTED_BY" NUMBER, 
5172 dpurdie 2439
	"REVIEW_COMMENTS" VARCHAR2(4000 BYTE), 
2440
	"NUMOF_TEST" VARCHAR2(50 BYTE)
2441
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2442
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2443
 NOCOMPRESS LOGGING
5172 dpurdie 2444
  STORAGE(INITIAL 31457280 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2445
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2446
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2447
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2448
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "RM_READONLY";
2449
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "MS_READONLY";
5892 dpurdie 2450
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "DM_READONLY";
2451
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "RELEASE_MANAGER_READ";
6999 dpurdie 2452
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 2453
--------------------------------------------------------
6031 dpurdie 2454
--  DDL for Table VALIDATION_RULES_DELETE_ME
4040 dpurdie 2455
--------------------------------------------------------
2456
 
6031 dpurdie 2457
  CREATE TABLE "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" 
5172 dpurdie 2458
   (	"FIELD_NAME" VARCHAR2(1000 BYTE), 
2459
	"IS_REQUIRED" CHAR(1 BYTE), 
2460
	"IS_NUMERIC" CHAR(1 BYTE), 
4040 dpurdie 2461
	"MIN_NUMERIC_VALUE" NUMBER, 
2462
	"MAX_NUMERIC_VALUE" NUMBER, 
5172 dpurdie 2463
	"IS_DATE" CHAR(1 BYTE), 
4040 dpurdie 2464
	"START_DATE" DATE, 
2465
	"END_DATE" DATE, 
2466
	"MIN_STRING_LENGTH" NUMBER, 
2467
	"MAX_STRING_LENGTH" NUMBER, 
5172 dpurdie 2468
	"REGEXP" VARCHAR2(4000 BYTE), 
2469
	"REGEXP_DESCRIPTION" VARCHAR2(50 BYTE)
2470
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2471
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2472
 NOCOMPRESS LOGGING
5172 dpurdie 2473
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2474
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2475
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2476
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2477
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "RM_READONLY";
2478
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "MS_READONLY";
2479
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "DM_READONLY";
6999 dpurdie 2480
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2481
--------------------------------------------------------
2482
--  DDL for Table VCS_TYPE
2483
--------------------------------------------------------
2484
 
5172 dpurdie 2485
  CREATE TABLE "RELEASE_MANAGER"."VCS_TYPE" 
4040 dpurdie 2486
   (	"VCS_TYPE_ID" NUMBER, 
5172 dpurdie 2487
	"NAME" VARCHAR2(128 BYTE), 
2488
	"TAG" VARCHAR2(32 BYTE)
2489
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2490
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2491
 NOCOMPRESS LOGGING
5172 dpurdie 2492
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2493
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2494
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2495
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2496
  GRANT SELECT ON "RELEASE_MANAGER"."VCS_TYPE" TO "RM_READONLY";
2497
  GRANT SELECT ON "RELEASE_MANAGER"."VCS_TYPE" TO "MS_READONLY";
6999 dpurdie 2498
  GRANT SELECT ON "RELEASE_MANAGER"."VCS_TYPE" TO "DM_READONLY";
4040 dpurdie 2499
--------------------------------------------------------
2500
--  DDL for Table VIEWS
2501
--------------------------------------------------------
2502
 
5172 dpurdie 2503
  CREATE TABLE "RELEASE_MANAGER"."VIEWS" 
4040 dpurdie 2504
   (	"VIEW_ID" NUMBER, 
5172 dpurdie 2505
	"VIEW_NAME" VARCHAR2(30 BYTE), 
4040 dpurdie 2506
	"OWNER_ID" NUMBER, 
5172 dpurdie 2507
	"BASE_VIEW" CHAR(1 BYTE), 
2508
	"PUBLIC_READ" CHAR(1 BYTE)
2509
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2510
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2511
 NOCOMPRESS LOGGING
5172 dpurdie 2512
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2513
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2514
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2515
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2516
 
2517
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEWS"."OWNER_ID" IS '0:Public';
2518
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEWS"."BASE_VIEW" IS 'Y:Base View';
6031 dpurdie 2519
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "RM_READONLY";
2520
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "MS_READONLY";
5892 dpurdie 2521
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "DM_READONLY";
6999 dpurdie 2522
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2523
--------------------------------------------------------
2524
--  DDL for Table VIEW_DEF
2525
--------------------------------------------------------
2526
 
5172 dpurdie 2527
  CREATE TABLE "RELEASE_MANAGER"."VIEW_DEF" 
4040 dpurdie 2528
   (	"VIEW_ID" NUMBER, 
2529
	"PKG_ID" NUMBER
5172 dpurdie 2530
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2531
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2532
 NOCOMPRESS LOGGING
5172 dpurdie 2533
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2534
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2535
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2536
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2537
 
2538
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEW_DEF"."VIEW_ID" IS 'Non Base View ID';
2539
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEW_DEF"."PKG_ID" IS 'Package ID';
2540
   COMMENT ON TABLE "RELEASE_MANAGER"."VIEW_DEF"  IS 'Packages in a non-baseview';
6031 dpurdie 2541
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "RM_READONLY";
2542
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "MS_READONLY";
5892 dpurdie 2543
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "DM_READONLY";
6999 dpurdie 2544
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2545
--------------------------------------------------------
2546
--  DDL for Table VIEW_SETTINGS
2547
--------------------------------------------------------
2548
 
5172 dpurdie 2549
  CREATE TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" 
4040 dpurdie 2550
   (	"USER_ID" NUMBER, 
2551
	"VIEW_ID" NUMBER
5172 dpurdie 2552
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2553
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2554
 NOCOMPRESS LOGGING
5172 dpurdie 2555
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2556
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2557
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2558
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2559
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "RM_READONLY";
2560
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "MS_READONLY";
5892 dpurdie 2561
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "DM_READONLY";
6999 dpurdie 2562
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2563
--------------------------------------------------------
2564
--  DDL for Table VTREES
2565
--------------------------------------------------------
2566
 
5172 dpurdie 2567
  CREATE TABLE "RELEASE_MANAGER"."VTREES" 
4040 dpurdie 2568
   (	"VTREE_ID" NUMBER, 
2569
	"PROJ_ID" NUMBER, 
5172 dpurdie 2570
	"VTREE_NAME" VARCHAR2(50 BYTE), 
2571
	"HIDE" CHAR(1 BYTE)
2572
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2573
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2574
 NOCOMPRESS LOGGING
5172 dpurdie 2575
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2576
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2577
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2578
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2579
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "RM_READONLY";
2580
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "MS_READONLY";
5892 dpurdie 2581
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "DM_READONLY";
2582
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "RELEASE_MANAGER_READ";
6999 dpurdie 2583
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 2584
--------------------------------------------------------
2585
--  DDL for Table VTREES_WORLD
2586
--------------------------------------------------------
2587
 
5172 dpurdie 2588
  CREATE TABLE "RELEASE_MANAGER"."VTREES_WORLD" 
4040 dpurdie 2589
   (	"WORLD_ID" NUMBER, 
2590
	"VTREE_ID" NUMBER
5172 dpurdie 2591
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2592
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2593
 NOCOMPRESS LOGGING
5172 dpurdie 2594
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2595
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2596
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2597
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2598
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "RM_READONLY";
2599
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "MS_READONLY";
5892 dpurdie 2600
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "DM_READONLY";
2601
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "RELEASE_MANAGER_READ";
6999 dpurdie 2602
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 2603
--------------------------------------------------------
2604
--  DDL for Table WORK_IN_PROGRESS
2605
--------------------------------------------------------
2606
 
5172 dpurdie 2607
  CREATE TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" 
4040 dpurdie 2608
   (	"RTAG_ID" NUMBER, 
2609
	"PV_ID" NUMBER, 
2610
	"VIEW_ID" NUMBER
5172 dpurdie 2611
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2612
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2613
 NOCOMPRESS LOGGING
5172 dpurdie 2614
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2615
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2616
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2617
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2618
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "RM_READONLY";
2619
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "MS_READONLY";
5892 dpurdie 2620
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "DM_READONLY";
6999 dpurdie 2621
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2622
--------------------------------------------------------
2623
--  DDL for Table WORLDS
2624
--------------------------------------------------------
2625
 
5172 dpurdie 2626
  CREATE TABLE "RELEASE_MANAGER"."WORLDS" 
4040 dpurdie 2627
   (	"WORLD_ID" NUMBER, 
5172 dpurdie 2628
	"WORLD_NAME" VARCHAR2(30 BYTE), 
2629
	"WORLD_DESC" VARCHAR2(255 BYTE)
2630
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2631
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2632
 NOCOMPRESS LOGGING
5172 dpurdie 2633
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2634
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2635
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2636
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2637
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "RM_READONLY";
2638
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "MS_READONLY";
5892 dpurdie 2639
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "DM_READONLY";
6999 dpurdie 2640
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2641
--------------------------------------------------------
2642
--  DDL for View ENVIRONMENT_VIEW
2643
--------------------------------------------------------
2644
 
5172 dpurdie 2645
  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 2646
  SELECT 2 AS ENV_AREA,
2647
    rc.PV_ID,
2648
    rc.RTAG_ID,
2649
    rc.BASE_VIEW_ID AS VIEW_ID,
2650
    rc.PKG_STATE,
2651
 rc.DEPRECATED_STATE,
2652
    rc.INSERTOR_ID,
2653
    rc.INSERT_STAMP,
2654
    ' ' AS OPERATION
2655
  FROM RELEASE_CONTENT rc
2656
UNION
2657
SELECT 0 AS ENV_AREA,
2658
    wip.PV_ID,
2659
    wip.RTAG_ID,
2660
    wip.VIEW_ID,
2661
    NULL AS PKG_STATE,
2662
 NULL AS DEPRECATED_STATE,
2663
    NULL AS INSERTOR_ID,
2664
    NULL AS INSERT_STAMP,
2665
    ' ' AS OPERATION
2666
  FROM WORK_IN_PROGRESS wip
2667
UNION
2668
SELECT 1 AS ENV_AREA,
2669
    pl.PV_ID,
2670
    pl.RTAG_ID,
2671
    pl.VIEW_ID,
2672
    NULL AS PKG_STATE,
2673
 NULL AS DEPRECATED_STATE,
2674
    NULL AS INSERTOR_ID,
2675
    NULL AS INSERT_STAMP,
2676
    pl.operation
6999 dpurdie 2677
FROM PLANNED pl
2678
;
6031 dpurdie 2679
  GRANT SELECT ON "RELEASE_MANAGER"."ENVIRONMENT_VIEW" TO "RM_READONLY";
5892 dpurdie 2680
  GRANT SELECT ON "RELEASE_MANAGER"."ENVIRONMENT_VIEW" TO "MS_READONLY";
6999 dpurdie 2681
  GRANT SELECT ON "RELEASE_MANAGER"."ENVIRONMENT_VIEW" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2682
--------------------------------------------------------
2683
--  DDL for View RM_PKG_ISSUES_ID
2684
--------------------------------------------------------
2685
 
5172 dpurdie 2686
  CREATE OR REPLACE FORCE VIEW "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" ("ISS_ID", "PKG_VERSION") AS 
4040 dpurdie 2687
  SELECT DISTINCT ISS_ID, PKG_VERSION FROM RM_PACKAGE_ISSUES WHERE ISS_ID IS NOT NULL
2688
 
6999 dpurdie 2689
 
4040 dpurdie 2690
;
6031 dpurdie 2691
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" TO "RM_READONLY";
5892 dpurdie 2692
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" TO "MS_READONLY";
6999 dpurdie 2693
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2694
--------------------------------------------------------
4211 dpurdie 2695
--  DDL for Index PK_LICENCES
4040 dpurdie 2696
--------------------------------------------------------
2697
 
5172 dpurdie 2698
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_LICENCES" ON "RELEASE_MANAGER"."LICENCES" ("LICENCE") 
2699
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2700
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2701
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2702
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2703
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2704
--------------------------------------------------------
4211 dpurdie 2705
--  DDL for Index UNQ_PKG_BUILD_ENV
4040 dpurdie 2706
--------------------------------------------------------
2707
 
5172 dpurdie 2708
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PKG_BUILD_ENV" ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ("PV_ID", "BE_ID") 
2709
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2710
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2711
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2712
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2713
  TABLESPACE "RELEASE_MANAGER_INDX" ;
2714
--------------------------------------------------------
2715
--  DDL for Index SDK_NAMES_UK1
2716
--------------------------------------------------------
5172 dpurdie 2717
 
2718
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_NAMES_UK1" ON "RELEASE_MANAGER"."SDK_NAMES" ("SDK_NAME") 
2719
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2720
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2721
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2722
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2723
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2724
--------------------------------------------------------
4211 dpurdie 2725
--  DDL for Index UNQ_PACKAGES
4040 dpurdie 2726
--------------------------------------------------------
2727
 
6999 dpurdie 2728
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGES" ON "RELEASE_MANAGER"."PACKAGES" ("PKG_NAME", "PKG_ID") 
5172 dpurdie 2729
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2730
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2731
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2732
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2733
  TABLESPACE "RELEASE_MANAGER_INDX" ;
2734
--------------------------------------------------------
2735
--  DDL for Index INX_PACKAGES_ALIAS
2736
--------------------------------------------------------
5172 dpurdie 2737
 
6999 dpurdie 2738
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_ALIAS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID", "V_EXT") 
5172 dpurdie 2739
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2740
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2741
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2742
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2743
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2744
--------------------------------------------------------
2745
--  DDL for Index CODE_REVIEW_URL_PK
2746
--------------------------------------------------------
2747
 
5172 dpurdie 2748
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CODE_REVIEW_URL_PK" ON "RELEASE_MANAGER"."CODE_REVIEW_URL" ("CR_ID") 
2749
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2750
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2751
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2752
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2753
  TABLESPACE "RELEASE_MANAGER_INDX" ;
2754
--------------------------------------------------------
2755
--  DDL for Index SDK_NAMES_PK
2756
--------------------------------------------------------
5172 dpurdie 2757
 
2758
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_NAMES_PK" ON "RELEASE_MANAGER"."SDK_NAMES" ("SDK_ID") 
2759
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2760
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2761
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2762
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2763
  TABLESPACE "RELEASE_MANAGER_INDX" ;
2764
--------------------------------------------------------
2765
--  DDL for Index INX_ACTION_TIMESTAMP
2766
--------------------------------------------------------
5172 dpurdie 2767
 
2768
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_TIMESTAMP" ON "RELEASE_MANAGER"."ACTION_LOG" ("ACTION_TIMESTAMP") 
2769
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2770
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2771
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2772
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2773
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2774
--------------------------------------------------------
4211 dpurdie 2775
--  DDL for Index INX_UT_COMPLETED
4040 dpurdie 2776
--------------------------------------------------------
2777
 
5172 dpurdie 2778
  CREATE INDEX "RELEASE_MANAGER"."INX_UT_COMPLETED" ON "RELEASE_MANAGER"."UNIT_TESTS" ("COMPLETION_DATE", "COMPLETED_BY") 
2779
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2780
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2781
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2782
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2783
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2784
--------------------------------------------------------
6999 dpurdie 2785
--  DDL for Index BLAT_PROJECTS_INDEX1
2786
--------------------------------------------------------
2787
 
2788
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BLAT_PROJECTS_INDEX1" ON "RELEASE_MANAGER"."BLAT_PROJECTS" ("BLAT_ID", "PROJ_ID") 
2789
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2790
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2791
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2792
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2793
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2794
--------------------------------------------------------
4308 dpurdie 2795
--  DDL for Index INX_PV_ID_PKGDOC
2796
--------------------------------------------------------
4040 dpurdie 2797
 
5172 dpurdie 2798
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_ID_PKGDOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID") 
2799
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2800
  STORAGE(INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2801
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2802
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2803
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2804
--------------------------------------------------------
2805
--  DDL for Index UNQ_VIEW_SETTINGS
2806
--------------------------------------------------------
4040 dpurdie 2807
 
5172 dpurdie 2808
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEW_SETTINGS" ON "RELEASE_MANAGER"."VIEW_SETTINGS" ("USER_ID", "VIEW_ID") 
2809
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2810
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2811
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2812
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2813
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2814
--------------------------------------------------------
2815
--  DDL for Index INX_PP_PV_ID
2816
--------------------------------------------------------
4040 dpurdie 2817
 
5172 dpurdie 2818
  CREATE INDEX "RELEASE_MANAGER"."INX_PP_PV_ID" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PV_ID") 
2819
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2820
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2821
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2822
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2823
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2824
--------------------------------------------------------
2825
--  DDL for Index PK_VIEWS
2826
--------------------------------------------------------
4040 dpurdie 2827
 
5172 dpurdie 2828
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_VIEWS" ON "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") 
2829
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2830
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2831
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2832
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2833
  TABLESPACE "RELEASE_MANAGER_INDX" ;
2834
--------------------------------------------------------
2835
--  DDL for Index CQ_USERS_PK
2836
--------------------------------------------------------
5384 dpurdie 2837
 
2838
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_USERS_PK" ON "RELEASE_MANAGER"."CQ_USERS" ("DBID") 
2839
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2840
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2841
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2842
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2843
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2844
--------------------------------------------------------
2845
--  DDL for Index PK_PACKAGES
2846
--------------------------------------------------------
4040 dpurdie 2847
 
5172 dpurdie 2848
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PACKAGES" ON "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") 
2849
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2850
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2851
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2852
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2853
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2854
--------------------------------------------------------
2855
--  DDL for Index PK_TEST_TYPES
2856
--------------------------------------------------------
4040 dpurdie 2857
 
5172 dpurdie 2858
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_TEST_TYPES" ON "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_ID") 
2859
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2860
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2861
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2862
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2863
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2864
--------------------------------------------------------
2865
--  DDL for Index UNQ_ACTTYPE_ID
2866
--------------------------------------------------------
4040 dpurdie 2867
 
5172 dpurdie 2868
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_ACTTYPE_ID" ON "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") 
2869
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2870
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2871
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2872
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2873
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2874
--------------------------------------------------------
2875
--  DDL for Index INX_PROJ_ACTION_DATE_TIME
2876
--------------------------------------------------------
4040 dpurdie 2877
 
5172 dpurdie 2878
  CREATE INDEX "RELEASE_MANAGER"."INX_PROJ_ACTION_DATE_TIME" ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ("ACTION_DATETIME") 
2879
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2880
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2881
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2882
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2883
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2884
--------------------------------------------------------
2885
--  DDL for Index INX_RC_PKG_STATE
2886
--------------------------------------------------------
4040 dpurdie 2887
 
5172 dpurdie 2888
  CREATE INDEX "RELEASE_MANAGER"."INX_RC_PKG_STATE" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("PKG_STATE") 
2889
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2890
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2891
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2892
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2893
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2894
--------------------------------------------------------
6999 dpurdie 2895
--  DDL for Index BLAT_SERVERS_PK
2896
--------------------------------------------------------
2897
 
2898
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BLAT_SERVERS_PK" ON "RELEASE_MANAGER"."BLAT_SERVERS" ("BLAT_ID") 
2899
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2900
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2901
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2902
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2903
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2904
--------------------------------------------------------
4308 dpurdie 2905
--  DDL for Index PROCESSES_PK
2906
--------------------------------------------------------
4040 dpurdie 2907
 
5172 dpurdie 2908
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PROCESSES_PK" ON "RELEASE_MANAGER"."PROCESSES" ("PROC_ID") 
2909
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2910
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2911
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2912
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2913
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2914
--------------------------------------------------------
2915
--  DDL for Index INX_PACKAGE_DEPS_DPV_ID
2916
--------------------------------------------------------
4040 dpurdie 2917
 
5172 dpurdie 2918
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_DPV_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("DPV_ID") 
2919
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2920
  STORAGE(INITIAL 75497472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2921
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2922
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2923
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2924
--------------------------------------------------------
6999 dpurdie 2925
--  DDL for Index PACKAGE_VERSIONS_RNOTE
2926
--------------------------------------------------------
6031 dpurdie 2927
 
2928
  CREATE INDEX "RELEASE_MANAGER"."PACKAGE_VERSIONS_RNOTE" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("RELEASE_NOTES_INFO") 
2929
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2930
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2931
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2932
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2933
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2934
--------------------------------------------------------
4308 dpurdie 2935
--  DDL for Index INX_PACKAGES_PKG_VERSION
2936
--------------------------------------------------------
4040 dpurdie 2937
 
5172 dpurdie 2938
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_PKG_VERSION" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_VERSION") 
2939
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2940
  STORAGE(INITIAL 10485760 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2941
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2942
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2943
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2944
--------------------------------------------------------
2945
--  DDL for Index UNQ_PACKAGE_METRICS
2946
--------------------------------------------------------
4040 dpurdie 2947
 
5172 dpurdie 2948
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_METRICS" ON "RELEASE_MANAGER"."PACKAGE_METRICS" ("PV_ID") 
2949
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2950
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2951
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2952
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2953
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2954
--------------------------------------------------------
2955
--  DDL for Index UNQ_PLATFORM
2956
--------------------------------------------------------
4040 dpurdie 2957
 
5172 dpurdie 2958
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PLATFORM" ON "RELEASE_MANAGER"."PLATFORMS" ("NAME") 
2959
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2960
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2961
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2962
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2963
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2964
--------------------------------------------------------
2965
--  DDL for Index UNQ_VIEWS
2966
--------------------------------------------------------
4040 dpurdie 2967
 
5172 dpurdie 2968
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEWS" ON "RELEASE_MANAGER"."VIEWS" ("VIEW_NAME", "OWNER_ID") 
2969
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2970
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2971
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2972
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2973
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2974
--------------------------------------------------------
4211 dpurdie 2975
--  DDL for Index PRODUCT_STATES_PK
4040 dpurdie 2976
--------------------------------------------------------
2977
 
5172 dpurdie 2978
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PRODUCT_STATES_PK" ON "RELEASE_MANAGER"."PRODUCT_STATES" ("STATE_ID") 
2979
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2980
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2981
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2982
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2983
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2984
--------------------------------------------------------
4211 dpurdie 2985
--  DDL for Index PK_MESSAGE_BOARD
4040 dpurdie 2986
--------------------------------------------------------
2987
 
5172 dpurdie 2988
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_MESSAGE_BOARD" ON "RELEASE_MANAGER"."MESSAGE_BOARD" ("MSG_ID") 
2989
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2990
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2991
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2992
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2993
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2994
--------------------------------------------------------
2995
--  DDL for Index PK_BUILD_MACHINE_CONFIG
2996
--------------------------------------------------------
4040 dpurdie 2997
 
5172 dpurdie 2998
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_BUILD_MACHINE_CONFIG" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ("BMCON_ID") 
2999
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3000
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3001
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3002
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3003
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3004
--------------------------------------------------------
3005
--  DDL for Index INX_MSGBOARD
3006
--------------------------------------------------------
4040 dpurdie 3007
 
5172 dpurdie 3008
  CREATE INDEX "RELEASE_MANAGER"."INX_MSGBOARD" ON "RELEASE_MANAGER"."MESSAGE_BOARD" ("EXPIRY_DATE", "DUE_DATE") 
3009
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3010
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3011
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3012
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3013
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3014
--------------------------------------------------------
3015
--  DDL for Index PK_VTREES
3016
--------------------------------------------------------
4040 dpurdie 3017
 
5172 dpurdie 3018
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_VTREES" ON "RELEASE_MANAGER"."VTREES" ("VTREE_ID") 
3019
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3020
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3021
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3022
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3023
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3024
--------------------------------------------------------
3025
--  DDL for Index UNQ_UT_PART1
3026
--------------------------------------------------------
4040 dpurdie 3027
 
5172 dpurdie 3028
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_UT_PART1" ON "RELEASE_MANAGER"."UNIT_TESTS" ("PV_ID", "TEST_ID") 
3029
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3030
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3031
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3032
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3033
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3034
--------------------------------------------------------
3035
--  DDL for Index UNQ_BUILD_ENV
3036
--------------------------------------------------------
4040 dpurdie 3037
 
5172 dpurdie 3038
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ENV" ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_NAME") 
3039
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3040
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3041
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3042
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3043
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3044
--------------------------------------------------------
6999 dpurdie 3045
--  DDL for Index PK_RUN_LEVEL
3046
--------------------------------------------------------
6031 dpurdie 3047
 
3048
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_RUN_LEVEL" ON "RELEASE_MANAGER"."RUN_LEVEL" ("RCON_ID") 
3049
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3050
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3051
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3052
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3053
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3054
--------------------------------------------------------
4211 dpurdie 3055
--  DDL for Index INX_ACTION_DATE_TIME
4040 dpurdie 3056
--------------------------------------------------------
3057
 
5172 dpurdie 3058
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_DATE_TIME" ON "RELEASE_MANAGER"."ACTION_LOG" ("ACTION_DATETIME") 
3059
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3060
  STORAGE(INITIAL 92274688 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3061
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3062
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3063
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3064
--------------------------------------------------------
4308 dpurdie 3065
--  DDL for Index UNQ_BUILD_MACHINE_CONFIG02
3066
--------------------------------------------------------
4040 dpurdie 3067
 
5172 dpurdie 3068
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_MACHINE_CONFIG02" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ("MACHINE_HOSTNAME") 
3069
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3070
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3071
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3072
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3073
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3074
--------------------------------------------------------
6999 dpurdie 3075
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX6
3076
--------------------------------------------------------
5384 dpurdie 3077
 
3078
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX6" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("NEW_NUM") 
3079
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3080
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3081
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3082
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3083
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3084
--------------------------------------------------------
4308 dpurdie 3085
--  DDL for Index BUILD_MACHINES_PK
3086
--------------------------------------------------------
4040 dpurdie 3087
 
5172 dpurdie 3088
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_MACHINES_PK" ON "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") 
3089
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3090
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3091
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3092
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3093
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3094
--------------------------------------------------------
3095
--  DDL for Index INX_TTB_SESSION
3096
--------------------------------------------------------
4040 dpurdie 3097
 
5172 dpurdie 3098
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_SESSION" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("SESSION_NUM") 
3099
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3100
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3101
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3102
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3103
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3104
--------------------------------------------------------
3105
--  DDL for Index UNQ_RTD
3106
--------------------------------------------------------
4040 dpurdie 3107
 
5172 dpurdie 3108
  CREATE INDEX "RELEASE_MANAGER"."UNQ_RTD" ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ("PV_ID", "RTD_ID") 
3109
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3110
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3111
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3112
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3113
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3114
--------------------------------------------------------
3115
--  DDL for Index BUILD_PLAN_PK
3116
--------------------------------------------------------
5892 dpurdie 3117
 
3118
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_PLAN_PK" ON "RELEASE_MANAGER"."BUILD_PLAN" ("RTAG_ID", "BUILD_ORDER", "PV_ID") 
3119
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3120
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3121
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3122
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3123
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3124
--------------------------------------------------------
3125
--  DDL for Index SDK_CONTENT_INDEX1
3126
--------------------------------------------------------
5172 dpurdie 3127
 
3128
  CREATE INDEX "RELEASE_MANAGER"."SDK_CONTENT_INDEX1" ON "RELEASE_MANAGER"."SDK_CONTENT" ("SDKTAG_ID") 
3129
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3130
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3131
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3132
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3133
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3134
--------------------------------------------------------
3135
--  DDL for Index CQ_STATEDEF_PK
3136
--------------------------------------------------------
5384 dpurdie 3137
 
3138
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_STATEDEF_PK" ON "RELEASE_MANAGER"."CQ_STATEDEF" ("ID") 
3139
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3140
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3141
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3142
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3143
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3144
--------------------------------------------------------
4211 dpurdie 3145
--  DDL for Index INX_RL_RTAG_ID
4040 dpurdie 3146
--------------------------------------------------------
3147
 
5172 dpurdie 3148
  CREATE INDEX "RELEASE_MANAGER"."INX_RL_RTAG_ID" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("RTAG_ID") 
3149
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3150
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3151
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3152
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3153
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3154
--------------------------------------------------------
4211 dpurdie 3155
--  DDL for Index UNQ_VIEW_DEF
4040 dpurdie 3156
--------------------------------------------------------
3157
 
5172 dpurdie 3158
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEW_DEF" ON "RELEASE_MANAGER"."VIEW_DEF" ("VIEW_ID", "PKG_ID") 
3159
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3160
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3161
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3162
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3163
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3164
--------------------------------------------------------
4211 dpurdie 3165
--  DDL for Index INX_PACKAGES_PKG_NAME
4040 dpurdie 3166
--------------------------------------------------------
3167
 
5172 dpurdie 3168
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_PKG_NAME" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID") 
3169
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3170
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3171
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3172
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3173
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3174
--------------------------------------------------------
4211 dpurdie 3175
--  DDL for Index INX_PCOMP_FK_PV_ID
4040 dpurdie 3176
--------------------------------------------------------
3177
 
5172 dpurdie 3178
  CREATE INDEX "RELEASE_MANAGER"."INX_PCOMP_FK_PV_ID" ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" ("PV_ID") 
3179
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3180
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3181
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3182
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3183
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3184
--------------------------------------------------------
4211 dpurdie 3185
--  DDL for Index DAEMON_INSTRUCTIONS_UK1
4040 dpurdie 3186
--------------------------------------------------------
3187
 
5172 dpurdie 3188
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS_UK1" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("OP_CODE", "RTAG_ID", "PV_ID") 
3189
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3190
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3191
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3192
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3193
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3194
--------------------------------------------------------
4211 dpurdie 3195
--  DDL for Index INX_FILE_NAME
4040 dpurdie 3196
--------------------------------------------------------
3197
 
5172 dpurdie 3198
  CREATE INDEX "RELEASE_MANAGER"."INX_FILE_NAME" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" (UPPER("FILE_NAME")) 
3199
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3200
  STORAGE(INITIAL 1147142144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3201
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3202
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3203
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3204
--------------------------------------------------------
4211 dpurdie 3205
--  DDL for Index INX_IS_PATCH_IGNORE
4040 dpurdie 3206
--------------------------------------------------------
3207
 
5172 dpurdie 3208
  CREATE INDEX "RELEASE_MANAGER"."INX_IS_PATCH_IGNORE" ON "RELEASE_MANAGER"."IGNORE_WARNINGS" ("IS_PATCH_IGNORE") 
3209
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3210
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3211
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3212
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3213
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3214
--------------------------------------------------------
6999 dpurdie 3215
--  DDL for Index PK_TEST_RUN
3216
--------------------------------------------------------
6031 dpurdie 3217
 
3218
  CREATE INDEX "RELEASE_MANAGER"."PK_TEST_RUN" ON "RELEASE_MANAGER"."TEST_RUN" ("TESTRUN_ID") 
3219
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3220
  STORAGE(INITIAL 109051904 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3221
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3222
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3223
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3224
--------------------------------------------------------
4211 dpurdie 3225
--  DDL for Index UNQ_BUILD_ENV_DOCS
4040 dpurdie 3226
--------------------------------------------------------
3227
 
5172 dpurdie 3228
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ENV_DOCS" ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" ("BE_ID", "DOC_NUM") 
3229
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3230
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3231
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3232
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3233
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3234
--------------------------------------------------------
4211 dpurdie 3235
--  DDL for Index INX_PROJ_ACTION_LOG_PROJ
4040 dpurdie 3236
--------------------------------------------------------
3237
 
5172 dpurdie 3238
  CREATE INDEX "RELEASE_MANAGER"."INX_PROJ_ACTION_LOG_PROJ" ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ("PROJ_ID") 
3239
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3240
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3241
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3242
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3243
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3244
--------------------------------------------------------
3245
--  DDL for Index LICENCING_PK
3246
--------------------------------------------------------
5384 dpurdie 3247
 
3248
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."LICENCING_PK" ON "RELEASE_MANAGER"."LICENCING" ("PV_ID", "LICENCE") 
3249
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3250
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3251
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3252
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3253
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3254
--------------------------------------------------------
3255
--  DDL for Index BUILD_SERVICE_CONFIG_INDEX1
3256
--------------------------------------------------------
5172 dpurdie 3257
 
3258
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG_INDEX1" ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" ("SERVICE") 
3259
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3260
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3261
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3262
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3263
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3264
--------------------------------------------------------
3265
--  DDL for Index RELEASE_MODIFIED_PK
3266
--------------------------------------------------------
5172 dpurdie 3267
 
3268
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."RELEASE_MODIFIED_PK" ON "RELEASE_MANAGER"."RELEASE_MODIFIED" ("RTAG_ID") 
3269
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3270
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3271
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3272
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3273
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3274
--------------------------------------------------------
3275
--  DDL for Index CQ_HISTORY_INDEX2
3276
--------------------------------------------------------
5384 dpurdie 3277
 
3278
  CREATE INDEX "RELEASE_MANAGER"."CQ_HISTORY_INDEX2" ON "RELEASE_MANAGER"."CQ_HISTORY" ("ENTITYDEF_ID") 
3279
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3280
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3281
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3282
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3283
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3284
--------------------------------------------------------
3285
--  DDL for Index INX_TTB_LEVEL_NUM
3286
--------------------------------------------------------
3287
 
5172 dpurdie 3288
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_LEVEL_NUM" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("LEVEL_NUM") 
3289
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3290
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3291
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3292
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3293
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3294
--------------------------------------------------------
6999 dpurdie 3295
--  DDL for Index BLAT_SERVERS_UK1
3296
--------------------------------------------------------
3297
 
3298
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BLAT_SERVERS_UK1" ON "RELEASE_MANAGER"."BLAT_SERVERS" ("BLAT_SERVER_NAME") 
3299
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3300
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3301
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3302
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3303
  TABLESPACE "RELEASE_MANAGER_DATA" ;
3304
--------------------------------------------------------
4211 dpurdie 3305
--  DDL for Index UNQ_WORK_IN_PROGRESS
4040 dpurdie 3306
--------------------------------------------------------
3307
 
5172 dpurdie 3308
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_WORK_IN_PROGRESS" ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" ("RTAG_ID", "PV_ID") 
3309
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3310
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3311
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3312
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3313
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3314
--------------------------------------------------------
4211 dpurdie 3315
--  DDL for Index INX_PACKAGES_V_NMM
4040 dpurdie 3316
--------------------------------------------------------
3317
 
6999 dpurdie 3318
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_NMM" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_NMM") 
5172 dpurdie 3319
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3320
  STORAGE(INITIAL 9437184 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3321
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3322
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3323
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3324
--------------------------------------------------------
6999 dpurdie 3325
--  DDL for Index TEST_RUN_IDX_BUILD_ID
3326
--------------------------------------------------------
6031 dpurdie 3327
 
3328
  CREATE INDEX "RELEASE_MANAGER"."TEST_RUN_IDX_BUILD_ID" ON "RELEASE_MANAGER"."TEST_RUN" ("BUILD_ID") 
3329
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3330
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3331
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3332
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3333
  TABLESPACE "RELEASE_MANAGER_DATA" ;
3334
--------------------------------------------------------
4211 dpurdie 3335
--  DDL for Index UNQ_PLANNED
4040 dpurdie 3336
--------------------------------------------------------
3337
 
5172 dpurdie 3338
  CREATE INDEX "RELEASE_MANAGER"."UNQ_PLANNED" ON "RELEASE_MANAGER"."PLANNED" ("RTAG_ID", "PV_ID") 
3339
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3340
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3341
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3342
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3343
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3344
--------------------------------------------------------
6999 dpurdie 3345
--  DDL for Index PV_BUILDINFO
3346
--------------------------------------------------------
3347
 
3348
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PV_BUILDINFO" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID", "PKG_VERSION", "MODIFIED_STAMP", "MODIFIER_ID", "DLOCKED", "BUILD_TIME", "BUILD_TYPE", "CREATED_STAMP") 
3349
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3350
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3351
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3352
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3353
  TABLESPACE "RELEASE_MANAGER_DATA" ;
3354
--------------------------------------------------------
4211 dpurdie 3355
--  DDL for Index INX_TES_PKGEXT
4040 dpurdie 3356
--------------------------------------------------------
3357
 
5172 dpurdie 3358
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_PKGEXT" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("PKG_ID", "V_EXT") 
3359
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3360
  STORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3361
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3362
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3363
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3364
--------------------------------------------------------
3365
--  DDL for Index UNQ_BUILD_MACHINE_CONFIG01
3366
--------------------------------------------------------
4040 dpurdie 3367
 
5172 dpurdie 3368
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_MACHINE_CONFIG01" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" (LOWER("DISPLAY_NAME")) 
3369
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3370
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3371
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3372
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3373
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3374
--------------------------------------------------------
6999 dpurdie 3375
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX2
3376
--------------------------------------------------------
5384 dpurdie 3377
 
3378
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX2" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("STATE") 
3379
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3380
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3381
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3382
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3383
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3384
--------------------------------------------------------
3385
--  DDL for Index TEMP_ENV_DEPS_PK
3386
--------------------------------------------------------
5384 dpurdie 3387
 
3388
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."TEMP_ENV_DEPS_PK" ON "RELEASE_MANAGER"."TEMP_ENV_DEPS" ("PV_ID", "SESSION_NUM", "DPV_ID") 
3389
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3390
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3391
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3392
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3393
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3394
--------------------------------------------------------
4211 dpurdie 3395
--  DDL for Index UNQ_RELEASE_LINKS
4040 dpurdie 3396
--------------------------------------------------------
3397
 
5172 dpurdie 3398
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_LINKS" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("RTAG_ID", "REF_RTAG_ID") 
3399
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3400
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3401
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3402
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3403
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3404
--------------------------------------------------------
3405
--  DDL for Index UNQ_PKG_DOC
3406
--------------------------------------------------------
4040 dpurdie 3407
 
5172 dpurdie 3408
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PKG_DOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID", "DOC_NUM") 
3409
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3410
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3411
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3412
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3413
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3414
--------------------------------------------------------
3415
--  DDL for Index LXR_STATE_PK
3416
--------------------------------------------------------
5384 dpurdie 3417
 
3418
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."LXR_STATE_PK" ON "RELEASE_MANAGER"."LXR_STATE" ("RTAG_ID") 
3419
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3420
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3421
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3422
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3423
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3424
--------------------------------------------------------
4211 dpurdie 3425
--  DDL for Index DAEMON_INSTRUCTIONS_PK
4040 dpurdie 3426
--------------------------------------------------------
3427
 
5172 dpurdie 3428
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS_PK" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("DAEMON_INSTRUCTIONS_ID") 
3429
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3430
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3431
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3432
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3433
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3434
--------------------------------------------------------
3435
--  DDL for Index INX_DAEMON_INST_SCHED_DATETIME
3436
--------------------------------------------------------
4040 dpurdie 3437
 
5172 dpurdie 3438
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_SCHED_DATETIME" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("SCHEDULED_DATETIME") 
3439
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3440
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3441
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3442
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3443
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3444
--------------------------------------------------------
4211 dpurdie 3445
--  DDL for Index INX_TTB_PKG
4040 dpurdie 3446
--------------------------------------------------------
3447
 
5172 dpurdie 3448
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_PKG" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("PKG_ID", "V_EXT") 
3449
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3450
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3451
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3452
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3453
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3454
--------------------------------------------------------
4211 dpurdie 3455
--  DDL for Index UNQ_VALIDATION_RULES
4040 dpurdie 3456
--------------------------------------------------------
3457
 
6031 dpurdie 3458
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VALIDATION_RULES" ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" ("FIELD_NAME") 
5172 dpurdie 3459
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3460
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3461
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3462
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3463
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3464
--------------------------------------------------------
3465
--  DDL for Index BUILD_STANDARDS_ADDENDUM_PK
3466
--------------------------------------------------------
4040 dpurdie 3467
 
5172 dpurdie 3468
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM_PK" ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ("BSA_ID") 
3469
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3470
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3471
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3472
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3473
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3474
--------------------------------------------------------
4211 dpurdie 3475
--  DDL for Index INX_PV_OWNER_ID
4040 dpurdie 3476
--------------------------------------------------------
3477
 
5172 dpurdie 3478
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_OWNER_ID" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("OWNER_ID") 
3479
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3480
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3481
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3482
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3483
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3484
--------------------------------------------------------
4211 dpurdie 3485
--  DDL for Index INX_TES_TES_STATE
4040 dpurdie 3486
--------------------------------------------------------
3487
 
5172 dpurdie 3488
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_TES_STATE" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("TES_STATE") 
3489
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3490
  STORAGE(INITIAL 458752 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3491
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3492
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3493
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3494
--------------------------------------------------------
6999 dpurdie 3495
--  DDL for Index INX_PV_MODIFIER
3496
--------------------------------------------------------
3497
 
3498
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_MODIFIER" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("MODIFIER_ID", "MODIFIED_STAMP") 
3499
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3500
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3501
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3502
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3503
  TABLESPACE "RELEASE_MANAGER_DATA" ;
3504
--------------------------------------------------------
4308 dpurdie 3505
--  DDL for Index UNQ_AN_PART1
3506
--------------------------------------------------------
4040 dpurdie 3507
 
5172 dpurdie 3508
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_AN_PART1" ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" ("PV_ID", "NOTE_ID") 
3509
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3510
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3511
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3512
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3513
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3514
--------------------------------------------------------
4211 dpurdie 3515
--  DDL for Index UNQ_RELEASE_CONTENTS
4040 dpurdie 3516
--------------------------------------------------------
3517
 
5172 dpurdie 3518
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_CONTENTS" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("RTAG_ID", "PV_ID") 
3519
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3520
  STORAGE(INITIAL 10485760 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3521
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3522
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3523
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3524
--------------------------------------------------------
3525
--  DDL for Index INX_ACTION_LOG_PV_ID
3526
--------------------------------------------------------
4040 dpurdie 3527
 
5172 dpurdie 3528
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_LOG_PV_ID" ON "RELEASE_MANAGER"."ACTION_LOG" ("PV_ID") 
3529
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3530
  STORAGE(INITIAL 109051904 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3531
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3532
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3533
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3534
--------------------------------------------------------
4211 dpurdie 3535
--  DDL for Index UNQ_TEST_TYPE_NAME
4040 dpurdie 3536
--------------------------------------------------------
3537
 
5172 dpurdie 3538
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_TEST_TYPE_NAME" ON "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_NAME") 
3539
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3540
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3541
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3542
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3543
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3544
--------------------------------------------------------
3545
--  DDL for Index PEGGED_VERSIONS_INDEX1
3546
--------------------------------------------------------
5172 dpurdie 3547
 
3548
  CREATE INDEX "RELEASE_MANAGER"."PEGGED_VERSIONS_INDEX1" ON "RELEASE_MANAGER"."PEGGED_VERSIONS" ("RTAG_ID", "PV_ID") 
3549
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3550
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3551
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3552
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3553
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3554
--------------------------------------------------------
4308 dpurdie 3555
--  DDL for Index PKNOTE_MANAGER1
3556
--------------------------------------------------------
4040 dpurdie 3557
 
5172 dpurdie 3558
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PKNOTE_MANAGER1" ON "RELEASE_MANAGER"."NOTE_MANAGER" ("NID") 
3559
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3560
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3561
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3562
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3563
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3564
--------------------------------------------------------
3565
--  DDL for Index INX_PACKAGES_V_MM
3566
--------------------------------------------------------
4040 dpurdie 3567
 
6999 dpurdie 3568
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_MM" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_MM") 
5172 dpurdie 3569
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3570
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3571
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3572
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3573
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3574
--------------------------------------------------------
3575
--  DDL for Index INX_CODE_REVIEW
3576
--------------------------------------------------------
4040 dpurdie 3577
 
5172 dpurdie 3578
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."INX_CODE_REVIEW" ON "RELEASE_MANAGER"."CODE_REVIEWS" ("PV_ID") 
3579
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3580
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3581
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3582
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3583
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3584
--------------------------------------------------------
4211 dpurdie 3585
--  DDL for Index UNQ_VTREES
4040 dpurdie 3586
--------------------------------------------------------
3587
 
5172 dpurdie 3588
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VTREES" ON "RELEASE_MANAGER"."VTREES" ("PROJ_ID", "VTREE_NAME") 
3589
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3590
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3591
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3592
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3593
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3594
--------------------------------------------------------
3595
--  DDL for Index INX_PACKAGE_DEPS_PKG_ID
3596
--------------------------------------------------------
4040 dpurdie 3597
 
5172 dpurdie 3598
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_PKG_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PKG_ID") 
3599
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3600
  STORAGE(INITIAL 83886080 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3601
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3602
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3603
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3604
--------------------------------------------------------
4211 dpurdie 3605
--  DDL for Index UNQ_PROJECTS
4040 dpurdie 3606
--------------------------------------------------------
3607
 
5172 dpurdie 3608
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PROJECTS" ON "RELEASE_MANAGER"."PROJECTS" ("PROJ_NAME") 
3609
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3610
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3611
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3612
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3613
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3614
--------------------------------------------------------
3615
--  DDL for Index INX_PACKAGES_V_EXT
3616
--------------------------------------------------------
4040 dpurdie 3617
 
5172 dpurdie 3618
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_EXT" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_EXT") 
3619
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3620
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3621
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3622
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3623
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3624
--------------------------------------------------------
4211 dpurdie 3625
--  DDL for Index PK_PROJECTS
4040 dpurdie 3626
--------------------------------------------------------
3627
 
5172 dpurdie 3628
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PROJECTS" ON "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") 
3629
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3630
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3631
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3632
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3633
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3634
--------------------------------------------------------
3635
--  DDL for Index INX_TES_PV
3636
--------------------------------------------------------
4040 dpurdie 3637
 
5172 dpurdie 3638
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_PV" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("PV_ID") 
3639
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3640
  STORAGE(INITIAL 851968 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3641
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3642
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3643
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3644
--------------------------------------------------------
6999 dpurdie 3645
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX5
3646
--------------------------------------------------------
5384 dpurdie 3647
 
3648
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX5" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PRODUCT") 
3649
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3650
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3651
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3652
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3653
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3654
--------------------------------------------------------
4211 dpurdie 3655
--  DDL for Index UNQ_VTREE_WORLD
4040 dpurdie 3656
--------------------------------------------------------
3657
 
5172 dpurdie 3658
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VTREE_WORLD" ON "RELEASE_MANAGER"."VTREES_WORLD" ("WORLD_ID", "VTREE_ID") 
3659
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3660
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3661
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3662
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3663
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3664
--------------------------------------------------------
4308 dpurdie 3665
--  DDL for Index UNQ_IGW
3666
--------------------------------------------------------
4040 dpurdie 3667
 
5172 dpurdie 3668
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_IGW" ON "RELEASE_MANAGER"."IGNORE_WARNINGS" ("RTAG_ID", "PV_ID", "DPV_ID") 
3669
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3670
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3671
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3672
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3673
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3674
--------------------------------------------------------
3675
--  DDL for Index INX_DAEMON_INST_RTAG_ID
3676
--------------------------------------------------------
4040 dpurdie 3677
 
5172 dpurdie 3678
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_RTAG_ID" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("RTAG_ID") 
3679
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3680
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3681
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3682
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3683
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3684
--------------------------------------------------------
3685
--  DDL for Index SDK_TAGS_PK
3686
--------------------------------------------------------
5172 dpurdie 3687
 
3688
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_TAGS_PK" ON "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") 
3689
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3690
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3691
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3692
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3693
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3694
--------------------------------------------------------
3695
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX7
3696
--------------------------------------------------------
5384 dpurdie 3697
 
3698
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX7" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("DEPENDANT_DEVIS") 
3699
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3700
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3701
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3702
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3703
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3704
--------------------------------------------------------
3705
--  DDL for Index PK_NOTIFICATION_HISTORY
3706
--------------------------------------------------------
4040 dpurdie 3707
 
5172 dpurdie 3708
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_NOTIFICATION_HISTORY" ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ("RTAG_ID", "PV_ID", "USER_ID") 
3709
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3710
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3711
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3712
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3713
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3714
--------------------------------------------------------
3715
--  DDL for Index UNQ_PACKAGE_DEPENDENCIES
3716
--------------------------------------------------------
4040 dpurdie 3717
 
5172 dpurdie 3718
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_DEPENDENCIES" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PV_ID", "DPV_ID") 
3719
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3720
  STORAGE(INITIAL 100663296 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3721
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3722
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3723
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3724
--------------------------------------------------------
6999 dpurdie 3725
--  DDL for Index PACKAGE_PATCHES_INDEX1
3726
--------------------------------------------------------
6600 dpurdie 3727
 
3728
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PACKAGE_PATCHES_INDEX1" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PV_ID", "PATCH_ID") 
3729
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3730
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3731
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3732
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3733
  TABLESPACE "RELEASE_MANAGER_DATA" ;
3734
--------------------------------------------------------
4308 dpurdie 3735
--  DDL for Index INX_PACKAGE_DEPS_PV_ID
3736
--------------------------------------------------------
4040 dpurdie 3737
 
5172 dpurdie 3738
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_PV_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PV_ID") 
3739
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3740
  STORAGE(INITIAL 75497472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3741
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3742
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3743
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3744
--------------------------------------------------------
4211 dpurdie 3745
--  DDL for Index BUILD_STANDARDS_PK
4040 dpurdie 3746
--------------------------------------------------------
3747
 
5172 dpurdie 3748
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_STANDARDS_PK" ON "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") 
3749
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3750
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3751
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3752
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3753
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3754
--------------------------------------------------------
3755
--  DDL for Index UNQ_CQ
3756
--------------------------------------------------------
4040 dpurdie 3757
 
5172 dpurdie 3758
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_CQ" ON "RELEASE_MANAGER"."CQ_ISSUES" ("PV_ID", "ISS_ID", "ISS_DB") 
3759
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3760
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3761
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3762
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3763
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3764
--------------------------------------------------------
4211 dpurdie 3765
--  DDL for Index UNQ_PACKAGE_VERSIONS
4040 dpurdie 3766
--------------------------------------------------------
3767
 
5172 dpurdie 3768
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_VERSIONS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID", "PKG_VERSION") 
3769
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3770
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3771
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3772
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3773
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3774
--------------------------------------------------------
3775
--  DDL for Index INX_PV_ID_TEST_ID_PKGDOC
3776
--------------------------------------------------------
4040 dpurdie 3777
 
5172 dpurdie 3778
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_ID_TEST_ID_PKGDOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID", "TEST_ID") 
3779
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3780
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3781
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3782
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3783
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3784
--------------------------------------------------------
4211 dpurdie 3785
--  DDL for Index UNQ_PACKAGE_PATCHES
4040 dpurdie 3786
--------------------------------------------------------
3787
 
5172 dpurdie 3788
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_PATCHES" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PATCH_ID") 
3789
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3790
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3791
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3792
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3793
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3794
--------------------------------------------------------
6999 dpurdie 3795
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX3
3796
--------------------------------------------------------
5384 dpurdie 3797
 
3798
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX3" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PACKAGE_REF") 
3799
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3800
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3801
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3802
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3803
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3804
--------------------------------------------------------
3805
--  DDL for Index UNQ_PACKAGE_DEP_REV
3806
--------------------------------------------------------
5384 dpurdie 3807
 
6999 dpurdie 3808
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_DEP_REV" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("DPV_ID", "PV_ID") 
3809
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3810
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3811
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3812
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3813
  TABLESPACE "RELEASE_MANAGER_DATA" ;
3814
--------------------------------------------------------
3815
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX4
3816
--------------------------------------------------------
3817
 
5384 dpurdie 3818
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX4" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PROJECT") 
3819
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3820
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3821
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3822
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3823
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3824
--------------------------------------------------------
4308 dpurdie 3825
--  DDL for Index UNQ_REL_COMPONENTS
3826
--------------------------------------------------------
4040 dpurdie 3827
 
5172 dpurdie 3828
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_REL_COMPONENTS" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" ("PV_ID", "FILE_NAME", "FILE_PATH") 
3829
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3830
  STORAGE(INITIAL 3489660928 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3831
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3832
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3833
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3834
--------------------------------------------------------
3835
--  DDL for Index PK_PACKAGE_VERSIONS
3836
--------------------------------------------------------
4040 dpurdie 3837
 
5172 dpurdie 3838
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PACKAGE_VERSIONS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") 
3839
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3840
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3841
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3842
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3843
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3844
--------------------------------------------------------
3845
--  DDL for Index UNQ_RELEASE_METRICS
3846
--------------------------------------------------------
4040 dpurdie 3847
 
5172 dpurdie 3848
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_METRICS" ON "RELEASE_MANAGER"."RELEASE_METRICS" ("RTAG_ID") 
3849
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3850
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3851
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3852
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3853
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3854
--------------------------------------------------------
3855
--  DDL for Index UNQ_BUILD_ORDER
3856
--------------------------------------------------------
4040 dpurdie 3857
 
5172 dpurdie 3858
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ORDER" ON "RELEASE_MANAGER"."BUILD_ORDER" ("RTAG_ID", "PV_ID", "STEP_NUM") 
3859
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3860
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3861
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3862
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3863
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3864
--------------------------------------------------------
3865
--  DDL for Index PK_BUILD_ENVIRONMENTS
3866
--------------------------------------------------------
4040 dpurdie 3867
 
5172 dpurdie 3868
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_BUILD_ENVIRONMENTS" ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") 
3869
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3870
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3871
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3872
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3873
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3874
--------------------------------------------------------
3875
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX1
3876
--------------------------------------------------------
5384 dpurdie 3877
 
3878
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX1" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("DBID") 
3879
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3880
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3881
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3882
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3883
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3884
--------------------------------------------------------
3885
--  DDL for Index INX_PACKAGE_DEPS_DPKG_ID
3886
--------------------------------------------------------
4040 dpurdie 3887
 
5172 dpurdie 3888
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_DPKG_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("DPKG_ID") 
3889
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3890
  STORAGE(INITIAL 83886080 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3891
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3892
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3893
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3894
--------------------------------------------------------
3895
--  DDL for Index INX_RL_REFRTAG_ID
3896
--------------------------------------------------------
4040 dpurdie 3897
 
5172 dpurdie 3898
  CREATE INDEX "RELEASE_MANAGER"."INX_RL_REFRTAG_ID" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("REF_RTAG_ID") 
3899
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3900
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3901
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3902
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3903
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3904
--------------------------------------------------------
3905
--  DDL for Index INX_RC_BASE_VIEW_ID
3906
--------------------------------------------------------
4040 dpurdie 3907
 
5172 dpurdie 3908
  CREATE INDEX "RELEASE_MANAGER"."INX_RC_BASE_VIEW_ID" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("BASE_VIEW_ID") 
3909
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3910
  STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3911
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3912
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3913
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3914
--------------------------------------------------------
3915
--  DDL for Index INX_DAEMON_INST_PV_ID
3916
--------------------------------------------------------
4211 dpurdie 3917
 
5172 dpurdie 3918
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_PV_ID" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("PV_ID") 
3919
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3920
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3921
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3922
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3923
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3924
--------------------------------------------------------
4040 dpurdie 3925
--  DDL for Index UNQ_PROJECT_EXT
3926
--------------------------------------------------------
3927
 
5172 dpurdie 3928
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PROJECT_EXT" ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" ("PROJ_ID", "EXT_NAME") 
3929
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3930
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3931
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3932
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3933
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3934
--------------------------------------------------------
3935
--  DDL for Index VCS_TYPE_PK
3936
--------------------------------------------------------
4040 dpurdie 3937
 
5172 dpurdie 3938
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."VCS_TYPE_PK" ON "RELEASE_MANAGER"."VCS_TYPE" ("VCS_TYPE_ID") 
3939
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3940
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3941
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3942
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3943
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3944
--------------------------------------------------------
4211 dpurdie 3945
--  DDL for Index INX_PC_FILE_NAME
4040 dpurdie 3946
--------------------------------------------------------
3947
 
5172 dpurdie 3948
  CREATE INDEX "RELEASE_MANAGER"."INX_PC_FILE_NAME" ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" (UPPER("FILE_NAME")) 
3949
  PCTFREE 10 INITRANS 2 MAXTRANS 167 COMPUTE STATISTICS 
3950
  STORAGE(INITIAL 18874368 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3951
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3952
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3953
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3954
--------------------------------------------------------
3955
--  DDL for Index PK_RELEASE_TAGS
3956
--------------------------------------------------------
4040 dpurdie 3957
 
5172 dpurdie 3958
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_RELEASE_TAGS" ON "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") 
3959
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3960
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3961
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3962
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3963
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3964
--------------------------------------------------------
4211 dpurdie 3965
--  DDL for Index FK_PROJ_ID_RELEASE_TAGS
4040 dpurdie 3966
--------------------------------------------------------
3967
 
5172 dpurdie 3968
  CREATE INDEX "RELEASE_MANAGER"."FK_PROJ_ID_RELEASE_TAGS" ON "RELEASE_MANAGER"."RELEASE_TAGS" ("PROJ_ID") 
3969
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3970
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3971
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3972
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3973
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3974
--------------------------------------------------------
4211 dpurdie 3975
--  DDL for Index INX_RCOMP_PV_ID
4040 dpurdie 3976
--------------------------------------------------------
3977
 
5172 dpurdie 3978
  CREATE INDEX "RELEASE_MANAGER"."INX_RCOMP_PV_ID" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" ("PV_ID") 
3979
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3980
  STORAGE(INITIAL 724566016 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3981
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3982
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3983
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3984
--------------------------------------------------------
3985
--  DDL for Index MICROSOFT_PK_DTPROPERTIES
3986
--------------------------------------------------------
4040 dpurdie 3987
 
5172 dpurdie 3988
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."MICROSOFT_PK_DTPROPERTIES" ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" ("ID", "PROPERTY") 
3989
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3990
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3991
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3992
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3993
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3994
--------------------------------------------------------
3995
--  DDL for Index BLAT_RELEASES_INDEX1
3996
--------------------------------------------------------
5172 dpurdie 3997
 
6999 dpurdie 3998
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BLAT_RELEASES_INDEX1" ON "RELEASE_MANAGER"."BLAT_RELEASES" ("BLAT_ID", "RTAG_ID") 
3999
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4000
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4001
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4002
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4003
  TABLESPACE "RELEASE_MANAGER_DATA" ;
4004
--------------------------------------------------------
4005
--  DDL for Index BUILD_ID
4006
--------------------------------------------------------
4007
 
5172 dpurdie 4008
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_ID" ON "RELEASE_MANAGER"."BUILD_INSTANCES" ("BUILD_ID") 
4009
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4010
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4011
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4012
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 4013
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 4014
--------------------------------------------------------
4308 dpurdie 4015
--  DDL for Index INX_UT_PV_TEST_TYPE
4016
--------------------------------------------------------
4040 dpurdie 4017
 
5172 dpurdie 4018
  CREATE INDEX "RELEASE_MANAGER"."INX_UT_PV_TEST_TYPE" ON "RELEASE_MANAGER"."UNIT_TESTS" ("PV_ID", "TEST_TYPES_FK") 
4019
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4020
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4021
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4022
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 4023
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 4024
--------------------------------------------------------
4025
--  DDL for Index PK_WORLDS
4026
--------------------------------------------------------
4040 dpurdie 4027
 
5172 dpurdie 4028
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_WORLDS" ON "RELEASE_MANAGER"."WORLDS" ("WORLD_ID") 
4029
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4030
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4031
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4032
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 4033
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4034
--------------------------------------------------------
4035
--  DDL for Index CQ_HISTORY_INDEX1
4036
--------------------------------------------------------
5384 dpurdie 4037
 
4038
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_HISTORY_INDEX1" ON "RELEASE_MANAGER"."CQ_HISTORY" ("DBID") 
4039
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4040
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4041
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4042
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 4043
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4044
--------------------------------------------------------
4308 dpurdie 4045
--  DDL for Index UNQ_AN_PART2
4046
--------------------------------------------------------
4040 dpurdie 4047
 
5172 dpurdie 4048
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_AN_PART2" ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" ("PV_ID", "NOTE_TITLE") 
4049
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4050
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4051
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4052
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 4053
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 4054
--------------------------------------------------------
6999 dpurdie 4055
--  DDL for Trigger TRIGGER_BLAT_SERVER_ID
4040 dpurdie 4056
--------------------------------------------------------
4057
 
6999 dpurdie 4058
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_BLAT_SERVER_ID" 
4059
BEFORE INSERT ON BLAT_SERVERS 
4060
for each row
4061
BEGIN
4062
  select SEQ_BLAT_SERVER_ID.nextval
4063
  into :new.BLAT_ID
4064
  from DUAL;
4065
END;
4066
/
4067
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_BLAT_SERVER_ID" ENABLE;
4040 dpurdie 4068
--------------------------------------------------------
6999 dpurdie 4069
--  DDL for Trigger TRIGGER_BSA_ID
4308 dpurdie 4070
--------------------------------------------------------
4040 dpurdie 4071
 
6999 dpurdie 4072
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_BSA_ID" 
4073
BEFORE INSERT ON BUILD_STANDARDS_ADDENDUM
4074
for each row
4075
BEGIN
4076
  select SEQ_BSA_ID.nextval
4077
  into :new.BSA_ID
4078
  from DUAL;
4079
END;
4080
/
4081
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_BSA_ID" ENABLE;
4040 dpurdie 4082
--------------------------------------------------------
6999 dpurdie 4083
--  DDL for Trigger TRIGGER_BUILD_INSTANCE
4040 dpurdie 4084
--------------------------------------------------------
4085
 
6999 dpurdie 4086
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_BUILD_INSTANCE" 
4087
BEFORE INSERT ON BUILD_INSTANCES
4088
for each row
4089
BEGIN
4090
  If :new.BUILD_ID is null then
4091
  select SEQ_BUILD_INSTANCE.nextval
4092
  into :new.BUILD_ID
4093
  from DUAL;
4094
  End If;
4095
END;
4096
/
4097
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_BUILD_INSTANCE" ENABLE;
4040 dpurdie 4098
--------------------------------------------------------
6999 dpurdie 4099
--  DDL for Trigger TRIGGER_SDK_NAMES
4040 dpurdie 4100
--------------------------------------------------------
4101
 
6999 dpurdie 4102
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_NAMES" 
4103
BEFORE INSERT ON SDK_NAMES
4104
for each row
4105
BEGIN
4106
  select SEQ_SDK_ID.nextval
4107
  into :new.SDK_ID
4108
  from DUAL;
4109
END;
4110
/
4111
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_NAMES" ENABLE;
4308 dpurdie 4112
--------------------------------------------------------
6999 dpurdie 4113
--  DDL for Trigger TRIGGER_SDK_TAGS
4308 dpurdie 4114
--------------------------------------------------------
4211 dpurdie 4115
 
6999 dpurdie 4116
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_TAGS" 
4117
BEFORE INSERT ON SDK_TAGS
4118
for each row
4119
BEGIN
4120
  select SEQ_SDKTAG_ID.nextval
4121
  into :new.SDKTAG_ID
4122
  from DUAL;
4123
END;
4124
/
4125
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_TAGS" ENABLE;
4040 dpurdie 4126
--------------------------------------------------------
6999 dpurdie 4127
--  DDL for Trigger TRIGGER_TEST_RUNS
4040 dpurdie 4128
--------------------------------------------------------
4129
 
6999 dpurdie 4130
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_TEST_RUNS" 
4131
  BEFORE INSERT ON TEST_RUN
4132
  for each row
4133
BEGIN
4134
  if :new.TESTRUN_ID is null then
4135
  select SEQ_TESTRUN_ID.nextval
4136
    into :new.TESTRUN_ID
4137
  from DUAL;
4138
  end if;
4139
END;
4140
/
4141
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_TEST_RUNS" ENABLE;
4040 dpurdie 4142
--------------------------------------------------------
6999 dpurdie 4143
--  DDL for Procedure ADD_AUTOBUILD_FAILURE_INFO
4040 dpurdie 4144
--------------------------------------------------------
6999 dpurdie 4145
set define off;
4040 dpurdie 4146
 
6999 dpurdie 4147
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_AUTOBUILD_FAILURE_INFO" (
4148
   nprojid     IN   NUMBER,
4149
   nviewid     IN   NUMBER,
4150
   suserlist   IN   VARCHAR2
4151
)
4152
IS
4153
   groupid   NUMBER;
4154
/******************************************************************************
4155
   NAME:       ADD_AUTOBUILD_FAILURE
4156
   PURPOSE:
4040 dpurdie 4157
 
6999 dpurdie 4158
   REVISIONS:
4159
   Ver        Date        Author           Description
4160
   ---------  ----------  ---------------  ------------------------------------
4161
   1.0        11/04/2006   Rupesh Solanki Created this procedure.
4040 dpurdie 4162
 
6999 dpurdie 4163
   NOTES:
4040 dpurdie 4164
 
6999 dpurdie 4165
   Automatically available Auto Replace Keywords:
4166
      Object Name:     ADD_AUTOBUILD_FAILURE
4167
      Sysdate:         11/04/2006
4168
      Date and Time:   11/04/2006, 9:28:28 AM, and 11/04/2006 9:28:28 AM
4169
      Username:         (set in TOAD Options, Procedure Editor)
4170
      Table Name:       (set in the "New PL/SQL Object" dialog)
4040 dpurdie 4171
 
6999 dpurdie 4172
******************************************************************************/
4173
BEGIN
4174
   BEGIN
4175
      SELECT group_email_id
4176
        INTO groupid
4177
        FROM autobuild_failure
4178
       WHERE proj_id = nprojid AND view_id = nviewid;
4179
   EXCEPTION
4180
      WHEN NO_DATA_FOUND
4181
      THEN
4182
         --  Create Next Sequence Id ---
4183
         SELECT seq_group_email_id.NEXTVAL
4184
           INTO groupid
4185
           FROM DUAL;
4040 dpurdie 4186
 
6999 dpurdie 4187
         INSERT INTO autobuild_failure
4188
                     (group_email_id, proj_id, view_id
4189
                     )
4190
              VALUES (groupid, nprojid, nviewid
4191
                     );
4192
   END;
4040 dpurdie 4193
 
6999 dpurdie 4194
   add_view_members (groupid, suserlist);
4195
END add_autobuild_failure_info;
4040 dpurdie 4196
 
6999 dpurdie 4197
/
4040 dpurdie 4198
--------------------------------------------------------
6999 dpurdie 4199
--  DDL for Procedure ADD_COMPONENT
4308 dpurdie 4200
--------------------------------------------------------
6999 dpurdie 4201
set define off;
4040 dpurdie 4202
 
6999 dpurdie 4203
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_COMPONENT" ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE,
4204
	   	  		  						  	sFileName IN RELEASE_COMPONENTS.FILE_NAME%TYPE,
4205
											sFilePath IN RELEASE_COMPONENTS.FILE_PATH%TYPE DEFAULT NULL,
4206
											nByteSize IN RELEASE_COMPONENTS.BYTE_SIZE%TYPE,
4207
											sCRCcksum IN RELEASE_COMPONENTS.CRC_CKSUM%TYPE DEFAULT NULL,
4208
											sCRCmodcrc IN RELEASE_COMPONENTS.CRC_MODCRC%TYPE DEFAULT NULL
4209
                                           ) IS
4210
/* ---------------------------------------------------------------------------
4211
    Version: 3.0.0
4212
   --------------------------------------------------------------------------- */
4040 dpurdie 4213
 
5172 dpurdie 4214
 
6999 dpurdie 4215
BEGIN
4040 dpurdie 4216
 
6999 dpurdie 4217
	 --- Insert into RELEASE_COMPONENTS
4218
	 INSERT INTO RELEASE_COMPONENTS ( PV_ID, FILE_NAME, FILE_PATH, BYTE_SIZE, CRC_CKSUM, CRC_MODCRC )
4219
	 VALUES ( nPvId, sFileName, sFilePath, nByteSize, sCRCcksum, sCRCmodcrc  );
4040 dpurdie 4220
 
4221
 
5172 dpurdie 4222
 
4040 dpurdie 4223
 
6999 dpurdie 4224
END Add_Component;
4040 dpurdie 4225
 
6999 dpurdie 4226
/
4040 dpurdie 4227
--------------------------------------------------------
6999 dpurdie 4228
--  DDL for Procedure ADD_PACKAGE_INTEREST
4040 dpurdie 4229
--------------------------------------------------------
6999 dpurdie 4230
set define off;
4040 dpurdie 4231
 
6999 dpurdie 4232
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_PACKAGE_INTEREST" (
4233
    nProjId    IN PROJECTS.PROJ_ID%TYPE,
4234
    nPkgIdList IN VARCHAR2,
4235
    nUserId    IN NUMBER )
4236
IS
4237
  npkgidcollector relmgr_number_tab_t := relmgr_number_tab_t ();
4238
  nPkgId        NUMBER;
4239
  alreadyExists NUMBER;
4240
BEGIN
4241
  npkgidcollector := in_list_number2 (nPkgIdList);
4242
  FOR i IN 1..npkgidcollector.COUNT
4243
  LOOP
4244
    nPkgId := npkgidcollector(i);
4245
    --- Ensure it doesn't already exist
4246
    SELECT COUNT(*)
4247
    INTO alreadyExists
4248
    FROM PACKAGE_INTEREST
4249
    WHERE USER_ID      = nUserId
4250
    AND PKG_ID         = nPkgId
4251
    AND PROJ_ID        = nProjId;
4040 dpurdie 4252
 
6999 dpurdie 4253
    IF ( alreadyExists = 0 ) THEN
4254
      --- Insert into PACKAGE_INTEREST TABLE
4255
      INSERT
4256
        INTO PACKAGE_INTEREST (PROJ_ID, PKG_ID, USER_ID )
4257
        VALUES (nProjId, nPkgId, nUserId );
4258
    END IF;
4259
  END LOOP;
4260
END ADD_PACKAGE_INTEREST;
4040 dpurdie 4261
 
6999 dpurdie 4262
/
4308 dpurdie 4263
--------------------------------------------------------
6999 dpurdie 4264
--  DDL for Procedure ADD_RUNTIME_DEPENDENCY
4308 dpurdie 4265
--------------------------------------------------------
6999 dpurdie 4266
set define off;
4040 dpurdie 4267
 
6999 dpurdie 4268
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_RUNTIME_DEPENDENCY" ( NNpv_id IN NUMBER,
4269
                                                     SSrtd_name IN PACKAGES.pkg_name%TYPE,
4270
                                                     SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
4271
                                                     NNuser_id IN NUMBER
4272
                                                    ) IS
4273
/* ---------------------------------------------------------------------------
4274
    Version: 3.1
4275
   --------------------------------------------------------------------------- */
4040 dpurdie 4276
 
6999 dpurdie 4277
    retRTD_ID NUMBER;
4040 dpurdie 4278
 
6999 dpurdie 4279
	CURSOR rtd_cur IS
4280
        SELECT rtd_id FROM runtime_dependencies WHERE pv_id = NNpv_id AND rtd_id = retRTD_ID;
4281
    rtd_rec rtd_cur%ROWTYPE;
4040 dpurdie 4282
 
6999 dpurdie 4283
BEGIN
4284
    --- Seed database with package_name and version if required ---
4285
    Seed_Package_Names_Versions ( SSrtd_name, SSrtd_version, NNuser_id, retRTD_ID );
4040 dpurdie 4286
 
6999 dpurdie 4287
	OPEN rtd_cur;
4288
    FETCH rtd_cur INTO rtd_rec;
5384 dpurdie 4289
 
6999 dpurdie 4290
    IF rtd_cur%NOTFOUND
4291
    THEN
4292
		/* Make sure it does not exists already as runtime dependency */
4040 dpurdie 4293
 
6999 dpurdie 4294
		--- Add new Runtime Dependency ---
4295
	    INSERT INTO runtime_dependencies ( pv_id, rtd_id, mod_date, mod_user )
7000 dpurdie 4296
	    VALUES (  NNpv_id, retRTD_ID, ora_sysdatetime , NNuser_id );
4040 dpurdie 4297
 
6999 dpurdie 4298
    	/* LOG ACTION */
4299
        Log_Action ( NNpv_id, 'runtime_add', NNuser_id,
4300
    			     'Runtime package: '|| SSrtd_name ||' '|| SSrtd_version );
4040 dpurdie 4301
 
6999 dpurdie 4302
	END IF;
4040 dpurdie 4303
 
6031 dpurdie 4304
 
6999 dpurdie 4305
END Add_Runtime_Dependency;
5892 dpurdie 4306
 
6999 dpurdie 4307
/
4040 dpurdie 4308
--------------------------------------------------------
6999 dpurdie 4309
--  DDL for Procedure ADD_VIEW_MEMBERS
6031 dpurdie 4310
--------------------------------------------------------
6999 dpurdie 4311
set define off;
4040 dpurdie 4312
 
6999 dpurdie 4313
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_VIEW_MEMBERS" (nGroupId IN NUMBER, sUserList IN VARCHAR2) IS
4040 dpurdie 4314
 
6999 dpurdie 4315
/******************************************************************************
4316
   NAME:       ADD_VIEW_MEMBERS
4317
   PURPOSE:
4040 dpurdie 4318
 
6999 dpurdie 4319
   REVISIONS:
4320
   Ver        Date        Author           Description
4321
   ---------  ----------  ---------------  ------------------------------------
4322
   1.0        11/04/2006          1. Created this procedure.
5384 dpurdie 4323
 
6999 dpurdie 4324
   NOTES:
6031 dpurdie 4325
 
6999 dpurdie 4326
   Automatically available Auto Replace Keywords:
4327
      Object Name:     ADD_VIEW_MEMBERS
4328
      Sysdate:         11/04/2006
4329
      Date and Time:   11/04/2006, 9:52:58 AM, and 11/04/2006 9:52:58 AM
4330
      Username:         (set in TOAD Options, Procedure Editor)
4331
      Table Name:       (set in the "New PL/SQL Object" dialog)
4040 dpurdie 4332
 
6999 dpurdie 4333
******************************************************************************/
4334
CURSOR user_cur IS
4335
	SELECT u.USER_ID
4336
	  FROM USERS u
4337
	 WHERE u.USER_ID IN (
4338
	 	   			   	SELECT *
4339
						  FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
4340
						);
4341
user_rec user_cur%ROWTYPE;
5384 dpurdie 4342
 
4040 dpurdie 4343
 
6999 dpurdie 4344
BEGIN
4040 dpurdie 4345
 
6999 dpurdie 4346
	 OPEN user_cur;
4347
	 FETCH user_cur INTO user_rec;
6031 dpurdie 4348
 
6999 dpurdie 4349
	 WHILE user_cur%FOUND
4350
	 LOOP
4351
	 	 INSERT INTO MEMBERS_GROUP (GROUP_EMAIL_ID, USER_ID)
4352
	 	 VALUES ( nGroupId, user_rec.USER_ID);
6031 dpurdie 4353
 
6999 dpurdie 4354
	 	 FETCH user_cur INTO user_rec;
4355
	 END LOOP;
6031 dpurdie 4356
 
5172 dpurdie 4357
 
6999 dpurdie 4358
 
4359
END ADD_VIEW_MEMBERS;
4360
 
4361
/
4040 dpurdie 4362
--------------------------------------------------------
6999 dpurdie 4363
--  DDL for Procedure BASIC_CLONE
4040 dpurdie 4364
--------------------------------------------------------
6999 dpurdie 4365
set define off;
4040 dpurdie 4366
 
6999 dpurdie 4367
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."BASIC_CLONE" (
4368
        nFROMpv_id IN NUMBER,
4369
        nTOpv_id IN NUMBER,
4370
        nRtag_id IN NUMBER,
4371
        nUser_id IN NUMBER,
4372
        nTOpkg_id IN NUMBER DEFAULT NULL,
4373
        enumISSUES_STATE_IMPORTED IN NUMBER DEFAULT NULL ) IS
5172 dpurdie 4374
 
6999 dpurdie 4375
   FromVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
4376
   major NUMBER;
4377
   minor NUMBER;
4378
   patch NUMBER;
4379
   buildn NUMBER;
4380
   from_vcs_type_id NUMBER;
4381
BEGIN
4382
------------------------------ Version Control System ------------------------------------------
4383
   SELECT vcs_type_id
4384
      INTO from_vcs_type_id
4385
      FROM package_versions WHERE pv_id = nFROMpv_id;
5384 dpurdie 4386
 
6999 dpurdie 4387
   UPDATE package_versions
4388
      SET vcs_type_id = from_vcs_type_id
4389
      WHERE pv_id = nTOpv_id;
4390
------------------------------------- Limits ---------------------------------------------------
4391
   select major_limit, minor_limit, patch_limit, build_number_limit
4392
   into major, minor, patch, buildn
4393
   from package_versions where pv_id=nFROMpv_id;
4394
    UPDATE package_versions SET
4395
           major_limit = major,
4396
           minor_limit = minor,
4397
           patch_limit = patch,
4398
           build_number_limit = buildn
4399
     WHERE PV_ID = nTOpv_id;
4400
------------------------------------- Clone Dependencies ---------------------------------------------------
4401
   IF NOT nRtag_id IS NULL
4402
   THEN
4403
      -- Auto Update Dependencies --
4404
      INSERT INTO PACKAGE_DEPENDENCIES
4405
           SELECT nTOpv_id AS pv_id,
4406
                  DECODE(nUser_id,
4407
                         frc.modifier_id,
4408
                         frc.pv_id,
4409
                         DECODE(frc.dlocked,
4410
                                'Y',
4411
                                frc.pv_id,
4412
                                dep.dpv_id)
4413
                         ) AS dpv_id,
4414
                  nTOpkg_id AS pkg_id,
4415
                  dep.dpkg_id,
4416
                  dep.build_type,
4417
                  dep.display_order
4418
             FROM PACKAGE_DEPENDENCIES dep,
4419
                  PACKAGE_VERSIONS pv,
4420
                  (
4421
                  /* Full Release Contents used for reference*/
4422
                  SELECT rpv.pv_id, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext, rpv.modifier_id, rpv.dlocked
4423
                  FROM RELEASE_CONTENT rel, PACKAGE_VERSIONS rpv
4424
                  WHERE rel.pv_id = rpv.pv_id AND rtag_id = nRtag_id
4425
                  ) frc
4426
            WHERE dep.pv_id = nFROMpv_id
4427
              AND dep.dpv_id = pv.pv_id
4428
              AND pv.pkg_id = frc.pkg_id(+)
4429
              AND NVL(pv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+);
4430
   ELSE
4431
      -- Clone Dependencies --
4432
      INSERT INTO PACKAGE_DEPENDENCIES
4433
           SELECT nTOpv_id         AS pv_id,
4434
                  dep.dpv_id,
4435
                  nTOpkg_id        AS pkg_id,
4436
                  dep.dpkg_id,
4437
                  dep.build_type,
4438
                  dep.display_order
4439
             FROM PACKAGE_DEPENDENCIES dep
4440
            WHERE dep.pv_id = nFROMpv_id;
6031 dpurdie 4441
 
6999 dpurdie 4442
   END IF;
4040 dpurdie 4443
 
6999 dpurdie 4444
----------------------------------------- Clone Issues -------------------------------------------------------
4445
   IF enumISSUES_STATE_IMPORTED IS NULL
4446
   THEN
4447
        /* All Issues */
4448
       INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
4449
            SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
4450
              FROM CQ_ISSUES
4451
             WHERE pv_id = nFROMpv_id;
4452
   ELSE
4453
       /* Outstanding Issues Only */
4454
       INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
4455
            SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
4456
              FROM CQ_ISSUES
4457
             WHERE pv_id = nFROMpv_id
4458
               AND iss_state = enumISSUES_STATE_IMPORTED;
4459
   END IF;
4040 dpurdie 4460
 
6999 dpurdie 4461
------------------------------------ Clone Runtime Dependencies -----------------------------------------------
4462
   INSERT INTO RUNTIME_DEPENDENCIES (pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user)
4463
       SELECT nTOpv_id AS pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user
4464
       FROM RUNTIME_DEPENDENCIES WHERE pv_id = nFROMpv_id;
4040 dpurdie 4465
 
6999 dpurdie 4466
--------------------------------------- Clone Additional Notes ------------------------------------------------
4467
   INSERT INTO ADDITIONAL_NOTES ( NOTE_ID, PV_ID, NOTE_TITLE, NOTE_BODY, MOD_DATE, MOD_USER )
4468
        SELECT an.NOTE_ID,
4469
               nTOpv_id AS PV_ID,
4470
               an.NOTE_TITLE,
4471
               an.NOTE_BODY,
4472
               an.MOD_DATE,
4473
               an.MOD_USER
4474
          FROM ADDITIONAL_NOTES an
4475
         WHERE an.PV_ID = nFROMpv_id;
4040 dpurdie 4476
 
6999 dpurdie 4477
-------------------------------------------- Clone Unit Tests -------------------------------------------------
4478
-- Only clone 'Auto Unit Test', 'Interactive Unit Test' and 'Autobuild UTF'
4479
-- Only clone the basic information: TEST_SUMMARY
6031 dpurdie 4480
 
6999 dpurdie 4481
    INSERT INTO UNIT_TESTS (
4482
                            TEST_ID,
4483
                            PV_ID,
4484
                            TEST_TYPES_FK,
4485
                            TEST_SUMMARY
4486
                           )
4487
       SELECT ut.TEST_ID,
4488
              nTOpv_id AS PV_ID,
4489
              ut.TEST_TYPES_FK,
4490
              ut.TEST_SUMMARY
4491
         FROM UNIT_TESTS ut
4492
        WHERE ut.PV_ID = nFROMpv_id
4493
          AND ut.TEST_TYPES_FK IN (5,6,7);
4040 dpurdie 4494
 
6999 dpurdie 4495
-------------------------------------------- Clone Package Documents ------------------------------------------
4496
   INSERT INTO PACKAGE_DOCUMENTS ( PV_ID, TEST_ID, DOC_NUM, DOC_ID, IS_LATEST )
4497
        SELECT nTOpv_id AS PV_ID,
4498
               pd.test_id,
4499
               pd.doc_num,
4500
               pd.doc_id,
4501
               pd.IS_LATEST
4502
          FROM PACKAGE_DOCUMENTS pd
4503
         WHERE pd.PV_ID = nFROMpv_id;
5892 dpurdie 4504
 
6999 dpurdie 4505
-------------------------------------------- Clone Build Environments -----------------------------------------
4506
    INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID, BUILD_TYPE )
4507
    SELECT nTOpv_id AS PV_ID,
4508
           pkgbe.BE_ID,
4509
           pkgbe.BUILD_TYPE
4510
      FROM PACKAGE_BUILD_ENV pkgbe
4511
     WHERE pkgbe.PV_ID = nFROMpv_id;
4040 dpurdie 4512
 
6999 dpurdie 4513
---------------------------------------------Clone Package Build Info------------------------------------------
4514
    INSERT INTO PACKAGE_BUILD_INFO (PV_ID, BM_ID, BSA_ID)
4515
    SELECT nTOpv_id AS PV_ID,
4516
           pkgbinfo.BM_ID,
4517
           pkgbinfo.BSA_ID
4518
      FROM PACKAGE_BUILD_INFO pkgbinfo
4519
     WHERE pkgbinfo.PV_ID = nFROMpv_id;
4040 dpurdie 4520
 
6999 dpurdie 4521
---------------------------------------------Clone Package Version Processes-----------------------------------
4522
    INSERT INTO PACKAGE_PROCESSES ( PV_ID, PROC_ID )
4523
    SELECT nTOpv_id AS PV_ID,
4524
           pp.PROC_ID
4525
      FROM PACKAGE_PROCESSES pp
4526
     WHERE pp.PV_ID = nFROMpv_id;
6031 dpurdie 4527
 
6999 dpurdie 4528
---------------------------------------------Clone Licencing Associations-----------------------------------
4529
    PK_LICENCING.CLONE_LICENCING(nFROMpv_id, nTOpv_id, nUser_id);
4530
---------------------------------------------------------------------------------------------------------------
4040 dpurdie 4531
 
6999 dpurdie 4532
    /* LOG ACTION */
4533
    SELECT pv.PKG_VERSION INTO FromVersion
4534
      FROM PACKAGE_VERSIONS pv
4535
     WHERE pv.PV_ID = nFROMpv_id;
4040 dpurdie 4536
 
6999 dpurdie 4537
    Log_Action ( nTOpv_id, 'clone_from', nUser_id,
4538
                 'Details cloned from: '|| FromVersion );
4040 dpurdie 4539
 
6999 dpurdie 4540
---------------------------------------------------------------------------------------------------------------
4040 dpurdie 4541
 
6999 dpurdie 4542
END Basic_Clone;
4040 dpurdie 4543
 
6999 dpurdie 4544
/
4040 dpurdie 4545
--------------------------------------------------------
6999 dpurdie 4546
--  DDL for Procedure BUILD_TREE
4308 dpurdie 4547
--------------------------------------------------------
6999 dpurdie 4548
set define off;
4040 dpurdie 4549
 
6999 dpurdie 4550
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."BUILD_TREE" ( nRtag_id IN NUMBER,
4551
	   	  		  					     retSessionNum OUT NUMBER ) IS
6031 dpurdie 4552
 
6999 dpurdie 4553
/* ---------------------------------------------------------------------------
4554
    Version: 3.0.0
4555
   --------------------------------------------------------------------------- */
4556
    rowCnt 			NUMBER := 0;						-- Iterations counter
4557
    iteration 		NUMBER := 1;                  -- Maximum number of iterations allowed.
4558
    maxIterations 	NUMBER := 50;      	  	-- This will prevent infinite loops if cyrcular dependencies are found
4559
	UP_THE_TREE 	CONSTANT NUMBER DEFAULT 1;
4560
	DOWN_THE_TREE 	CONSTANT NUMBER DEFAULT -1;
4561
    sessionNum 		NUMBER;
4562
	levelNum		NUMBER;
6031 dpurdie 4563
 
6999 dpurdie 4564
BEGIN
4565
    SELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;
4040 dpurdie 4566
 
6999 dpurdie 4567
	/*
4568
	||	   Start UP THE TREE
4569
	*/
6031 dpurdie 4570
 
4571
 
6999 dpurdie 4572
	/* Packages with no dependencies */
4573
    INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
4574
		SELECT sessionNum AS SESSION_NUM,
4575
			   iteration AS LEVEL_NUM,
4576
			   UP_THE_TREE AS DIRECTION,
4577
			   rc.pv_id, pv.pkg_id, pv.v_ext
4578
		  FROM release_content rc,
4579
		  	   package_versions pv
4580
		 WHERE rc.rtag_id = nRtag_id
4581
		   AND rc.pv_id = pv.pv_id
4582
		 MINUS
4583
		SELECT sessionNum AS SESSION_NUM,
4584
			   iteration AS LEVEL_NUM,
4585
			   UP_THE_TREE AS DIRECTION,
4586
			   dep.pv_id, pv.pkg_id, pv.v_ext
4587
		  FROM package_dependencies dep,
4588
		  	   package_versions pv
4589
		 WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtag_id )
4590
		   AND dep.pv_id = pv.pv_id;
4040 dpurdie 4591
 
4592
 
6999 dpurdie 4593
	/* Browse UP the build tree */
4594
	iteration := iteration + 1;
4595
    LOOP
6031 dpurdie 4596
 
6999 dpurdie 4597
		INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
4598
			SELECT DISTINCT
4599
			       sessionNum AS SESSION_NUM,
4600
			       iteration AS LEVEL_NUM,
4601
				   UP_THE_TREE AS DIRECTION,
4602
				   rdep.pv_id, rdep.pkg_id, rdep.v_ext
4603
			  FROM (
4604
			        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
4605
			          FROM package_dependencies dep,
4606
			               release_content rc,
4607
						   package_versions pv,
4608
						   package_versions dpv
4609
			         WHERE dep.pv_id = rc.pv_id
4610
			           AND rc.rtag_id = nRtag_id
4611
					   AND dep.pv_id = pv.pv_id
4612
					   AND dep.dpv_id = dpv.pv_id
4613
					) rdep,
4614
					temp_tree_browse ttb
4615
			 WHERE rdep.dpkg_id  = ttb.pkg_id
4616
			   AND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext,'|LINK_A_NULL|')
4617
			   AND ttb.SESSION_NUM = sessionNum
4618
			   AND ttb.LEVEL_NUM = iteration - 1
4619
			MINUS
4620
			/* Packages with all depencencies NOT matched */
4621
			SELECT DISTINCT
4622
			       sessionNum AS SESSION_NUM,
4623
			       iteration AS LEVEL_NUM,
4624
				   UP_THE_TREE AS DIRECTION,
4625
				   rdep.pv_id, rdep.pkg_id, rdep.v_ext
4626
			  FROM (
4627
			        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
4628
			          FROM package_dependencies dep,
4629
			               release_content rc,
4630
						   package_versions pv,
4631
						   package_versions dpv
4632
			         WHERE dep.pv_id = rc.pv_id
4633
			           AND rc.rtag_id = nRtag_id
4634
					   AND dep.pv_id = pv.pv_id
4635
					   AND dep.dpv_id = dpv.pv_id
4636
					) rdep,
4637
					(
4638
					 SELECT tb.*
4639
					   FROM temp_tree_browse tb
4640
					  WHERE tb.SESSION_NUM = sessionNum
4641
					) ttb
4642
			 WHERE rdep.dpkg_id  = ttb.pkg_id (+)
4643
			   AND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext (+),'|LINK_A_NULL|')
4644
			   AND ttb.SESSION_NUM IS NULL;
6031 dpurdie 4645
 
6999 dpurdie 4646
		rowCnt := SQL%ROWCOUNT;
4647
		IF rowCnt > 0 THEN
4648
           iteration := iteration + 1;
4649
		END IF;
4650
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
4651
    END LOOP;
4040 dpurdie 4652
 
6999 dpurdie 4653
	/*---------------------------------------------------------------------------------------------------------------------*/
4040 dpurdie 4654
 
6999 dpurdie 4655
	/*     Check for unresolved dependencies
4656
	||
4657
	*/
4658
	/* UNRESOLVED */
4659
	 SELECT COUNT(*) INTO rowCnt
4660
	   FROM (
4661
			 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
4662
			  FROM release_content rc,
4663
			  	   package_versions pv
4664
			 WHERE rc.rtag_id = nRtag_id
4665
			   AND rc.pv_id = pv.pv_id
4666
			MINUS
4667
			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
4668
			  FROM temp_tree_browse ttb
4669
			 WHERE ttb.session_num = sessionNum
4670
			);
6031 dpurdie 4671
 
4040 dpurdie 4672
 
4673
 
6999 dpurdie 4674
	 IF rowCnt > 0
4675
	 THEN
4676
	 	 /*     Circular dependencies detected.
4677
		 ||     Try to resolve build order from the top now.
4678
		 ||		Start DOWN THE TREE
4679
		 */
4040 dpurdie 4680
 
6999 dpurdie 4681
		iteration := 0;
4682
		 /* Top Level packages */
4683
		INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
4684
			SELECT sessionNum AS SESSION_NUM,
4685
			       iteration AS LEVEL_NUM,
4686
				   DOWN_THE_TREE AS DIRECTION,
4687
				   pv.pv_id, pv.pkg_id, pv.v_ext
4688
			  FROM (
4689
					/* Packages no one depends on ( Top level packages )*/
4690
					(
4691
					/* All parents*/
4692
					SELECT pv.pkg_id, pv.v_ext
4693
			          FROM package_dependencies dep,
4694
			               release_content rc,
4695
						   package_versions pv
4696
			         WHERE dep.pv_id = rc.pv_id
4697
			           AND rc.rtag_id = nRtag_id
4698
					   AND dep.pv_id = pv.pv_id
4699
					 MINUS
4700
					 /* All children */
4701
					SELECT dpv.pkg_id, dpv.v_ext
4702
			          FROM package_dependencies dep,
4703
			               release_content rc,
4704
						   package_versions dpv
4705
			         WHERE dep.pv_id = rc.pv_id
4706
			           AND rc.rtag_id = nRtag_id
4707
					   AND dep.dpv_id = dpv.pv_id
4708
					 )
4709
					 MINUS
4710
					/* Packages with resolved dependencies from UP THE TREE */
4711
					SELECT ttb.pkg_id, ttb.v_ext
4712
					  FROM temp_tree_browse ttb
4713
					 WHERE ttb.session_num = sessionNum
4714
				  ) tpkg,
4715
				  package_versions pv,
4716
				  release_content rc
4717
			WHERE rc.rtag_id = nRtag_id
4718
			  AND rc.pv_id = pv.pv_id
4719
			  AND tpkg.pkg_id = pv.pkg_id
4720
			  AND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');
4040 dpurdie 4721
 
6999 dpurdie 4722
 
4723
		 /* Keep taking packages which no one depende on */
4724
		 iteration := iteration - 1;
4725
		 LOOP
4726
			   INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
4727
					SELECT sessionNum AS SESSION_NUM,
4728
					       iteration AS LEVEL_NUM,
4729
					       DOWN_THE_TREE AS DIRECTION,
4730
					       pv.pv_id, pv.pkg_id, pv.v_ext
4731
					  FROM (
4732
					 	/* All Unresolved */
4733
					 	(
4734
					 	SELECT pv.pkg_id, pv.v_ext
4735
					 	  FROM release_content rc,
4736
					 	  	   package_versions pv
4737
					 	 WHERE rc.rtag_id = nRtag_id
4738
					 	   AND rc.pv_id = pv.pv_id
4739
					 	MINUS
4740
					 	SELECT ttb.pkg_id, ttb.v_ext
4741
					 	  FROM temp_tree_browse ttb
4742
					 	 WHERE ttb.session_num = sessionNum
4743
					 	)
4744
					 	 MINUS
4745
					 	(
4746
					 	 /* Children of Unresolved */
4747
					 	SELECT dpv.pkg_id, dpv.V_EXT
4748
					 	  FROM (
4749
					 			SELECT pv.pv_id, pv.pkg_id, pv.v_ext
4750
					 			  FROM release_content rc,
4751
					 			  	   package_versions pv
4752
					 			 WHERE rc.rtag_id = nRtag_id
4753
					 			   AND rc.pv_id = pv.pv_id
4754
					 			MINUS
4755
					 			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
4756
					 			  FROM temp_tree_browse ttb
4757
					 			 WHERE ttb.session_num = sessionNum
4758
					 		   ) unr,
4759
					 		   package_dependencies dep,
4760
					 		   package_versions dpv
4761
					 	 WHERE unr.pv_id = dep.pv_id
4762
					 	   AND dep.dpv_id = dpv.pv_id
4763
					 	 )
4764
					   ) tpkg,
4765
					   package_versions pv,
4766
					   release_content rc
4767
					WHERE rc.rtag_id = nRtag_id
4768
					  AND rc.pv_id = pv.pv_id
4769
					  AND tpkg.pkg_id = pv.pkg_id
4770
					  AND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');
4771
 
4772
            rowCnt := SQL%ROWCOUNT;
4773
        	IF rowCnt > 0 THEN
4774
	           iteration := iteration - 1;
4775
			END IF;
4776
            EXIT WHEN (rowCnt < 1);
4777
     	END LOOP;
4778
 
4779
	 END IF;
4780
 
4781
 
4782
	/*---------------------------------------------------------------------------------------------------------------------*/
4783
 
4784
	/*
4785
	|| 	 Save results from temp table
4786
	*/
4787
	/* Clean up build_order table */
4788
	DELETE FROM BUILD_ORDER WHERE rtag_id = nRtag_id;
4789
 
4790
	/* Save UP THE TREE */
4791
	INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )
4792
		SELECT nRtag_id AS rtag_id,
4793
			   ttb.level_num AS step_num,
4794
			   ttb.PV_ID
4795
		  FROM temp_tree_browse ttb
4796
		 WHERE ttb.session_num = sessionNum
4797
		   AND ttb.direction = UP_THE_TREE;
4798
 
4799
	/*Get last step_num */
4800
	SELECT MAX(ttb.level_num) + 1 INTO levelNum
4801
	FROM temp_tree_browse ttb WHERE ttb.session_num = sessionNum AND ttb.DIRECTION = UP_THE_TREE;
4802
 
4803
	/* UNRESOLVED */
4804
	 SELECT COUNT(*) INTO rowCnt
4805
	   FROM (
4806
			 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
4807
			  FROM release_content rc,
4808
			  	   package_versions pv
4809
			 WHERE rc.rtag_id = nRtag_id
4810
			   AND rc.pv_id = pv.pv_id
4811
			MINUS
4812
			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
4813
			  FROM temp_tree_browse ttb
4814
			 WHERE ttb.session_num = sessionNum
4815
			);
4816
 
4817
 
4818
	IF rowCnt > 0
4819
	THEN
4820
		/* Save unresolved packages */
4821
 		INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID, UNRESOLVED )
4822
		    SELECT  nRtag_id AS rtag_id,
4823
				    levelNum AS step_num,
4824
				    upv.PV_ID,
4825
					'Y' AS UNRESOLVED
4826
			   FROM (
4827
					 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
4828
					  FROM release_content rc,
4829
					  	   package_versions pv
4830
					 WHERE rc.rtag_id = nRtag_id
4831
					   AND rc.pv_id = pv.pv_id
4832
					MINUS
4833
					SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
4834
					  FROM temp_tree_browse ttb
4835
					 WHERE ttb.session_num = sessionNum
4836
					) upv;
4837
	END IF;
4838
 
4839
	/* Save DOWN THE TREE */
4840
	levelNum := 1000;
4841
	INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )
4842
		SELECT nRtag_id AS rtag_id,
4843
			   levelNum + ttb.level_num  AS step_num,
4844
			   ttb.PV_ID
4845
		  FROM temp_tree_browse ttb
4846
		 WHERE ttb.session_num = sessionNum
4847
		   AND ttb.direction = DOWN_THE_TREE;
4848
 
4849
 
4850
	/*---------------------------------------------------------------------------------------------------------------------*/
4851
 
4852
	/* Clean up temp table */
4853
	DELETE FROM TEMP_TREE_BROWSE WHERE session_num = sessionNum;
4854
 
4855
	retSessionNum := sessionNum;
4856
END Build_Tree;
4857
 
4858
/
4040 dpurdie 4859
--------------------------------------------------------
6999 dpurdie 4860
--  DDL for Procedure CHANGE_PACKAGE_STATE
4040 dpurdie 4861
--------------------------------------------------------
6999 dpurdie 4862
set define off;
4040 dpurdie 4863
 
6999 dpurdie 4864
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHANGE_PACKAGE_STATE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
4865
											 nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS
4866
/* ---------------------------------------------------------------------------
4867
    Version: 4.0
4868
   --------------------------------------------------------------------------- */
4869
 
4870
BEGIN
4871
 
4872
    -- Unlock Package
4873
    UPDATE RELEASE_CONTENT rc SET
4874
    	rc.PKG_STATE = 0
4875
    WHERE rc.PV_ID = nPvId
4876
	AND rc.RTAG_ID = nRtagId;
4877
 
4878
    /* LOG ACTION */
4879
   /*	Log_Action ( nPvId, 'unlock_package', nUserId );*/
4880
 
4881
END Change_Package_State;
4882
 
4883
/
4040 dpurdie 4884
--------------------------------------------------------
6999 dpurdie 4885
--  DDL for Procedure CHANGE_RELEASE_MODE
4040 dpurdie 4886
--------------------------------------------------------
6999 dpurdie 4887
set define off;
4040 dpurdie 4888
 
6999 dpurdie 4889
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHANGE_RELEASE_MODE" ( nModeCode IN NUMBER, nRtagId IN NUMBER, UserId IN NUMBER ) IS
4890
/* ---------------------------------------------------------------------------
4891
    Version: 3.0.0
4892
   --------------------------------------------------------------------------- */
5172 dpurdie 4893
 
6999 dpurdie 4894
	cMode CHAR(1) := NULL;
4895
	nProjId NUMBER;
4896
 
4897
BEGIN
4898
 
4899
 
4900
	/*
4901
	Author: Rupesh Solanki
4902
	Modified: 24th October 2006
4903
	Reason: Added the archive mode state into Release Manager
4904
	||	1 - Open Mode
4905
	||	2 - Restrictive Mode
4906
	||	3 - Closed Mode
4907
	||	4 - CCB Mode
4908
	||	5 - Archive Mode
4909
  ||  6 - Preserve Mode
4910
	*/
4911
	-- Get project Id
4912
	SELECT rt.PROJ_ID INTO nProjId
4913
	  FROM RELEASE_TAGS rt
4914
	 WHERE rt.RTAG_ID = nRtagId;
4915
 
4916
	IF nModeCode = 1 THEN
4917
		-- Open Mode
4918
		cMode := 'N';
4919
 
4920
		/* LOG ACTION */
4921
   		Log_Project_Action ( nProjId, 'set_to_open_mode', UserId, 'Release is set to Open Mode', nRtagId );
4922
 
4923
	ELSIF nModeCode = 2 THEN
4924
		-- Restrictive Mode
4925
		cMode := 'R';
4926
 
4927
		/* LOG ACTION */
4928
   		Log_Project_Action ( nProjId, 'set_to_restrictive_mode', UserId, 'Release is set to Restrictive Mode', nRtagId );
4929
 
4930
	ELSIF nModeCode = 3 THEN
4931
		-- Closed Mode
4932
		cMode := 'Y';
4933
 
4934
		/* LOG ACTION */
4935
   		Log_Project_Action ( nProjId, 'set_to_closed_mode', UserId, 'Release is set to Closed Mode', nRtagId  );
4936
 
4937
	ELSIF nModeCode = 4 THEN
4938
		-- CCB Mode
4939
		cMode := 'C';
4940
 
4941
		/* LOG ACTION */
4942
   		Log_Project_Action ( nProjId, 'set_to_ccb_mode', UserId, 'Release is set to CCB Mode', nRtagId  );
4943
 
4944
	ELSIF nModeCode = 5 THEN
4945
		-- Archive Mode
4946
		cMode := 'A';
4947
 
4948
		/* LOG ACTION */
4949
   		Log_Project_Action ( nProjId, 'set_to_archive_mode', UserId, 'Release is set to Archive Mode', nRtagId  );
4950
 
4951
  ELSIF nModeCode = 6 THEN
4952
		-- Archive Mode
4953
		cMode := 'P';
4954
 
4955
		/* LOG ACTION */
4956
   		Log_Project_Action ( nProjId, 'set_to_archive_mode', UserId, 'Release is set to Preserve Mode', nRtagId  );
4957
	END IF;
4958
 
4959
 
4960
 
4961
	-- Now update table
4962
	IF NOT cMode IS NULL THEN
4963
		UPDATE RELEASE_TAGS rt SET
4964
		rt.OFFICIAL = cMode,
4965
    rt.OFFICIAL_STAMP = ORA_SYSDATETIME,
4966
    rt.OFFICIAL_ID = UserId
4967
		WHERE rt.RTAG_ID = nRtagId;
4968
 
4969
	END IF;
4970
 
4971
 
4972
END CHANGE_RELEASE_MODE;
4973
 
4974
/
4040 dpurdie 4975
--------------------------------------------------------
6999 dpurdie 4976
--  DDL for Procedure CHECK_NEW_PATCHES
4040 dpurdie 4977
--------------------------------------------------------
6999 dpurdie 4978
set define off;
4040 dpurdie 4979
 
6999 dpurdie 4980
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHECK_NEW_PATCHES" (
4981
   nrtagid   IN   release_content.rtag_id%TYPE
4982
)
4983
IS
4984
/* ---------------------------------------------------------------------------
4985
    Version: 3.0
4986
   --------------------------------------------------------------------------- */
4987
BEGIN
4988
   /*--------------- Business Rules Here -------------------*/
4989
   /*IF nRtagId NOT IN (SELECT RTAG_ID FROM RELEASE_TAGS ) THEN
4990
      RAISE_APPLICATION_ERROR (-20000, 'Please contact the person in charge of Release Manager now.' );
4991
   END IF
4992
 
4993
   /*-------------------------------------------------------*/
4994
   UPDATE release_content rc
4995
      SET rc.pkg_state = 5                          -- enumPKG_STATE_NEW_PATCH
4996
    WHERE rc.pv_id IN (
4997
             SELECT prod.pv_id
4998
               FROM (SELECT   pp.pv_id AS orig_parent_id,
4999
                              COUNT (*) AS num_of_patches
5000
                         FROM release_content rc, package_patches pp
5001
                        WHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagid
5002
                     GROUP BY pp.pv_id) orig,
5003
                    (SELECT   prodpp.pv_id, pp.pv_id AS parent_id,
5004
                              COUNT (*) AS num_of_patches
5005
                         FROM release_content rc,
5006
                              package_patches pp,
5007
                              package_dependencies dep,
5008
                              package_versions pv,
5009
                              package_patches prodpp
5010
                        WHERE rc.pv_id = pp.pv_id
5011
                          AND rc.rtag_id = nrtagid
5012
                          AND pp.patch_id = dep.dpv_id
5013
                          AND dep.pv_id = pv.pv_id
5014
                          AND pv.is_patch = 'Y'
5015
                          AND pv.dlocked = 'Y'
5016
                          AND prodpp.patch_id = dep.pv_id
5017
                     GROUP BY prodpp.pv_id, pp.pv_id) prod,
5018
                    release_content rc
5019
              WHERE orig.orig_parent_id = prod.pv_id
5020
                AND orig.num_of_patches != prod.num_of_patches
5021
                AND rc.rtag_id = nrtagid
5022
                AND rc.pv_id = prod.pv_id
5023
                AND rc.pkg_state = 0
5024
             UNION
5025
             SELECT   prodpp.pv_id
5026
                 FROM release_content rc,
5027
                      package_patches pp,
5028
                      package_dependencies dep,
5029
                      package_versions pv,
5030
                      package_patches prodpp
5031
                WHERE rc.pv_id = pp.pv_id
5032
                  AND rc.rtag_id = nrtagid
5033
                  AND pp.patch_id = dep.dpv_id
5034
                  AND dep.pv_id = pv.pv_id
5035
                  AND pv.is_patch = 'Y'
5036
                  AND pv.dlocked = 'Y'
5037
                  AND prodpp.patch_id = dep.pv_id
5038
             GROUP BY prodpp.pv_id, pp.pv_id
5039
             MINUS
5040
             SELECT   pp.pv_id
5041
                 FROM release_content rc, package_patches pp
5042
                WHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagid
5043
             GROUP BY pp.pv_id);
5044
END check_new_patches;
5045
 
5046
/
4040 dpurdie 5047
--------------------------------------------------------
6999 dpurdie 5048
--  DDL for Procedure CLEAN_ADVISORY_RIPPLE
4040 dpurdie 5049
--------------------------------------------------------
6999 dpurdie 5050
set define off;
4040 dpurdie 5051
 
6999 dpurdie 5052
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAN_ADVISORY_RIPPLE" (nrtagid IN NUMBER)
5053
IS
5054
/******************************************************************************
5055
   NAME:       clean_advisory_ripple
5892 dpurdie 5056
 
6999 dpurdie 5057
   PURPOSE:    To delete entries from the advisory_ripple table based upon
5058
               an RTAG_ID only
5059
 
5060
               This is a tidy-up operation performed against the advisory_ripple
5061
               table, ensuring that the table does not have rtag_id/pv_id
5062
               combinations that cannot be found in the release's wip/pending/release
5063
               tabs.
5064
 
5065
******************************************************************************/
5066
BEGIN
5067
   -- Delete any invalid rtag_id/pv_id combination from the advisory_ripple table.
5068
   -- An invalid rtag_id/pv_id combination is one that cannot be found in the
5069
   -- work_in_progress, planned, or release_content table.
5070
   -- NOTE: Planned operations that represent pending additive/subtractive merge
5071
   -- operations are ignored because they have not been approved yet and so
5072
   -- cannot be said to be "in the release".
5073
   DELETE FROM advisory_ripple
5074
         WHERE rtag_id = nrtagid
5075
           AND pv_id not in
5076
               ((SELECT pv_id FROM release_content WHERE rtag_id = nrtagid)
5077
                 UNION
5078
                (SELECT pv_id FROM work_in_progress WHERE rtag_id = nrtagid)
5079
                 UNION
5080
                (SELECT pv_id FROM planned WHERE rtag_id = nrtagid AND (operation is null OR operation = 'R'))
5081
               );
5082
END clean_advisory_ripple;
5083
 
5084
/
4040 dpurdie 5085
--------------------------------------------------------
6999 dpurdie 5086
--  DDL for Procedure CLEAN_DO_NOT_RIPPLE
4040 dpurdie 5087
--------------------------------------------------------
6999 dpurdie 5088
set define off;
4040 dpurdie 5089
 
6999 dpurdie 5090
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAN_DO_NOT_RIPPLE" (nrtagid IN NUMBER)
5091
IS
5092
/******************************************************************************
5093
   NAME:       clean_do_not_ripple
5094
 
5095
   PURPOSE:    To delete entries from the do_not_ripple table based upon
5096
               an RTAG_ID only
5097
 
5098
               This is a tidy-up operation performed against the do_not_ripple
5099
               table, ensuring that the table does not have rtag_id/pv_id
5100
               combinations that cannot be found in the release's wip/pending/release
5101
               tabs.
5102
 
5103
******************************************************************************/
5104
BEGIN
5105
   -- Delete any invalid rtag_id/pv_id combination from the do_not_ripple table.
5106
   -- An invalid rtag_id/pv_id combination is one that cannot be found in the
5107
   -- work_in_progress, planned, or release_content table.
5108
   -- NOTE: Planned operations that represent pending additive/subtractive merge
5109
   -- operations are ignored because they have not been approved yet and so
5110
   -- cannot be said to be "in the release".
5111
   DELETE FROM do_not_ripple
5112
         WHERE rtag_id = nrtagid
5113
           AND pv_id not in
5114
               ((SELECT pv_id FROM release_content WHERE rtag_id = nrtagid)
5115
                 UNION
5116
                (SELECT pv_id FROM work_in_progress WHERE rtag_id = nrtagid)
5117
                 UNION
5118
                (SELECT pv_id FROM planned WHERE rtag_id = nrtagid AND (operation is null OR operation = 'R'))
5119
               );
5120
END clean_do_not_ripple;
5121
 
5122
/
4040 dpurdie 5123
--------------------------------------------------------
6999 dpurdie 5124
--  DDL for Procedure CLEAR_ADVISORY_RIPPLE
4040 dpurdie 5125
--------------------------------------------------------
6999 dpurdie 5126
set define off;
4040 dpurdie 5127
 
6999 dpurdie 5128
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAR_ADVISORY_RIPPLE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
5129
	   	  		  							   nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
5130
											 nUserId IN NUMBER ) IS
5131
/* ---------------------------------------------------------------------------
5132
    Version: 4.0
5133
   --------------------------------------------------------------------------- */
5134
 
5135
BEGIN
5136
 
5137
    -- Clear Advisory Ripple Package
5138
    DELETE FROM ADVISORY_RIPPLE
5139
	WHERE PV_ID = nPvId
5140
	AND RTAG_ID = nRtagId;
5141
 
5142
    /* LOG ACTION */
5143
   	Log_Action ( nPvId, 'clear_advisory_ripple', nUserId );
5144
 
5145
	/*Rebuild_Environment(nRtagId);*/
5146
 
5147
END Clear_Advisory_Ripple;
5148
 
5149
/
4040 dpurdie 5150
--------------------------------------------------------
6999 dpurdie 5151
--  DDL for Procedure CLONED_PACKAGE_PROCESSES
4040 dpurdie 5152
--------------------------------------------------------
6999 dpurdie 5153
set define off;
4040 dpurdie 5154
 
6999 dpurdie 5155
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLONED_PACKAGE_PROCESSES" 
5156
IS
5157
 
5158
proc_id NUMBER;
5159
/******************************************************************************
5160
   NAME:       DELETE_DO_NOT_RIPPLE
5161
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
5162
               IS RELEASED
5163
 
5164
   REVISIONS:
5165
   Ver        Date        Author           Description
5166
   ---------  ----------  ---------------  ------------------------------------
5167
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
5168
 
5169
   NOTES:
5170
 
5171
   Automatically available Auto Replace Keywords:
5172
      Object Name:     DELETE_DO_NOT_RIPPLE
5173
      Sysdate:         21/04/2006
5174
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
5175
      Username:         (set in TOAD Options, Procedure Editor)
5176
      Table Name:       (set in the "New PL/SQL Object" dialog)
5177
 
5178
******************************************************************************/
5179
   CURSOR ripple_cur
5180
   IS
5181
      select distinct proc_id, prod_id from deployment_manager.processes_config;
5182
 
5183
   ripple_rec   ripple_cur%ROWTYPE;
5184
BEGIN
5185
   OPEN ripple_cur;
5186
 
5187
   FETCH ripple_cur
5188
    INTO ripple_rec;
5189
 
5190
   WHILE ripple_cur%FOUND
5191
   LOOP
5192
 
5193
 
5194
 
5195
insert into package_processes (PROC_ID, PV_ID)
5196
values( ripple_rec.proc_id, ripple_rec.prod_id);
5197
 
5198
      FETCH ripple_cur
5199
       INTO ripple_rec;
5200
   END LOOP;
5201
END CLONED_PACKAGE_PROCESSES;
5202
 
5203
/
4040 dpurdie 5204
--------------------------------------------------------
6999 dpurdie 5205
--  DDL for Procedure CLONED_PROCESSES
4040 dpurdie 5206
--------------------------------------------------------
6999 dpurdie 5207
set define off;
4040 dpurdie 5208
 
6999 dpurdie 5209
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLONED_PROCESSES" 
5210
IS
5211
 
5212
proc_id NUMBER;
5213
/******************************************************************************
5214
   NAME:       DELETE_DO_NOT_RIPPLE
5215
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
5216
               IS RELEASED
5217
 
5218
   REVISIONS:
5219
   Ver        Date        Author           Description
5220
   ---------  ----------  ---------------  ------------------------------------
5221
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
5222
 
5223
   NOTES:
5224
 
5225
   Automatically available Auto Replace Keywords:
5226
      Object Name:     DELETE_DO_NOT_RIPPLE
5227
      Sysdate:         21/04/2006
5228
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
5229
      Username:         (set in TOAD Options, Procedure Editor)
5230
      Table Name:       (set in the "New PL/SQL Object" dialog)
5231
 
5232
******************************************************************************/
5233
   CURSOR ripple_cur
5234
   IS
5235
      select distinct pkg_health_tag, cmd_interface, pkg_owner, is_interface from deployment_manager.processes_config;
5236
 
5237
   ripple_rec   ripple_cur%ROWTYPE;
5238
BEGIN
5239
   OPEN ripple_cur;
5240
 
5241
   FETCH ripple_cur
5242
    INTO ripple_rec;
5243
 
5244
   WHILE ripple_cur%FOUND
5245
   LOOP
5246
 
5247
   select deployment_manager.seq_proc_id.nextval into proc_id from dual;
5248
 
5249
insert into processes (PROC_ID, PROC_NAME, RUN_AS, PKG_OWNER, IS_INTERFACE)
5250
values(proc_id, ripple_rec.pkg_health_tag, ripple_rec.cmd_interface, ripple_rec.pkg_owner, ripple_rec.is_interface);
5251
 
5252
      FETCH ripple_cur
5253
       INTO ripple_rec;
5254
   END LOOP;
5255
END CLONED_PROCESSES;
5256
 
5257
/
4040 dpurdie 5258
--------------------------------------------------------
6999 dpurdie 5259
--  DDL for Procedure DELETE_AUTOBUILD_FAILURE_INFO
4040 dpurdie 5260
--------------------------------------------------------
6999 dpurdie 5261
set define off;
4040 dpurdie 5262
 
6999 dpurdie 5263
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DELETE_AUTOBUILD_FAILURE_INFO" 
5264
IS
5265
/******************************************************************************
5266
   NAME:       DELETE_AUTOBUILD_FAILURE_INFO
5267
   PURPOSE:
5268
 
5269
   REVISIONS:
5270
   Ver        Date        Author           Description
5271
   ---------  ----------  ---------------  ------------------------------------
5272
   1.0        2/06/2006    Rupesh Solanki      1. Created this procedure.
5273
 
5274
   NOTES:
5275
 
5276
   Automatically available Auto Replace Keywords:
5277
      Object Name:     DELETE_AUTOBUILD_FAILURE_INFO
5278
      Sysdate:         2/06/2006
5279
      Date and Time:   2/06/2006, 8:44:25 AM, and 2/06/2006 8:44:25 AM
5280
      Username:         (set in TOAD Options, Procedure Editor)
5281
      Table Name:       (set in the "New PL/SQL Object" dialog)
5282
 
5283
******************************************************************************/
5284
BEGIN
5285
   DELETE FROM autobuild_failure
5286
         WHERE group_email_id NOT IN (SELECT group_email_id
5287
                                        FROM members_group);
5288
END delete_autobuild_failure_info;
5289
 
5290
/
4040 dpurdie 5291
--------------------------------------------------------
6999 dpurdie 5292
--  DDL for Procedure DEPRECATE_PACKAGE
4040 dpurdie 5293
--------------------------------------------------------
6999 dpurdie 5294
set define off;
4040 dpurdie 5295
 
6999 dpurdie 5296
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DEPRECATE_PACKAGE" (
5297
    nPvId     IN PACKAGE_VERSIONS.PV_ID%TYPE,
5298
    nRtagId   IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,
5299
    nPkgId    IN DEPRECATED_PACKAGES.PKG_ID%TYPE,
5300
    sComments IN DEPRECATED_PACKAGES.COMMENTS%TYPE,
5301
    nUserId   IN NUMBER)
5302
IS
5303
  ext VARCHAR2(50);
5304
BEGIN
5305
  --Extract the package version extension
5306
  SELECT V_EXT INTO ext
5307
  FROM PACKAGE_VERSIONS
5308
  WHERE PV_ID = nPvId;
5309
 
5310
  -- Deprecate Package
5311
  INSERT INTO DEPRECATED_PACKAGES
5312
    ( RTAG_ID, PKG_ID, COMMENTS, V_EXT )
5313
    VALUES ( nRtagId, nPkgId, sComments, ext );
5314
 
5315
  -- Update Release Contents entry
5316
  -- Process PackageName.ext for the package. ie: Allow multiple
5317
  -- versions of the package to be in the release.
5318
    UPDATE RELEASE_CONTENT
5319
    SET
5320
      DEPRECATED_STATE = 6
5321
    WHERE RTAG_ID      = nRtagId
5322
    AND PV_ID IN (
5323
      SELECT PV.PV_ID
5324
      FROM PACKAGE_VERSIONS PV
5325
      WHERE PV.PKG_ID   = nPkgId
5326
      AND NVL(PV.V_EXT, '.NULL') = NVL(ext,'.NULL')
5327
      );
5328
 
5329
  -- Update consumers of the package
5330
  --  Update ALL packages in the Release
5331
 
5332
  REBUILD_DEPRECATE_STATE(nRtagId);
5333
 
5334
  /* LOG ACTION */
5335
  /*Log_Action ( nPkgId, 'deprecated_package', nUserId );*/
5336
END Deprecate_Package;
5337
 
5338
/
4040 dpurdie 5339
--------------------------------------------------------
6999 dpurdie 5340
--  DDL for Procedure DT_DROPUSEROBJECTBYID
4040 dpurdie 5341
--------------------------------------------------------
6999 dpurdie 5342
set define off;
4040 dpurdie 5343
 
6999 dpurdie 5344
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DT_DROPUSEROBJECTBYID" ( PARAM_ID IN NUMBER ) AS BEGIN DELETE FROM MICROSOFTDTPROPERTIES WHERE OBJECTID = PARAM_ID; END DT_DROPUSEROBJECTBYID;
5345
 
5346
/
4040 dpurdie 5347
--------------------------------------------------------
6999 dpurdie 5348
--  DDL for Procedure DT_SETPROPERTYBYID
4040 dpurdie 5349
--------------------------------------------------------
6999 dpurdie 5350
set define off;
4040 dpurdie 5351
 
6999 dpurdie 5352
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DT_SETPROPERTYBYID" (
5353
    PARAM_ID       IN NUMBER,
5354
    PARAM_PROPERTY IN VARCHAR2,
5355
    PARAM_VALUE    IN VARCHAR2,
5356
    PARAM_LVALUE   IN LONG RAW )
5357
AS
5358
BEGIN
5359
  DECLARE
5360
    X NUMBER(38);
5361
  BEGIN
5362
    SELECT COUNT(*)
5363
    INTO X
5364
    FROM MICROSOFTDTPROPERTIES
5365
    WHERE OBJECTID=PARAM_ID
5366
    AND PROPERTY  =PARAM_PROPERTY;
5367
    IF X          = 0 THEN
5368
      INSERT
5369
      INTO MICROSOFTDTPROPERTIES
5370
        (
5371
          ID,
5372
          PROPERTY,
5373
          OBJECTID,
5374
          VALUE,
5375
          LVALUE,
5376
          VERSION
5377
        )
5378
        VALUES
5379
        (
5380
          MICROSOFTSEQDTPROPERTIES.NEXTVAL,
5381
          PARAM_PROPERTY,
5382
          PARAM_ID,
5383
          PARAM_VALUE,
5384
          PARAM_LVALUE,
5385
 
5386
        );
5387
    ELSE
5388
      UPDATE MICROSOFTDTPROPERTIES
5389
      SET VALUE     =PARAM_VALUE,
5390
        LVALUE      =PARAM_LVALUE,
5391
        VERSION     =VERSION+1
5392
      WHERE OBJECTID=PARAM_ID
5393
      AND PROPERTY  =PARAM_PROPERTY;
5394
    END IF;
5395
  END;
5396
END DT_SETPROPERTYBYID;
5397
 
5398
/
4040 dpurdie 5399
--------------------------------------------------------
6999 dpurdie 5400
--  DDL for Procedure IGNORE_DEPENDENCY_WARNINGS
4040 dpurdie 5401
--------------------------------------------------------
6999 dpurdie 5402
set define off;
4040 dpurdie 5403
 
6999 dpurdie 5404
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."IGNORE_DEPENDENCY_WARNINGS" ( nRtagId IN IGNORE_WARNINGS.RTAG_ID%TYPE,
5405
                                                         nPvId IN IGNORE_WARNINGS.PV_ID%TYPE,
5406
                                                         sIgnoreIdList IN VARCHAR2,
5407
                                                         bDoPatchIgnore IN BOOLEAN DEFAULT FALSE,
5408
                                                         nUserId IN NUMBER DEFAULT NULL ) IS
5409
/* ---------------------------------------------------------------------------
5410
    Updates the ignore warnings table - this is really two functions in one.
5411
 
5412
    1) One function updates the table based on a list of dependent PV_IDs and a parent PV_ID
5413
       and is called from the RM website's SetIgnoreWarnings() function after a user changes
5414
       the ignore warnings checkboxes and submits the form.
5415
       This can (at time of writing this) only be done within releases that are not build
5416
       daemon enabled. The ignore warnings feature is a feature we would like to see the end
5417
       of in an ideal world.
5418
       The SetIgnoreWarnings() website function now calls Touch_Release so there is no need to
5419
       do so in this stored procedure, thereby making this stored procedure much more precise in
5420
       that it only updates the ignore_warnings table (action log table too although that is just
5421
       a log and doesn't affect any subsequent business rules behaviour) and it cares nothing
5422
       about website presentation layer states, etc.
5423
 
5424
    2) The other function updates the table for out of sync dependencies that have in fact
5425
       been satisfied by patches made to some other product in the release.
5426
       This seems to be a seldom used feature in current projects.
5427
       It is probably the most often taken path through this function given that it occurs when
5428
       this function is called from Rebuild_Environment, and that is called in many circumstances
5429
       from the RM website whenever the seems to be a possibility that the state of a package
5430
       in a release might have changed and therefore affects the state of other packages in
5431
       that same release.
5432
 
5433
    Parameter Usage:
5434
                        when called from    | when called from
5435
                        Rebuild_Environment | SetIgnoreWarnings()
5436
                        stored procedure.   | in the Website
5437
      --------------------------------------+----------------------------
5438
      nRtagId           RTAG_ID             | RTAG_ID
5439
      nPvId             NULL                | PV_ID
5440
      sIgnoreIdList     NULL                | list of dependent PV_ID's
5441
      bDoPatchIgnore    TRUE                | FALSE
5442
      nUserId           NULL                | current user ID
5443
   --------------------------------------------------------------------------- */
5444
 
5445
oIgnoreIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
5446
ReleaseLocation VARCHAR2(4000);
5447
ActionTypeId NUMBER;
5448
 
5449
BEGIN
5450
 
5451
   IF (NOT bDoPatchIgnore) THEN
5452
      /* Manual Ignore Warnings - this execution path is the one taken when called from SetIgnoreWarnings() in the Website
5453
      */
5454
      oIgnoreIdCollector := IN_LIST_NUMBER ( sIgnoreIdList );
5455
 
5456
 
5457
      /* Log Action */
5458
      -- Get Release Location
5459
      SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
5460
        FROM PROJECTS proj,
5461
             RELEASE_TAGS rt
5462
       WHERE rt.PROJ_ID = proj.PROJ_ID
5463
         AND rt.RTAG_ID = nRtagId;
5464
 
5465
      -- Get Action Type Id for IGNORE_ON
5466
      SELECT act.ACTTYPE_ID INTO ActionTypeId
5467
        FROM ACTION_TYPE act
5468
       WHERE act.NAME = 'ignore_on';
5469
 
5470
      -- Get Ignored (Current MINUS Old)
5471
      INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
5472
      SELECT nUserId, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeId
5473
        FROM (
5474
              SELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_ID
5475
                FROM PACKAGE_VERSIONS pv
5476
               WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
5477
              MINUS
5478
              SELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_ID
5479
                FROM IGNORE_WARNINGS igw
5480
               WHERE igw.RTAG_ID = nRtagId
5481
                 AND igw.PV_ID = nPvId
5482
             ) qry,
5483
             PACKAGE_VERSIONS pv,
5484
             PACKAGES pkg,
5485
             RELEASE_CONTENT rc,
5486
             PACKAGE_VERSIONS rpv
5487
       WHERE pv.PKG_ID = pkg.PKG_ID
5488
         AND rc.RTAG_ID = nRtagId
5489
         AND rc.PV_ID = rpv.PV_ID
5490
         AND rpv.PKG_ID = pv.PKG_ID
5491
         AND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )
5492
         AND qry.DPV_ID = pv.PV_ID;
5493
 
5494
 
5495
      -- Get Action Type Id for IGNORE_OFF
5496
      SELECT act.ACTTYPE_ID INTO ActionTypeId
5497
        FROM ACTION_TYPE act
5498
       WHERE act.NAME = 'ignore_off';
5499
 
5500
      -- Get UnIgnored (Old MINUS Current)
5501
      INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
5502
      SELECT nUserId, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeId
5503
        FROM (
5504
              SELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_ID
5505
                FROM IGNORE_WARNINGS igw
5506
               WHERE igw.RTAG_ID = nRtagId
5507
                 AND igw.PV_ID = nPvId
5508
              MINUS
5509
              SELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_ID
5510
                FROM PACKAGE_VERSIONS pv
5511
               WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
5512
             ) qry,
5513
             PACKAGE_VERSIONS pv,
5514
             PACKAGES pkg,
5515
             RELEASE_CONTENT rc,
5516
             PACKAGE_VERSIONS rpv
5517
       WHERE pv.PKG_ID = pkg.PKG_ID
5518
         AND rc.RTAG_ID = nRtagId
5519
         AND rc.PV_ID = rpv.PV_ID
5520
         AND rpv.PKG_ID = pv.PKG_ID
5521
         AND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )
5522
         AND qry.DPV_ID = pv.PV_ID;
5523
 
5524
 
5525
      -- Delete Current Ignore Warnings
5526
      DELETE
5527
        FROM IGNORE_WARNINGS igw
5528
       WHERE igw.RTAG_ID = nRtagId
5529
         AND igw.PV_ID = nPvId
5530
         AND igw.IS_PATCH_IGNORE IS NULL;
5531
 
5532
 
5533
      IF (oIgnoreIdCollector.COUNT > 0) THEN
5534
         -- Insert Ignore Warnings
5535
         INSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID )
5536
         SELECT nRtagId,
5537
                nPvId,
5538
                pv.PV_ID AS DPV_ID
5539
           FROM PACKAGE_VERSIONS pv
5540
          WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
5541
      END IF;
5542
 
5543
   ELSE
5544
      /* Patch Ignore Warnings - this execution path is the one taken when called from the Rebuild_Environment stored procedure */
5545
 
5546
      -- Delete Current Patch Ignore Warnings
5547
      DELETE
5548
        FROM IGNORE_WARNINGS igw
5549
       WHERE igw.RTAG_ID = nRtagId
5550
         AND igw.IS_PATCH_IGNORE = 'Y';
5551
 
5552
 
5553
      -- Delete Manual Ignores that need to be Patch Ignores
5554
      DELETE
5555
        FROM IGNORE_WARNINGS igw
5556
       WHERE ( RTAG_ID, PV_ID, DPV_ID ) IN
5557
             (
5558
              SELECT DISTINCT
5559
                     nRtagId,
5560
                     err.PV_ID,
5561
                     err.ERR_DPV AS DPV_ID
5562
               FROM  (
5563
                      /* Full Release Contents used for reference*/
5564
                      SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext
5565
                        FROM release_content rel, package_versions rpv
5566
                       WHERE rel.pv_id = rpv.pv_id
5567
                         AND rtag_id = nRtagId
5568
                     ) frc,
5569
                     (
5570
                      /* DPV_IDs not fount in release*/
5571
                      SELECT dep.pv_id, dep.dpv_id AS err_dpv
5572
                        FROM package_dependencies dep
5573
                       WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
5574
                         AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
5575
                     ) err,
5576
                     (
5577
                      SELECT DISTINCT pp.PV_ID, dep.DPV_ID
5578
                        FROM PACKAGE_PATCHES pp,
5579
                             PACKAGE_DEPENDENCIES dep,
5580
                             RELEASE_CONTENT rc
5581
                       WHERE rc.RTAG_ID = nRtagId
5582
                         AND rc.PV_ID = pp.PV_ID
5583
                         AND dep.PV_ID = pp.PATCH_ID
5584
                     ) pp,
5585
                     package_versions errpkg,
5586
                     package_versions errpv
5587
               WHERE err.err_dpv = errpv.pv_id
5588
                 AND errpv.pkg_id = frc.pkg_id(+)
5589
                 AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
5590
                 AND err.pv_id = errpkg.pv_id
5591
                 AND err.PV_ID = pp.PV_ID
5592
                 AND frc.PV_ID = pp.DPV_ID
5593
             );
5594
 
5595
      /*
5596
      ---------------------------------------------------
5597
      --  Make sure that select statement above and below are same
5598
      ---------------------------------------------------
5599
      */
5600
 
5601
      -- Insert Patch Ignores
5602
      INSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE )
5603
      SELECT DISTINCT
5604
             nRtagId,
5605
             err.PV_ID,
5606
             err.ERR_DPV AS DPV_ID,
5607
             'Y'
5608
        FROM (
5609
              /* Full Release Contents used for reference*/
5610
              SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext
5611
                FROM release_content rel, package_versions rpv
5612
               WHERE rel.pv_id = rpv.pv_id
5613
                 AND rtag_id = nRtagId
5614
             ) frc,
5615
             (
5616
               /* DPV_IDs not fount in release*/
5617
               SELECT dep.pv_id, dep.dpv_id AS err_dpv
5618
                 FROM package_dependencies dep
5619
                WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
5620
                  AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
5621
             ) err,
5622
             (
5623
              SELECT DISTINCT pp.PV_ID, dep.DPV_ID
5624
                FROM PACKAGE_PATCHES pp,
5625
                     PACKAGE_DEPENDENCIES dep,
5626
                     RELEASE_CONTENT rc
5627
               WHERE rc.RTAG_ID = nRtagId
5628
                 AND rc.PV_ID = pp.PV_ID
5629
                 AND dep.PV_ID = pp.PATCH_ID
5630
             ) pp,
5631
             package_versions errpkg,
5632
             package_versions errpv
5633
       WHERE err.err_dpv = errpv.pv_id
5634
         AND errpv.pkg_id = frc.pkg_id(+)
5635
         AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
5636
         AND err.pv_id = errpkg.pv_id
5637
         AND err.PV_ID = pp.PV_ID
5638
         AND frc.PV_ID = pp.DPV_ID;
5639
 
5640
    END IF;
5641
 
5642
END Ignore_Dependency_Warnings;
5643
 
5644
/
4040 dpurdie 5645
--------------------------------------------------------
6999 dpurdie 5646
--  DDL for Procedure INSERT_INTO_PACKAGE_BUILD_INFO
4040 dpurdie 5647
--------------------------------------------------------
6999 dpurdie 5648
set define off;
4040 dpurdie 5649
 
6999 dpurdie 5650
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."INSERT_INTO_PACKAGE_BUILD_INFO" IS
5651
 
5652
/******************************************************************************
5653
   NAME:       INSERT_INTO_PACKAGE_BUILD_INFO
5654
   PURPOSE:
5655
 
5656
   REVISIONS:
5657
   Ver        Date        Author           Description
5658
   ---------  ----------  ---------------  ------------------------------------
5659
   1.0        6/12/2006          1. Created this procedure.
5660
 
5661
   NOTES:
5662
 
5663
   Automatically available Auto Replace Keywords:
5664
      Object Name:     INSERT_INTO_PACKAGE_BUILD_INFO
5665
      Sysdate:         6/12/2006
5666
      Date and Time:   6/12/2006, 1:53:40 PM, and 6/12/2006 1:53:40 PM
5667
      Username:         (set in TOAD Options, Procedure Editor)
5668
      Table Name:       (set in the "New PL/SQL Object" dialog)
5669
 
5670
******************************************************************************/
5671
 
5672
	CURSOR curInfo IS
5673
    SELECT PV_ID
5674
	FROM PACKAGE_BUILD_ENV
5675
	WHERE BE_ID IN (11, 12);
5676
    recInfo curInfo%ROWTYPE;
5677
 
5678
 
5679
BEGIN
5680
 
5681
	OPEN curInfo;
5682
    FETCH curInfo INTO recInfo;
5683
 
5684
	WHILE curInfo%FOUND
5685
	LOOP
5686
 
5687
		INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID, BSA_ID )
5688
		VALUES( recInfo.PV_ID, 2, 5);
5689
 
5690
		UPDATE PACKAGE_VERSIONS SET BS_ID = 2 WHERE PV_ID = recInfo.PV_ID;
5691
 
5692
		FETCH curInfo INTO recInfo;
5693
 
5694
	END LOOP;
5695
 
5696
	CLOSE curInfo;
5697
 
5698
 
5699
 
5700
 
5701
END INSERT_INTO_PACKAGE_BUILD_INFO;
5702
 
5703
/
4040 dpurdie 5704
--------------------------------------------------------
6999 dpurdie 5705
--  DDL for Procedure INSERT_MULTIPLE_STICKY_NOTES
4040 dpurdie 5706
--------------------------------------------------------
6999 dpurdie 5707
set define off;
4040 dpurdie 5708
 
6999 dpurdie 5709
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."INSERT_MULTIPLE_STICKY_NOTES" IS
5710
 
5711
/******************************************************************************
5712
   NAME:       INSERT_MULTIPLE_STICKY_NOTES
5713
   PURPOSE:
5714
 
5715
   REVISIONS:
5716
   Ver        Date        Author           Description
5717
   ---------  ----------  ---------------  ------------------------------------
5718
   1.0        6/12/2006          1. Created this procedure.
5719
 
5720
   NOTES:
5721
 
5722
   Automatically available Auto Replace Keywords:
5723
      Object Name:     INSERT_MULTIPLE_STICKY_NOTES
5724
      Sysdate:         6/12/2006
5725
      Date and Time:   6/12/2006, 1:53:40 PM, and 6/12/2006 1:53:40 PM
5726
      Username:         (set in TOAD Options, Procedure Editor)
5727
      Table Name:       (set in the "New PL/SQL Object" dialog)
5728
 
5729
******************************************************************************/
5730
 
5731
	CURSOR curInfo IS
5732
    SELECT PV_ID
5733
	FROM PACKAGE_BUILD_ENV
5734
	WHERE BE_ID IN (11, 12);
5735
    recInfo curInfo%ROWTYPE;
5736
 
5737
 
5738
BEGIN
5739
 
5740
	OPEN curInfo;
5741
    FETCH curInfo INTO recInfo;
5742
 
5743
	WHILE curInfo%FOUND
5744
	LOOP
5745
 
5746
		INSERT INTO NOTE_MANAGER ( NID, LAST_USER, LAST_DATE, DESCRIPTION )
5747
		VALUES( recInfo.PV_ID, 'awehalle', ORA_SYSDATETIME, '' );
5748
 
5749
		FETCH curInfo INTO recInfo;
5750
 
5751
	END LOOP;
5752
 
5753
	CLOSE curInfo;
5754
 
5755
 
5756
 
5757
 
5758
END INSERT_MULTIPLE_STICKY_NOTES;
5759
 
5760
/
4040 dpurdie 5761
--------------------------------------------------------
6999 dpurdie 5762
--  DDL for Procedure LEVEL_N_CONFLICTS
4040 dpurdie 5763
--------------------------------------------------------
6999 dpurdie 5764
set define off;
4040 dpurdie 5765
 
6999 dpurdie 5766
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LEVEL_N_CONFLICTS" (
5767
   nnrtag_id       IN       NUMBER,
5768
   nnsession_num   IN       NUMBER,
5769
   nnrowcnt        OUT      NUMBER,
5770
   nniteration     IN       NUMBER
5771
)
5772
IS
5773
/* ---------------------------------------------------------------------------
5774
    Version: 3.0.1
5775
   --------------------------------------------------------------------------- */
5776
   previteration   NUMBER := nniteration - 1;
5777
BEGIN
5778
  -- Map broken dependency information from a package into a consumer
5779
  -- package. ie: Ripple need-to-build info up the dependency tree.
5384 dpurdie 5780
 
6999 dpurdie 5781
   /* ---------  LEVEL 1 CONFILCTS -----------
5782
   || Following states are used:
5783
   || 0 -> NOT FOUND
5784
   || 1 -> MAJOR
5785
   || 2 -> MINOR MINOR
5786
   */
5787
   INSERT INTO temp_env_states
5788
               SELECT DISTINCT nnsession_num AS session_num, nniteration AS level_num,
5789
                      dpv.pv_id, dpv.pkg_id, dpv.v_ext,
5790
                      DECODE (tes.tes_state, 2, 2, 1) AS MESSAGE,
5791
                      'X'
5792
                 FROM TEMP_ENV_DEPS dpv,
5793
                      temp_env_states tes
5794
                WHERE dpv.SESSION_NUM = nnsession_num
5795
                  AND dpv.dpkg_id = tes.pkg_id
5796
                  AND NVL (dpv.dv_ext, '|LINK_A_NULL|') = NVL (tes.v_ext, '|LINK_A_NULL|')
5797
                  AND tes.session_num = nnsession_num
5798
                  AND tes.level_num = previteration;
4040 dpurdie 5799
 
6999 dpurdie 5800
   nnrowcnt := SQL%ROWCOUNT;
5801
END level_n_conflicts;
5802
 
5803
/
4040 dpurdie 5804
--------------------------------------------------------
6999 dpurdie 5805
--  DDL for Procedure LEVEL_ONE_CONFLICTS
4040 dpurdie 5806
--------------------------------------------------------
6999 dpurdie 5807
set define off;
4040 dpurdie 5808
 
6999 dpurdie 5809
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LEVEL_ONE_CONFLICTS" (
5810
   nnrtag_id       IN   NUMBER,
5811
   nnsession_num   IN   NUMBER
5812
)
5813
IS
5814
BEGIN
5815
  --  Prepare the TEMP_ENV_DEPS table
5816
  --  This table maps package-versions to their dependencies and is
5817
  --  used to walk up the dependency tree.
5818
  --  This table consists of PV_ID -> DPV_ID in the release in which we are interested
5819
  --  ie: Those that ARE NOT a part of:
5820
  --    Pegged Package
5821
  --    SDK imported package
5822
  --    Marked with an ignore warnings
5823
  --    Marked as an advisory ripple
5824
  --
5825
  --  This table speeds up the process by a huge (really huge) amount
5826
  --
5827
      INSERT into TEMP_ENV_DEPS
5828
      (
5829
      SELECT DISTINCT nnsession_num AS session_num,
5830
                      pv.pv_id, pv.pkg_id, pv.v_ext,
5831
                      dpv.pv_id as dpv_id, dpv.pkg_id as dpkg_id, dpv.v_ext as dv_ext
5832
 
5833
                 FROM release_content rel,
5834
                      package_dependencies dep,
5835
                      package_versions dpv,
5836
                      package_versions pv
5837
 
5838
                WHERE rel.pv_id = dep.pv_id
5839
                  AND rel.rtag_id = nnrtag_id
5840
                  AND dep.pv_id = pv.pv_id
5841
                  AND dep.dpv_id = dpv.pv_id
5842
                  --AND rel.SDKTAG_ID is null
5843
                  --AND NOT dep.pv_id IN (SELECT pegv.pv_id FROM PEGGED_VERSIONS pegv WHERE pegv.rtag_id = nnrtag_id)
5844
                  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)
5845
                  );
5846
 
5847
   /* ---------  LEVEL 1 CONFILCTS -----------
5848
   || Following states are used:
5849
   || 0 -> NOT FOUND
5850
   || 1 -> MAJOR
5851
   || 2 -> MINOR MINOR
5852
   */
5853
   INSERT INTO temp_env_states
5854
   (
5855
      SELECT nnsession_num AS session_num, 
5856
        1 AS level_num,
5857
        rd.pv_id, 
5858
        rd.pkg_id, 
5859
        rd.v_ext,
5860
        DECODE (rd.v_nmm,
5861
                    NULL, 0,
5862
                    pv2.v_nmm, DECODE (rd.v_mm,
5863
                                       pv2.v_mm, 0,
5864
                                                 2
5865
                                       ),
5866
                    1
5867
              ) AS MESSAGE,
5868
        rd.build_type
5869
from (
5870
      SELECT DISTINCT err.pv_id, errpkg.pkg_id, errpkg.v_ext,
5871
                      frc.build_type,
5872
                      frc.v_nmm,
5873
                      frc.v_mm,
5874
                      errpv.pv_id as errpv_id
5875
                 FROM (
5876
                       /* Full Release Contents used for reference*/
5877
                        SELECT rel.rtag_id, rpv.pv_id, rpv.pkg_id,
5878
                                NVL (rpv.v_ext, '|LINK_A_NULL|') AS v_ext,
5879
                                rpv.pkg_version, rpv.v_nmm, rpv.v_mm,
5880
                                (SELECT COUNT(*) FROM ADVISORY_RIPPLE avr WHERE avr.rtag_id = rel.rtag_id AND avr.pv_id = rel.pv_id ) AS IsAvr,
5881
                                rpv.build_type
5882
                          FROM release_content rel,
5883
                                package_versions rpv
5884
                          WHERE rel.pv_id = rpv.pv_id
5885
                             AND rtag_id = nnrtag_id
5886
                      ) frc,
5887
 
5888
                      (
5889
                       /* DPV_IDs not found in release. Excluding:
5890
                              Those from pegged versions
5891
                              Those from packages imported via an SDK
5892
                              */
5893
                       SELECT dep.pv_id, dep.dpv_id AS err_dpv
5894
                         FROM package_dependencies dep
5895
                        WHERE dep.pv_id IN (SELECT pv_id FROM release_content WHERE rtag_id = nnrtag_id AND release_content.SDKTAG_ID is NULL)
5896
                          AND NOT dep.pv_id IN (SELECT pegv.pv_id FROM PEGGED_VERSIONS pegv WHERE pegv.rtag_id = nnrtag_id)
5897
                          AND NOT dep.dpv_id IN (SELECT pv_id FROM release_content WHERE rtag_id = nnrtag_id)
5898
 
5899
                       /* INCLUDE Unbuildable packages to force missing */
5900
                       UNION
5901
                       SELECT bpv.pv_id, bpv.pv_id as err_dpv
5902
                        FROM package_versions bpv, release_content brc
5903
                        WHERE bpv.build_type = 'U' AND brc.rtag_id = nnrtag_id AND bpv.pv_id = brc.pv_id
5904
 
5905
                       MINUS
5906
                       /* MINUS Dependencies to be ignored */
5907
                       SELECT igw.pv_id, igw.dpv_id AS err_dpv
5908
                         FROM ignore_warnings igw
5909
                        WHERE igw.rtag_id = nnrtag_id
5910
 
5911
                      ) err,
5912
                      package_versions errpkg,
5913
                      package_versions errpv
5914
                WHERE err.err_dpv = errpv.pv_id
5915
                  AND errpv.pkg_id = frc.pkg_id(+)
5916
                  AND NVL (errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
5917
                  AND err.pv_id = errpkg.pv_id
5918
                  AND NVL(frc.IsAvr,0) = 0
5919
                  ) rd,
5920
                  package_versions pv2
5921
                  where rd.errpv_id = pv2.PV_ID
5922
                  );
5923
END level_one_conflicts;
5924
 
5925
/
4040 dpurdie 5926
--------------------------------------------------------
6999 dpurdie 5927
--  DDL for Procedure LOCK_PACKAGE
4040 dpurdie 5928
--------------------------------------------------------
6999 dpurdie 5929
set define off;
4040 dpurdie 5930
 
6999 dpurdie 5931
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOCK_PACKAGE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
5932
											 nUserId IN NUMBER ) IS
5933
/* ---------------------------------------------------------------------------
5934
    Version: 4.0
5935
   --------------------------------------------------------------------------- */
5936
 
5937
BEGIN
5938
 
5939
    -- Lock Package
5940
    UPDATE PACKAGE_VERSIONS pv SET
5941
    	pv.DLOCKED = 'Y'
5942
    WHERE pv.PV_ID = nPvId;
5943
 
5944
    /* LOG ACTION */
5945
   	Log_Action ( nPvId, 'lock_package', nUserId );
5946
 
5947
END Lock_Package;
5948
 
5949
/
4040 dpurdie 5950
--------------------------------------------------------
6999 dpurdie 5951
--  DDL for Procedure LOG_ACTION
4040 dpurdie 5952
--------------------------------------------------------
6999 dpurdie 5953
set define off;
4040 dpurdie 5954
 
6999 dpurdie 5955
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_ACTION" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
5956
										 enumActionTypeName IN ACTION_TYPE.NAME%TYPE,
5957
                                         nUserId IN ACTION_LOG.USER_ID%TYPE,
5958
										 sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL  ) IS
5959
/* ---------------------------------------------------------------------------
5960
    Version: 3.0
5961
   --------------------------------------------------------------------------- */
5892 dpurdie 5962
 
6999 dpurdie 5963
    ActionTypeId NUMBER;
4040 dpurdie 5964
 
6999 dpurdie 5965
BEGIN
5966
 
5967
    -- Get Action Type FK
5968
    SELECT act.ACTTYPE_ID INTO ActionTypeId
5969
      FROM ACTION_TYPE act
5970
     WHERE act.NAME = enumActionTypeName;
5971
 
5972
 
5973
    INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
5974
    VALUES ( nUserId, nPvId, sAdditionalComments, ActionTypeId );
5975
 
5976
 
5977
END Log_Action;
5978
 
5979
/
4040 dpurdie 5980
--------------------------------------------------------
6999 dpurdie 5981
--  DDL for Procedure LOG_ACTION_BULK
4040 dpurdie 5982
--------------------------------------------------------
6999 dpurdie 5983
set define off;
4040 dpurdie 5984
 
6999 dpurdie 5985
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_ACTION_BULK" ( nPvIdList IN VARCHAR2,
5986
										 	  enumActionTypeName IN ACTION_TYPE.NAME%TYPE,
5987
                                         	  nUserId IN ACTION_LOG.USER_ID%TYPE,
5988
										 	  sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL  ) IS
5989
/* ---------------------------------------------------------------------------
5990
    Version: 3.0
5991
   --------------------------------------------------------------------------- */
5992
 
5993
    ActionTypeId NUMBER;
5994
    oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
5995
 
5996
BEGIN
5997
 
5998
    oPvIdCollector := IN_LIST_NUMBER ( nPvIdList );
5999
 
6000
    -- Get Action Type FK
6001
    SELECT act.ACTTYPE_ID INTO ActionTypeId
6002
      FROM ACTION_TYPE act
6003
     WHERE act.NAME = enumActionTypeName;
6004
 
6005
    -- Log Action
6006
    INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
6007
    SELECT nUserId,
6008
    	     pv.PV_ID,
6009
           sAdditionalComments,
6010
           ActionTypeId
6011
      FROM PACKAGE_VERSIONS pv
6012
     WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
6013
 
6014
 
6015
END Log_Action_Bulk;
6016
 
6017
/
4040 dpurdie 6018
--------------------------------------------------------
6999 dpurdie 6019
--  DDL for Procedure LOG_DAEMON_ACTION
4040 dpurdie 6020
--------------------------------------------------------
6999 dpurdie 6021
set define off;
4040 dpurdie 6022
 
6999 dpurdie 6023
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_DAEMON_ACTION" ( nRconId IN NUMBER,
6024
												 enumActionTypeName IN VARCHAR2,
6025
		                                         nUserId IN NUMBER,
6026
												 sAdditionalComments IN VARCHAR2 DEFAULT NULL  ) IS
6027
/* ---------------------------------------------------------------------------
6028
    Version: 3.0
6029
   --------------------------------------------------------------------------- */
6030
 
6031
    ActionTypeId NUMBER;
6032
 
6033
BEGIN
6034
 
6035
    -- Get Action Type FK
6036
    SELECT act.ACTTYPE_ID INTO ActionTypeId
6037
      FROM ACTION_TYPE act
6038
     WHERE act.NAME = enumActionTypeName;
6039
 
6040
 
6041
    INSERT INTO DAEMON_ACTION_LOG
6042
    VALUES ( nUserId, ORA_SYSDATETIME, nRconId, sAdditionalComments, ActionTypeId );
6043
 
6044
 
6045
END Log_Daemon_Action;
6046
 
6047
/
4040 dpurdie 6048
--------------------------------------------------------
6999 dpurdie 6049
--  DDL for Procedure LOG_PROJECT_ACTION
4040 dpurdie 6050
--------------------------------------------------------
6999 dpurdie 6051
set define off;
4040 dpurdie 6052
 
6999 dpurdie 6053
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_PROJECT_ACTION" ( nProjId IN NUMBER,
6054
												 enumActionTypeName IN VARCHAR2,
6055
		                                         nUserId IN NUMBER,
6056
												 sAdditionalComments IN VARCHAR2 DEFAULT NULL,
6057
												 nRtagId IN NUMBER  ) IS
6058
/* ---------------------------------------------------------------------------
6059
    Version: 3.0
6060
   --------------------------------------------------------------------------- */
6061
 
6062
    ActionTypeId NUMBER;
6063
 
6064
BEGIN
6065
 
6066
    -- Get Action Type FK
6067
    SELECT act.ACTTYPE_ID INTO ActionTypeId
6068
      FROM ACTION_TYPE act
6069
     WHERE act.NAME = enumActionTypeName;
6070
 
6071
 
6072
    INSERT INTO PROJECT_ACTION_LOG ( USER_ID, ACTION_DATETIME, PROJ_ID, DESCRIPTION, ACTTYPE_ID, RTAG_ID)
6073
    VALUES ( nUserId, ORA_SYSDATETIME, nProjId, sAdditionalComments, ActionTypeId, nRtagId);
6074
 
6075
 
6076
END Log_Project_Action;
6077
 
6078
/
4040 dpurdie 6079
--------------------------------------------------------
6999 dpurdie 6080
--  DDL for Procedure NEW_ADDITIONAL_NOTE
4040 dpurdie 6081
--------------------------------------------------------
6999 dpurdie 6082
set define off;
4040 dpurdie 6083
 
6999 dpurdie 6084
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_ADDITIONAL_NOTE" ( pnPv_id IN NUMBER,
6085
                                                  psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,
6086
                                                  psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,
6087
                                                  pnUser_id IN NUMBER,
6088
                                                  outErrCode OUT NUMBER
6089
                                                 ) IS
6090
/* ---------------------------------------------------------------------------
6091
    Version: 3.0.0
6092
   --------------------------------------------------------------------------- */
6093
 
6094
    newID NUMBER;
6095
 
6096
	CURSOR an_duplicate_cur IS
6097
        SELECT note_id
6098
          FROM ADDITIONAL_NOTES
6099
         WHERE pv_id = pnPv_id
6100
           AND note_title = psNote_title;
6101
    an_duplicate_rec an_duplicate_cur%ROWTYPE;
6102
 
6103
BEGIN
6104
	outErrCode := -1;		-- Set default return error code to ERROR state
6105
 
6106
	OPEN an_duplicate_cur;
6107
    FETCH an_duplicate_cur INTO an_duplicate_rec;
6108
 
6109
    IF an_duplicate_cur%NOTFOUND
6110
    THEN
6111
		/* No duplicate titles */
6112
		-- Get new ID --
6113
    	SELECT SEQ_ADDITIONAL_NOTES.NEXTVAL INTO newID FROM DUAL;
6114
 
6115
		--- Add Additional Note ---
6116
	    INSERT INTO ADDITIONAL_NOTES ( note_id, pv_id, note_title, note_body, mod_date, mod_user  )
7000 dpurdie 6117
	    VALUES (  newID, pnPv_id, psNote_title, psNote_body, ora_sysdatetime, pnUser_id );
6999 dpurdie 6118
		outErrCode := 0;		-- Set return to SUCCESS
6119
	END IF;
6120
 
6121
	CLOSE an_duplicate_cur;
6122
END New_Additional_Note;
6123
 
6124
/
4040 dpurdie 6125
--------------------------------------------------------
6999 dpurdie 6126
--  DDL for Procedure NEW_PACKAGE_NAME
4040 dpurdie 6127
--------------------------------------------------------
6999 dpurdie 6128
set define off;
4040 dpurdie 6129
 
6999 dpurdie 6130
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_PACKAGE_NAME" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,
6131
                                               retPKG_ID OUT NUMBER ) IS
6132
/* ---------------------------------------------------------------------------
6133
    Version: 3.0.0
6134
   --------------------------------------------------------------------------- */
6135
 
6136
    CURSOR packages_cur IS
6137
        SELECT pkg.pkg_id
6138
          FROM packages pkg
6139
         WHERE pkg.pkg_name = SSpkg_name;
6140
    packages_rec packages_cur%ROWTYPE;
6141
 
6142
 
6143
BEGIN
6144
 
6145
    /* ---------------------------------------------------- */
6146
    /* Find if package name exists                          */
6147
    /* ---------------------------------------------------- */
6148
 
6149
    OPEN packages_cur;
6150
    FETCH packages_cur INTO packages_rec;
6151
 
6152
    IF packages_cur%NOTFOUND
6153
    THEN
6154
        -- Create new pkg_name --
6155
        SELECT SEQ_PKG_ID.nextval INTO retPKG_ID FROM DUAL;
6156
 
6157
        INSERT INTO packages ( pkg_id, pkg_name )
6158
        VALUES ( retPKG_ID, SSpkg_name );
6159
 
6160
    ELSE
6161
        retPKG_ID := packages_rec.pkg_id;
6162
 
6163
    END IF;
6164
 
6165
 
6166
    CLOSE packages_cur;
6167
 
6168
END New_Package_Name;
6169
 
6170
/
4040 dpurdie 6171
--------------------------------------------------------
6999 dpurdie 6172
--  DDL for Procedure NEW_PATCH
4040 dpurdie 6173
--------------------------------------------------------
6999 dpurdie 6174
set define off;
4040 dpurdie 6175
 
6999 dpurdie 6176
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_PATCH" ( SSpatch_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
6177
 	   	  		  					  	NNparent_id IN NUMBER,
6178
                                        sPatchIdList IN VARCHAR2,
6179
										NNuser_id IN NUMBER ) IS
6180
/* ---------------------------------------------------------------------------
6181
    Version: 3.5
6182
   --------------------------------------------------------------------------- */
6183
 
6184
    patchPv_id    NUMBER;
6185
	parPkg_id	  NUMBER;
6186
    LastInstallOrder NUMBER;
6187
    isPatchDlocked PACKAGE_VERSIONS.DLOCKED%TYPE;
6188
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
6189
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
6190
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
6191
	oPatchDepCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
6192
 
6193
	CURSOR parent_cur IS
6194
        SELECT pv.*, pkg.pkg_name
6195
          FROM package_versions pv,
6196
		       packages pkg
6197
         WHERE pv.pv_id = NNparent_id
6198
		   AND pv.pkg_id = pkg.pkg_id;
6199
    parent_rec parent_cur%ROWTYPE;
6200
 
6201
    CURSOR patch_cur IS
6202
        SELECT pv.*, pg.pkg_name
6203
          FROM package_versions pv,
6204
		       packages pg
6205
         WHERE pv.pkg_id = parPkg_id
6206
		   AND pv.pkg_version = SSpatch_version
6207
		   AND pv.pkg_id = pg.pkg_id;
6208
    patch_rec patch_cur%ROWTYPE;
6209
 
6210
	CURSOR releases_cur IS
6211
        SELECT rc.pv_id
6212
		  FROM release_content rc
6213
		 WHERE rc.pv_id = patch_rec.pv_id;
6214
    releases_rec releases_cur%ROWTYPE;
6215
 
6216
 
6217
BEGIN
6218
 
6219
	-- Get Last Install Order
6220
    SELECT Count(*) INTO LastInstallOrder
6221
	  FROM PACKAGE_PATCHES pp
6222
	 WHERE pp.PV_ID = NNparent_id;
6223
 
6224
 
6225
    -- Get parent details
6226
	OPEN parent_cur;
6227
    FETCH parent_cur INTO parent_rec;
6228
	parPkg_id := parent_rec.pkg_id;
6229
 
6230
 
6231
	-- Find if patch exists in database
6232
    OPEN patch_cur;
6233
    FETCH patch_cur INTO patch_rec;
6234
 
6235
 
6236
    -- Parent must be official
6237
    IF parent_rec.dlocked = 'Y' THEN
6238
 
6239
	    IF patch_cur%NOTFOUND
6240
	    THEN
6241
        	isPatchDlocked := 'N';
6242
 
6243
	        -- Create new patch version --
6244
	        SELECT SEQ_PV_ID.nextval INTO patchPv_id FROM DUAL;
6245
 
6246
 
6247
	        Split_version ( SSpatch_version, SSV_MM, SSV_NMM, SSV_EXT );
6248
 
6249
	        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 )
6250
				   VALUES (
6251
						   patchPv_id,
6252
	                       parPkg_id,
6253
	                       SSpatch_version,
6254
	                       isPatchDlocked,
7000 dpurdie 6255
	                       ora_sysdatetime,
6999 dpurdie 6256
	                       NNuser_id,
6257
	                       ORA_SYSDATETIME,
6258
	                       NNuser_id,
6259
	                       SSV_MM,
6260
	                       SSV_NMM,
6261
	                       SSV_EXT,
6262
	                       parent_rec.src_path,
6263
	                       'This is a patch to ' || parent_rec.pkg_name || ' ' || parent_rec.pkg_version,
6264
	                       NNuser_id,
6265
						   'Y',
6266
                           patchPv_id,
6267
						   parent_rec.bs_id,
6268
						   parent_rec.is_autobuildable,
6269
						   parent_rec.ripple_field
6270
 
6271
						   );
6272
 
6273
			INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )
6274
		    	   ( SELECT NNparent_id AS pv_id,
6275
				            pv.pv_id AS patch_id,
6276
	                        LastInstallOrder + 1 AS INSTALL_ORDER
6277
				       FROM package_versions pv
6278
					  WHERE pv.pv_id = patchPv_id
6279
					    AND pv.is_patch = 'Y' );
6280
 
6281
	        /* LOG ACTION */
6282
            Log_Action ( patchPv_id, 'new_version', NNuser_id,
6283
        			     'Patch version created: '|| SSpatch_version );
6284
 
6285
        	Log_Action ( NNparent_id, 'patch_add', NNuser_id,
6286
        			     'New patch created and attached: '|| SSpatch_version );
6287
 
6288
 
6289
	    ELSE
6290
 
6291
		    patchPv_id := patch_rec.pv_id;
6292
	    	isPatchDlocked := patch_rec.dlocked;
6293
 
6294
			-- Find if pv_id exists in release content (i.e. it cannot be a patch)
6295
		    OPEN releases_cur;
6296
		    FETCH releases_cur INTO releases_rec;
6297
 
6298
			IF releases_cur%NOTFOUND
6299
	   		THEN
6300
				-- This pv_id is trully a patch, hence add Y to column IS_PATCH
6301
				UPDATE package_versions SET
6302
					   is_patch = 'Y'
6303
					   WHERE pv_id = patchPv_id;
6304
 
6305
				INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )
6306
			    	   ( SELECT NNparent_id AS pv_id,
6307
					            pv.pv_id AS patch_id,
6308
	                            LastInstallOrder + 1 AS INSTALL_ORDER
6309
					       FROM package_versions pv
6310
						  WHERE pv.pv_id = patchPv_id
6311
						    AND pv.is_patch = 'Y' );
6312
 
6313
			END IF;
6314
 
6315
			CLOSE releases_cur;
6316
 
6317
            /* LOG ACTION */
6318
        	Log_Action ( NNparent_id, 'patch_add', NNuser_id,
6319
        			     'Patch version was found and attached: '|| SSpatch_version );
6320
 
6321
	    END IF;
6322
 
6323
 
6324
 
6325
 
6326
    END IF;
6327
 
6328
 
6329
 
6330
    /* Create Patch Dependencies */
6331
    oPatchDepCollector := IN_LIST_NUMBER ( sPatchIdList );
6332
 
6333
 
6334
    -- Make sure patch is unofficial before altering its dependencies
6335
    IF (oPatchDepCollector.COUNT > 0) AND (isPatchDlocked = 'N') THEN
6336
    	-- Delete Existing Dependencies
6337
        DELETE
6338
          FROM PACKAGE_DEPENDENCIES dep
6339
         WHERE dep.PV_ID = patchPv_id;
6340
 
6341
 
6342
        -- Insert new dependencies
6343
        INSERT INTO PACKAGE_DEPENDENCIES ( PV_ID, DPV_ID, PKG_ID, DPKG_ID, BUILD_TYPE )
6344
        SELECT patchPv_id AS PV_ID,
6345
        	   pv.PV_ID AS DPV_ID,
6346
               parPkg_id AS PKG_ID,
6347
               pv.PKG_ID AS DPKG_ID,
6348
               'L' AS BUILD_TYPE
6349
          FROM PACKAGE_VERSIONS pv
6350
         WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPatchDepCollector AS RELMGR_NUMBER_TAB_t ) ) );
6351
 
6352
 
6353
    END IF;
6354
 
6355
 
6356
    CLOSE parent_cur;
6357
    CLOSE patch_cur;
6358
END New_Patch;
6359
 
6360
/
4040 dpurdie 6361
--------------------------------------------------------
6999 dpurdie 6362
--  DDL for Procedure NEW_UNIT_TEST
4040 dpurdie 6363
--------------------------------------------------------
6999 dpurdie 6364
set define off;
4040 dpurdie 6365
 
6999 dpurdie 6366
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_UNIT_TEST" ( nPv_id IN NUMBER,
6367
                                            nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,
6368
                                            sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,
6369
                                            sNumOfTest IN UNIT_TESTS.NUMOF_TEST%TYPE,
6370
                                            sDpkg_path IN VARCHAR2,
6371
                                            sResults IN VARCHAR2,
6372
                                            sCompletion_date IN VARCHAR2,
6373
                                            nCompleted_by IN NUMBER,
6374
											enumTEST_TYPE_AUTOMATIC IN NUMBER,
6375
											enumTEST_TYPE_NOT_DONE IN NUMBER,
6376
											outFileName OUT VARCHAR2
6377
                                           ) IS
6378
/* ---------------------------------------------------------------------------
6379
    Version: 3.2.0
6380
   --------------------------------------------------------------------------- */
6381
 
6382
   	FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';
6383
 
6384
    newID NUMBER;
6385
    ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;
6386
    ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;
6387
 
6388
BEGIN
6389
 
6390
	-- Get new ID --
6391
   	SELECT SEQ_UNIT_TESTS.NEXTVAL INTO newID FROM DUAL;
6392
 
6393
       IF nTestTypeId = enumTEST_TYPE_AUTOMATIC THEN
6394
       	ResultsURL := sResults;
6395
       ELSE
6396
       	IF (sResults <> '') OR ( NOT sResults IS NULL ) THEN
6397
        	outFileName := FILENAME_PREFIX || newID ||'_'|| sResults;
6398
    		ResultsAttachment := sDpkg_path || '/' || outFileName;
6399
           END IF;
6400
       END IF;
6401
 
6402
	-- Remove NOT_DONE entry if exists
6403
	DELETE FROM UNIT_TESTS
6404
	 WHERE pv_id = nPv_id
6405
	   AND test_types_fk = enumTEST_TYPE_NOT_DONE;
6406
 
6407
	--- Add Additional Note ---
6408
    INSERT INTO UNIT_TESTS ( TEST_ID,
6409
								PV_ID,
6410
								TEST_TYPES_FK,
6411
								TEST_SUMMARY,
6412
								COMPLETION_DATE,
6413
								COMPLETED_BY,
6414
								RESULTS_URL,
6415
								RESULTS_ATTACHMENT_NAME,
6416
								NUMOF_TEST )
6417
    VALUES (
6418
       	newID,
6419
           nPv_id,
6420
           nTestTypeId,
6421
           sTest_summary,
6422
           TO_DATE( sCompletion_date,'DD/MM/YYYY' ),
6423
           nCompleted_by,
6424
           ResultsURL,
6425
           ResultsAttachment,
6426
		   sNumOfTest );
6427
 
6428
END New_Unit_Test;
6429
 
6430
/
4040 dpurdie 6431
--------------------------------------------------------
6999 dpurdie 6432
--  DDL for Procedure PAOLO_BUILD_TREE
4040 dpurdie 6433
--------------------------------------------------------
6999 dpurdie 6434
set define off;
4040 dpurdie 6435
 
6999 dpurdie 6436
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."PAOLO_BUILD_TREE" ( nRtag_id IN NUMBER ) IS
6437
 
6438
    sessionNumber NUMBER := 0;
6439
    iteration NUMBER := 1;
6440
    rowCnt NUMBER := 0;
6441
    maxIterations 	NUMBER := 50;
6442
 
6443
BEGIN
6444
 
6445
 
6446
    INSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )
6447
    SELECT sessionNumber, iteration, rc.PV_ID
6448
      FROM RELEASE_CONTENT rc
6449
     WHERE rc.RTAG_ID = nRtag_id;
6450
 
6451
    iteration := iteration + 1;
6452
    LOOP
6453
 
6454
        INSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )
6455
		SELECT sessionNumber,
6456
               iteration,
6457
               dep.DPV_ID
6458
          FROM TEMP_TREE_BROWSE ttb,
6459
               PACKAGE_DEPENDENCIES dep
6460
         WHERE dep.PV_ID = ttb.PV_ID
6461
           AND ttb.LEVEL_NUM = iteration - 1
6462
 
6463
         MINUS
6464
 
6465
        SELECT sessionNumber, iteration, ttb.PV_ID
6466
          FROM TEMP_TREE_BROWSE ttb;
6467
 
6468
 
6469
 
6470
 
6471
		rowCnt := SQL%ROWCOUNT;
6472
		IF rowCnt > 0 THEN
6473
           iteration := iteration + 1;
6474
		END IF;
6475
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
6476
    END LOOP;
6477
 
6478
END PAOLO_Build_Tree;
6479
 
6480
/
4040 dpurdie 6481
--------------------------------------------------------
6999 dpurdie 6482
--  DDL for Procedure REBUILD_DEPRECATE_STATE
4040 dpurdie 6483
--------------------------------------------------------
6999 dpurdie 6484
set define off;
4040 dpurdie 6485
 
6999 dpurdie 6486
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REBUILD_DEPRECATE_STATE" ( nRtagId IN INT ) AS
6487
BEGIN
6488
 
6489
  --  Clear the 'calculated' values from the Release Conetnts
6490
  --
6491
  UPDATE RELEASE_CONTENT
6492
      SET DEPRECATED_STATE = NULL
6493
  WHERE RTAG_ID =  nRtagId
6494
  AND DEPRECATED_STATE != 6
6495
  AND DEPRECATED_STATE is NOT NULL;
6496
 
6497
  --
6498
  --  Insert new calculated values into the table
6499
  --  Use of 'AAA' speeds up the CONNECT BY PRIOR query (lots)
6500
  UPDATE RELEASE_CONTENT
6501
      SET DEPRECATED_STATE = 7
6502
  WHERE RTAG_ID =  nRtagId
6503
  AND DEPRECATED_STATE is null
6504
  AND PV_ID in (
6505
        WITH AAA AS
6506
          (SELECT pd.*
6507
          FROM PACKAGE_DEPENDENCIES pd,
6508
            RELEASE_CONTENT RC1
6509
          WHERE rc1.rtag_id = nRtagId
6510
          AND RC1.PV_ID     = pd.PV_ID
6511
          )
6512
      SELECT DISTINCT qry.PV_ID
6513
      FROM
6514
        (SELECT dep.*,
6515
          LEVEL AS LEVEL_NUM
6516
        FROM AAA dep
6517
          START WITH dep.DPV_ID IN (
6518
                SELECT rc.pv_id as pv_id
6519
                FROM RELEASE_CONTENT rc
6520
                WHERE rc.rtag_id  = nRtagId
6521
                AND rc.DEPRECATED_STATE = 6 )
6522
          CONNECT BY PRIOR dep.PV_ID = dep.DPV_ID
6523
        ) qry,
6524
        PACKAGES pkg,
6525
        PACKAGE_VERSIONS pv,
6526
        RELEASE_CONTENT rc
6527
      WHERE qry.PV_ID          = pv.PV_ID
6528
      AND pv.PKG_ID            = pkg.PKG_ID
6529
      AND rc.RTAG_ID           = nRtagId
6530
      AND rc.PV_ID             = qry.PV_ID
6531
      );
6532
END REBUILD_DEPRECATE_STATE;
6533
 
6534
/
4040 dpurdie 6535
--------------------------------------------------------
6999 dpurdie 6536
--  DDL for Procedure REBUILD_ENVIRONMENT
4040 dpurdie 6537
--------------------------------------------------------
6999 dpurdie 6538
set define off;
4040 dpurdie 6539
 
6999 dpurdie 6540
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REBUILD_ENVIRONMENT" ( NNrtag_id IN NUMBER ) IS
6541
  --
6542
  --  Recalculate the package_state
6543
  --  Triggered by the Web Interface
6544
  --
6545
    rowCnt NUMBER := 0;
6546
    iteration NUMBER := 2;          -- Iterations counter
6547
    maxIterations NUMBER := 30;     -- Maximum number of iterations allowed.
6548
                                    -- This will prevent infinite loops if cyrcular dependencies are found
6549
    sessionNum NUMBER;
6550
BEGIN
6551
    SELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;
6552
 
6553
 
6554
    -- Redo Patch Ignore warnings
6555
    Ignore_Dependency_Warnings ( NNrtag_id, NULL, NULL, TRUE );
6556
 
6557
    Level_One_Conflicts ( NNrtag_id, sessionNum );
6558
    --commit;
6559
 
6560
    LOOP
6561
        Level_N_Conflicts ( NNrtag_id, sessionNum, rowCnt, iteration );
6562
        --commit;
6563
        iteration := iteration + 1;
6564
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
6565
    END LOOP;
6566
 
6567
    Update_Package_States ( NNrtag_id, sessionNum );
6568
 
6569
    DELETE FROM temp_env_states WHERE session_num = sessionNum;
6570
    DELETE FROM TEMP_ENV_DEPS WHERE session_num = sessionNum;
6571
 
6572
    -- Flag Packages with New Patches Available
6573
    -- Temp deleted 28-Mar-2017 (25-Jul-2018)
6574
    -- Reason: It takes a very long time and we dont use patches any more
6575
    -- Check_New_Patches ( NNrtag_id );
6576
 
6577
	Clean_Do_Not_Ripple( NNrtag_id );
6578
 
6579
 
6580
	/* Circular Dependency Flag */
6581
    /*
6582
	IF iteration > maxIterations
6583
	THEN
6584
		UPDATE release_tags SET
6585
		   	   circular_dependency = 'Y'
6586
		 WHERE rtag_id = NNrtag_id;
6587
	ELSE
6588
		UPDATE release_tags SET
6589
		   	   circular_dependency = NULL
6590
		 WHERE rtag_id = NNrtag_id;
6591
	END IF;
6592
    */
6593
END Rebuild_Environment;
6594
 
6595
/
4040 dpurdie 6596
--------------------------------------------------------
6999 dpurdie 6597
--  DDL for Procedure REMOVE_COMPONENTS
4040 dpurdie 6598
--------------------------------------------------------
6999 dpurdie 6599
set define off;
4040 dpurdie 6600
 
6999 dpurdie 6601
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_COMPONENTS" ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE ) IS
6602
/* ---------------------------------------------------------------------------
6603
    Version: 3.0.0
6604
   --------------------------------------------------------------------------- */
6605
 
6606
 
6607
BEGIN
6608
 
6609
	 --- Delete From RELEASE_COMPONENTS
6610
	 DELETE FROM RELEASE_COMPONENTS
6611
	 WHERE PV_ID = nPvId;
6612
 
6613
END Remove_Components;
6614
 
6615
/
4040 dpurdie 6616
--------------------------------------------------------
6999 dpurdie 6617
--  DDL for Procedure REMOVE_DOCUMENT
4040 dpurdie 6618
--------------------------------------------------------
6999 dpurdie 6619
set define off;
4040 dpurdie 6620
 
6999 dpurdie 6621
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_DOCUMENT" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
6622
											  nDocId IN PACKAGE_DOCUMENTS.DOC_ID%TYPE,
6623
                                              nUserId IN NUMBER ) IS
6624
/* ---------------------------------------------------------------------------
6625
    Version: 3.0
6626
   --------------------------------------------------------------------------- */
6627
 
6628
   DocNumber PACKAGE_DOCUMENTS.DOC_NUM%TYPE;
6629
 
6630
BEGIN
6631
 
6632
	-- Get Doc Num
6633
    SELECT pd.DOC_NUM INTO DocNumber
6634
      FROM PACKAGE_DOCUMENTS pd
6635
     WHERE pd.PV_ID = nPvId
6636
       AND pd.DOC_ID = nDocId;
6637
 
6638
 
6639
	-- Delete Document
6640
    DELETE
6641
      FROM PACKAGE_DOCUMENTS pd
6642
     WHERE pd.PV_ID = nPvId
6643
       AND pd.DOC_ID = nDocId;
6644
 
6645
 
6646
    /* LOG ACTION */
6647
   	Log_Action ( nPvId, 'document_remove', nUserId,
6648
   			     'Document number: '|| DocNumber );
6649
 
6650
 
6651
END Remove_Document;
6652
 
6653
/
4040 dpurdie 6654
--------------------------------------------------------
6999 dpurdie 6655
--  DDL for Procedure REMOVE_PACKAGE_INTEREST
4040 dpurdie 6656
--------------------------------------------------------
6999 dpurdie 6657
set define off;
4040 dpurdie 6658
 
6999 dpurdie 6659
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PACKAGE_INTEREST" (nProjId IN PROJECTS.PROJ_ID%TYPE,
6660
	   	  		  								  	nPkgId IN PACKAGES.PKG_ID%TYPE,
6661
												  	nUserId IN NUMBER
6662
	   	  		  									) IS
6663
 
6664
/******************************************************************************
6665
   NAME:       REMOVE_PACKAGE_INTEREST
6666
   PURPOSE:    To remove interest in a given package per project
6667
 
6668
   REVISIONS:
6669
   Ver        Date        Author           Description
6670
   ---------  ----------  ---------------  ------------------------------------
6671
   1.0        12/05/2006  Rupesh Solanki      1. Created this procedure.
6672
 
6673
   NOTES:
6674
 
6675
   Automatically available Auto Replace Keywords:
6676
      Object Name:     REMOVE_PACKAGE_INTEREST
6677
      Sysdate:         12/05/2006
6678
      Date and Time:   12/05/2006, 11:28:50 AM, and 12/05/2006 11:28:50 AM
6679
      Username:         (set in TOAD Options, Procedure Editor)
6680
      Table Name:       (set in the "New PL/SQL Object" dialog)
6681
 
6682
******************************************************************************/
6683
BEGIN
6684
 
6685
	 --Delete from PACKAGE_INTEREST
6686
	 DELETE FROM PACKAGE_INTEREST
6687
	 WHERE PROJ_ID = nProjId
6688
	 AND PKG_ID = nPkgId
6689
	 AND USER_ID = nUserId;
6690
 
6691
END REMOVE_PACKAGE_INTEREST;
6692
 
6693
/
4040 dpurdie 6694
--------------------------------------------------------
6999 dpurdie 6695
--  DDL for Procedure REMOVE_PATCH
4040 dpurdie 6696
--------------------------------------------------------
6999 dpurdie 6697
set define off;
4040 dpurdie 6698
 
6999 dpurdie 6699
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PATCH" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,
6700
										   nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,
6701
                                           nUserId IN NUMBER ) IS
6702
/* ---------------------------------------------------------------------------
6703
    Version: 4.0
6704
   --------------------------------------------------------------------------- */
6705
 
6706
PatchVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
6707
 
6708
CURSOR curPatch IS
6709
	SELECT pp.PV_ID,
6710
		   pp.PATCH_ID,
6711
	       ROWNUM AS NEW_INSTALL_ORDER
6712
	  FROM PACKAGE_PATCHES pp
6713
	 WHERE pp.PV_ID = nPvId
6714
	ORDER BY pp.INSTALL_ORDER;
6715
recPatch curPatch%ROWTYPE;
6716
 
6717
BEGIN
6718
 
6719
	 -- Delete Patch
6720
     DELETE
6721
       FROM PACKAGE_PATCHES pp
6722
      WHERE pp.PV_ID = nPvId
6723
        AND pp.PATCH_ID = nPatchId;
6724
 
6725
 
6726
	-- Redo Install Order
6727
    OPEN curPatch;
6728
	FETCH curPatch INTO recPatch;
6729
 
6730
	WHILE curPatch%FOUND
6731
	LOOP
6732
 
6733
		UPDATE PACKAGE_PATCHES pp SET
6734
			pp.INSTALL_ORDER = recPatch.NEW_INSTALL_ORDER
6735
		WHERE pp.PV_ID = nPvId
6736
		  AND pp.PATCH_ID = recPatch.PATCH_ID;
6737
 
6738
		FETCH curPatch INTO recPatch;
6739
	END LOOP;
6740
 
6741
	CLOSE curPatch;
6742
 
6743
 
6744
 
6745
 
6746
    /* LOG ACTION */
6747
    SELECT pv.PKG_VERSION INTO PatchVersion
6748
      FROM PACKAGE_VERSIONS pv
6749
     WHERE pv.PV_ID = nPatchId;
6750
 
6751
   	Log_Action ( nPvId, 'patch_remove', nUserId,
6752
   			     'Version: '|| PatchVersion );
6753
 
6754
END Remove_Patch;
6755
 
6756
/
4040 dpurdie 6757
--------------------------------------------------------
6999 dpurdie 6758
--  DDL for Procedure REMOVE_PROJECT_VIEW_OWNER
4040 dpurdie 6759
--------------------------------------------------------
6999 dpurdie 6760
set define off;
4040 dpurdie 6761
 
6999 dpurdie 6762
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PROJECT_VIEW_OWNER" (nProjId IN NUMBER,
6763
	   	  		  						 			  nViewId IN NUMBER,
6764
										 			  sUserIdList IN VARCHAR2,
6765
										 			  nUserId IN NUMBER ) IS
5172 dpurdie 6766
 
6999 dpurdie 6767
GroupId NUMBER;
6768
 
6769
 
6770
 
6771
/******************************************************************************
6772
   NAME:       UPDATE_VIEW
6773
   PURPOSE:
6774
 
6775
   REVISIONS:
6776
   Ver        Date        Author           		Description
6777
   ---------  ----------  ---------------  ------------------------------------
6778
   1.0        10/04/2006     Rupesh Solanki     1. Created this procedure.
6779
 
6780
   NOTES:
6781
 
6782
   Automatically available Auto Replace Keywords:
6783
      Object Name:     UPDATE_VIEW
6784
      Sysdate:         10/04/2006
6785
      Date and Time:   10/04/2006, 1:55:19 PM, and 10/04/2006 1:55:19 PM
6786
      Username:         (set in TOAD Options, Procedure Editor)
6787
      Table Name:       (set in the "New PL/SQL Object" dialog)
6788
 
6789
******************************************************************************/
6790
 
6791
BEGIN
6792
	 SELECT GROUP_EMAIL_ID into GroupId
6793
	 FROM AUTOBUILD_FAILURE
6794
	 WHERE PROJ_ID = nProjId
6795
	 AND VIEW_ID = nViewId;
6796
 
6797
	 DELETE FROM MEMBERS_GROUP
6798
	 WHERE GROUP_EMAIL_ID = GroupId
6799
	 AND USER_ID IN (
6800
	 SELECT * FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
6801
	 );
6802
 
6803
 
6804
 
6805
END REMOVE_PROJECT_VIEW_OWNER;
6806
 
6807
/
4040 dpurdie 6808
--------------------------------------------------------
6999 dpurdie 6809
--  DDL for Procedure REMOVE_RELEASE_CONTENT
4040 dpurdie 6810
--------------------------------------------------------
6999 dpurdie 6811
set define off;
4040 dpurdie 6812
 
6999 dpurdie 6813
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_RELEASE_CONTENT" ( sPvIdList IN VARCHAR2,
6814
													 sNotPvIdList IN VARCHAR2,
6815
                                                     nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS
6816
/* ---------------------------------------------------------------------------
6817
    Version: 3.0
6818
   --------------------------------------------------------------------------- */
6819
 
6820
oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
6821
oNotPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
6822
 
6823
BEGIN
6824
	oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
6825
    oNotPvIdCollector := IN_LIST_NUMBER ( sNotPvIdList );
6826
 
6827
    -- Delete From Release Content
6828
    DELETE
6829
      FROM RELEASE_CONTENT
6830
	 WHERE rtag_id = nRTagId
6831
	   AND pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
6832
	   AND NOT pv_id IN ( SELECT * FROM TABLE ( CAST ( oNotPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
6833
 
6834
 
6835
 
6836
END Remove_Release_Content;
6837
 
6838
/
4040 dpurdie 6839
--------------------------------------------------------
6999 dpurdie 6840
--  DDL for Procedure REMOVE_RUNTIME
4040 dpurdie 6841
--------------------------------------------------------
6999 dpurdie 6842
set define off;
4040 dpurdie 6843
 
6999 dpurdie 6844
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_RUNTIME" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
6845
											 nRuntimeId IN RUNTIME_DEPENDENCIES.RTD_ID%TYPE,
6846
                                             nUserId IN NUMBER ) IS
6847
/* ---------------------------------------------------------------------------
6848
    Version: 3.0
6849
   --------------------------------------------------------------------------- */
5172 dpurdie 6850
 
6999 dpurdie 6851
   RuntimeDependency VARCHAR2(4000);
5172 dpurdie 6852
 
6999 dpurdie 6853
BEGIN
5172 dpurdie 6854
 
6999 dpurdie 6855
	-- Get Runtime dependency
6856
    SELECT pkg.PKG_NAME ||' '|| pv.PKG_VERSION  INTO RuntimeDependency
6857
	  FROM RUNTIME_DEPENDENCIES rtd,
6858
	  	   PACKAGES pkg,
6859
	       PACKAGE_VERSIONS pv
6860
	 WHERE rtd.PV_ID = nPvId
6861
	   AND pv.PKG_ID = pkg.PKG_ID
6862
	   AND rtd.RTD_ID = pv.PV_ID
6863
	   AND rtd.RTD_ID = nRuntimeId;
5172 dpurdie 6864
 
6999 dpurdie 6865
 
6866
	-- Delete Document
6867
    DELETE
6868
      FROM RUNTIME_DEPENDENCIES rtd
6869
     WHERE rtd.PV_ID = nPvId
6870
       AND rtd.RTD_ID = nRuntimeId;
6871
 
6872
 
6873
    /* LOG ACTION */
6874
   	Log_Action ( nPvId, 'runtime_remove', nUserId,
6875
   			     'Runtime package: '|| RuntimeDependency );
6876
 
6877
 
6878
END Remove_Runtime;
6879
 
6880
/
4040 dpurdie 6881
--------------------------------------------------------
6999 dpurdie 6882
--  DDL for Procedure RENAME_PACKAGE_VERSION
4040 dpurdie 6883
--------------------------------------------------------
6999 dpurdie 6884
set define off;
4040 dpurdie 6885
 
6999 dpurdie 6886
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RENAME_PACKAGE_VERSION" ( NNpv_id IN NUMBER,
6887
                                  SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
6888
                                  cBuildType IN CHAR,
6889
                                  cChangeType IN CHAR,
6890
                                  NNuser_id IN NUMBER,
6891
                                  errMessage OUT VARCHAR2 ) IS
6892
/* ---------------------------------------------------------------------------
6893
    Version: 3.2
6894
   --------------------------------------------------------------------------- */
6895
 
6896
    sPackageVersion VARCHAR2(4000);
6897
    sLabel VARCHAR2(4000) := NULL;
6898
    sChangeType VARCHAR2(100) := NULL;
6899
    uChangeType CHAR := cChangeType;
6900
    OldPkgVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
6901
 
6902
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
6903
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
6904
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
6905
 
6906
    CURSOR package_versions_cur IS
6907
        SELECT pv_id
6908
          FROM package_versions
6909
         WHERE pkg_id IN ( SELECT pkg_id FROM package_versions WHERE pv_id = NNpv_id )
6910
           AND pkg_version = SSpkg_version;
6911
    package_versions_rec package_versions_cur%ROWTYPE;
6912
 
6913
 
6914
BEGIN
6915
 
6916
    /* ---------------------------------------------------- */
6917
    /* Find if package_version exists                       */
6918
    /* ---------------------------------------------------- */
6919
 
6920
    errMessage := NULL;
6921
 
6922
    -- Get previous version
6923
    SELECT pv.PKG_VERSION INTO OldPkgVersion
6924
      FROM PACKAGE_VERSIONS pv
6925
     WHERE pv.PV_ID = NNpv_id;
6926
 
6927
    sPackageVersion := SSpkg_version;
6928
 
6929
    IF OldPkgVersion != sPackageVersion THEN
6930
 
6931
        OPEN package_versions_cur;
6932
        FETCH package_versions_cur INTO package_versions_rec;
6933
 
6934
        IF package_versions_cur%NOTFOUND
6935
        THEN
6936
 
6937
            -- Split current version in parts
6938
            Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
6939
 
6940
 
6941
                -- Automated built config
6942
                IF ( cBuildType = 'M' ) THEN
6943
                    uChangeType := 'F';
6944
                END IF;
6945
 
6946
                -- Automated version numbering
6947
                -- Make sure that version is still unique
6948
                IF (uChangeType != 'F') THEN
6949
                    sPackageVersion := '('|| NNpv_id ||')'|| SSV_EXT;
6950
                END IF;
6951
 
6952
                -- Packge version not found, hence rename it.
6953
                UPDATE package_versions
6954
                   SET pkg_version = sPackageVersion,
6955
                       v_mm = SSV_MM,
6956
                       v_nmm = SSV_NMM,
6957
                       v_ext = SSV_EXT,
6958
                       modified_stamp = ORA_SYSDATETIME,
6959
                       modifier_id = NNuser_id,
6960
                       build_type = cBuildType,
6961
                       change_type = uChangeType,
6962
                       pkg_label = NULL
6963
                 WHERE pv_id = NNpv_id;
6964
 
6965
                sLabel := GET_AUTOMATED_LABEL( NNpv_id );
6966
                UPDATE PACKAGE_VERSIONS pv SET
6967
                    pv.PKG_LABEL = sLabel
6968
                WHERE pv_id = NNpv_id;
6969
 
6970
 
6971
              /* LOG ACTION */
6972
              IF (cChangeType = 'F') THEN
6973
                  Log_Action ( NNpv_id, 'rename', NNuser_id, 'From '|| OldPkgVersion ||' to '|| sPackageVersion );
6974
              ELSE
6975
 
6976
                  IF cChangeType = 'M' THEN
6977
                    sChangeType := 'Major Change';
6978
                  ELSIF cChangeType = 'N' THEN
6979
                    sChangeType := 'Minor Change';
6980
                  ELSIF cChangeType = 'P' THEN
6981
                    sChangeType := 'Patch Change';
6982
                  ELSE
6983
                    sChangeType := 'Unknown Change';
6984
                  END IF;
6985
 
6986
                  Log_Action ( NNpv_id, 'rename', NNuser_id, 'From '|| OldPkgVersion ||' to '|| sPackageVersion || ',' || sChangeType );
6987
              END IF;
6988
 
6989
        ELSE
6990
            -- Package version exists. Cannot proceed.
6991
            errMessage := 'enum_MSG_VERSION_EXISTS';
6992
 
6993
        END IF;
6994
 
6995
        CLOSE package_versions_cur;
6996
 
6997
    END IF;
6998
 
6999
END Rename_Package_Version;
7000
 
7001
/
4040 dpurdie 7002
--------------------------------------------------------
6999 dpurdie 7003
--  DDL for Procedure RESET_IGNORE_WARNINGS
4040 dpurdie 7004
--------------------------------------------------------
6999 dpurdie 7005
set define off;
4040 dpurdie 7006
 
6999 dpurdie 7007
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RESET_IGNORE_WARNINGS" ( sPvIdList IN VARCHAR2,
7008
                                                    nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS
7009
/* ---------------------------------------------------------------------------
7010
    Version: 5.0
7011
   --------------------------------------------------------------------------- */
7012
 
7013
oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
7014
 
7015
BEGIN
7016
	oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
7017
 
7018
    -- Remove Ignore Warnings
7019
     DELETE
7020
       FROM ignore_warnings
7021
	  WHERE (rtag_id, pv_id, dpv_id) IN
7022
	     (
7023
	      SELECT igw.rtag_id, igw.pv_id, igw.dpv_id
7024
	        FROM ignore_warnings igw,
7025
	             package_versions dpv,
7026
	             package_versions pv
7027
	       WHERE igw.dpv_id = dpv.pv_id
7028
	         AND igw.rtag_id = nRTagId
7029
	         AND dpv.pkg_id = pv.pkg_id
7030
	         AND NVL(dpv.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|')
7031
	         AND pv.pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
7032
         );
7033
 
7034
END Reset_Ignore_Warnings;
7035
 
7036
/
4040 dpurdie 7037
--------------------------------------------------------
6999 dpurdie 7038
--  DDL for Procedure RIPPLE_PACKAGE
4040 dpurdie 7039
--------------------------------------------------------
6999 dpurdie 7040
set define off;
4040 dpurdie 7041
 
6999 dpurdie 7042
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RIPPLE_PACKAGE" (
7043
        sPvIdList IN VARCHAR2,
7044
        nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
7045
        nUserId IN NUMBER
7046
    ) IS
7047
/* ---------------------------------------------------------------------------
7048
    Version: 4.1
7049
   --------------------------------------------------------------------------- */
5172 dpurdie 7050
 
7051
BEGIN
7052
 
6999 dpurdie 7053
    IF (sPvIdList IS NULL) THEN
7054
        RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
7055
    END IF;
5172 dpurdie 7056
 
6999 dpurdie 7057
    -- Ripple Package
7058
    DELETE FROM DO_NOT_RIPPLE
7059
    WHERE RTAG_ID = nRtagId
7060
    AND PV_ID IN (
7061
        SELECT *
7062
        FROM THE (
7063
            SELECT CAST( IN_LIST_NUMBER( sPvIdList )
7064
            AS RELMGR_NUMBER_TAB_t )
7065
            FROM DUAL
7066
        )
7067
    );
5172 dpurdie 7068
 
6999 dpurdie 7069
    -- Mark Release Changed for build
7070
    PK_RELEASE.SET_RELEASE_MODIFIED(nRtagId);
5892 dpurdie 7071
 
6999 dpurdie 7072
    /* LOG ACTION */
7073
    Log_Action_Bulk ( sPvIdList, 'ripple_package', nUserId );
7074
 
7075
END Ripple_Package;
7076
 
7077
/
4040 dpurdie 7078
--------------------------------------------------------
6999 dpurdie 7079
--  DDL for Procedure SEED_PACKAGE_NAMES_VERSIONS
7080
--------------------------------------------------------
7081
set define off;
4040 dpurdie 7082
 
6999 dpurdie 7083
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,
7084
                                          SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
7085
                                          NNuser_id IN NUMBER,
7086
                                          retPV_ID OUT NUMBER,
7087
                                          nCloneFromPvId IN NUMBER DEFAULT NULL,
7088
                                          nBuildType IN CHAR DEFAULT 'U',
7089
                                          nChangeType IN CHAR DEFAULT 'F') IS
1373 dpurdie 7090
/* ---------------------------------------------------------------------------
6999 dpurdie 7091
    Version: 5.0
1373 dpurdie 7092
   --------------------------------------------------------------------------- */
7093
 
6999 dpurdie 7094
    parPkg_id   NUMBER;
7095
    parPv_id    NUMBER;
7096
    cloneFrom_pv_id NUMBER;
7097
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
7098
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
7099
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
7100
    spackageversion VARCHAR2 (4000);
7101
    slabel VARCHAR2 (4000) := NULL;
1373 dpurdie 7102
 
6999 dpurdie 7103
    CURSOR packages_cur IS
7104
        SELECT pkg_id FROM PACKAGES
7105
        WHERE pkg_name = SSpkg_name;
7106
    packages_rec packages_cur%ROWTYPE;
7107
 
7108
    CURSOR package_versions_cur IS
7109
        SELECT pv_id FROM PACKAGE_VERSIONS
7110
        WHERE pkg_id = parPkg_id
7111
        AND pkg_version = SSpkg_version;
7112
    package_versions_rec package_versions_cur%ROWTYPE;
7113
 
7114
    CURSOR clone_package_versions_cur IS
7115
        SELECT MAX(pv_id) AS pv_id
7116
          FROM PACKAGE_VERSIONS
7117
         WHERE pkg_id = parPkg_id
7118
           AND NVL(v_ext,'LINK_A_NULL') = NVL(SSV_EXT,'LINK_A_NULL');
7119
    clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
7120
 
1373 dpurdie 7121
BEGIN
6999 dpurdie 7122
    /* -------------------------------------------- */
7123
    /* Find if pkg_name exists and seed if required */
7124
    /* -------------------------------------------- */
7125
    OPEN packages_cur;
7126
    FETCH packages_cur INTO packages_rec;
6031 dpurdie 7127
 
6999 dpurdie 7128
    IF packages_cur%NOTFOUND
7129
    THEN
7130
        /* INSERT into packages table */
7131
        SELECT SEQ_PKG_ID.NEXTVAL INTO parPkg_id FROM DUAL;
7132
        INSERT INTO PACKAGES ( pkg_id, pkg_name ) VALUES ( parPkg_id, SSpkg_name );
6031 dpurdie 7133
 
6999 dpurdie 7134
    ELSE
7135
        parPkg_id := packages_rec.pkg_id;
6031 dpurdie 7136
 
6999 dpurdie 7137
    END IF;
6031 dpurdie 7138
 
6999 dpurdie 7139
    CLOSE packages_cur;
5172 dpurdie 7140
 
6031 dpurdie 7141
 
6999 dpurdie 7142
    /* ---------------------------------------------------- */
7143
    /* Find if package_version exists and seed if required  */
7144
    /* ---------------------------------------------------- */
7145
    OPEN package_versions_cur;
7146
    FETCH package_versions_cur INTO package_versions_rec;
5172 dpurdie 7147
 
6999 dpurdie 7148
    IF package_versions_cur%NOTFOUND
7149
    THEN
7150
        SELECT SEQ_PV_ID.NEXTVAL INTO parPv_id FROM DUAL;
6031 dpurdie 7151
 
6999 dpurdie 7152
        /* Generate automated version Number */
7153
        Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
7154
        spackageversion := SSpkg_version;
6031 dpurdie 7155
 
6999 dpurdie 7156
        IF ( nChangeType <> 'F' )
7157
        THEN
7158
            spackageversion := '(' || parPv_id || ')' || SSV_EXT;
7159
        END If;
5172 dpurdie 7160
 
6999 dpurdie 7161
        /*  Determine clone source for new package-version
7162
            Use nCloneFromPvId - iff provided
7163
            Use most recently created pkgName/pkgExtension - if it exists
7164
            Else create a brand new package-version
7165
        */
6031 dpurdie 7166
 
6999 dpurdie 7167
        IF ( NOT nCloneFromPvId IS NULL) THEN
7168
            cloneFrom_pv_id := nCloneFromPvId;
7169
        ELSE
7170
            /* Find similar pkg_name + ext to clone from */
7171
            OPEN clone_package_versions_cur;
7172
            FETCH clone_package_versions_cur INTO clone_package_versions_rec;
7173
            CLOSE clone_package_versions_cur;
5172 dpurdie 7174
 
6999 dpurdie 7175
            IF ( NOT clone_package_versions_rec.pv_id IS NULL) THEN
7176
                cloneFrom_pv_id := clone_package_versions_rec.pv_id;
7177
            ELSE
7178
                cloneFrom_pv_id := NULL;
7179
            END IF;
1373 dpurdie 7180
 
6999 dpurdie 7181
        END IF;
6031 dpurdie 7182
 
6999 dpurdie 7183
        IF NOT cloneFrom_pv_id IS NULL
7184
        THEN
7185
            -- Clone Package Version Details --
7186
            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,
7187
                                           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  )
7188
                SELECT parPv_id         AS pv_id,
7189
                       parPkg_id        AS pkg_id,
7190
                       spackageversion  AS pkg_version,
7191
                       'N'              AS dlocked,
7000 dpurdie 7192
                       ora_sysdatetime  AS created_stamp,
6999 dpurdie 7193
                       NNuser_id        AS creator_id,
7194
                       Ora_Sysdatetime  AS modified_stamp,
7195
                       NNuser_id        AS modifier_id,
7196
                       SSV_MM           AS V_MM,
7197
                       SSV_NMM          AS V_NMM,
7198
                       SSV_EXT          AS V_EXT,
7199
                       pv.src_path,
7200
                       pv.pv_description,
7201
                       pv.PV_OVERVIEW,
7202
                       cloneFrom_pv_id  AS LAST_PV_ID,
7203
                       pv.owner_id,
7204
                       nBuildType       AS BUILD_TYPE,
7205
                       pv.IS_BUILD_ENV_REQUIRED,
7206
                       pv.BS_ID,
7207
                       pv.is_autobuildable,
7208
                       pv.IS_DEPLOYABLE,
7209
                       pv.ripple_field,
7210
                       nChangeType       AS change_type
7211
                  FROM PACKAGE_VERSIONS pv
7212
                 WHERE pv.pv_id = cloneFrom_pv_id;
6031 dpurdie 7213
 
6999 dpurdie 7214
            Basic_Clone ( cloneFrom_pv_id, parPv_id, NULL, NNuser_id, parPkg_id, 0 );
1373 dpurdie 7215
 
6999 dpurdie 7216
        ELSE
7217
            /* BRAND NEW version + ext */
7218
            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 )
7219
            VALUES (
7220
                    parPv_id,
7221
                    parPkg_id,
7222
                    spackageversion,
7223
                    'N',
7000 dpurdie 7224
                    ora_sysdatetime,
6999 dpurdie 7225
                    NNuser_id,
7226
                    Ora_Sysdatetime,
7227
                    NNuser_id,
7228
                    SSV_MM,
7229
                    SSV_NMM,
7230
                    SSV_EXT,
7231
                    NNuser_id,
7232
                    parPv_id,
7233
                    nBuildType,
7234
                    'b',
7235
                    nChangeType
7236
                   );
7237
        END IF;
6031 dpurdie 7238
 
6999 dpurdie 7239
        /* Insert initial package label */
7240
        slabel := get_automated_label (parPv_id);
7241
        UPDATE package_versions pv
7242
        SET pv.pkg_label = slabel
7243
        WHERE pv.pv_id = parPv_id;
4040 dpurdie 7244
 
6999 dpurdie 7245
        retPV_ID := parPv_id;
7246
 
7247
        /* LOG ACTION */
7248
        Log_Action ( parPv_id, 'new_version', NNuser_id,
7249
                     'New package version: '|| spackageversion );
7250
 
7251
    ELSE
7252
        retPV_ID := package_versions_rec.pv_id;
7253
 
7254
    END IF;
7255
 
7256
    CLOSE package_versions_cur;
7257
 
7258
END Seed_Package_Names_Versions;
7259
 
1374 dpurdie 7260
/
6999 dpurdie 7261
 
7262
  GRANT EXECUTE ON "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 7263
--------------------------------------------------------
6999 dpurdie 7264
--  DDL for Procedure SET_ADVISORY_RIPPLE
4040 dpurdie 7265
--------------------------------------------------------
6999 dpurdie 7266
set define off;
4040 dpurdie 7267
 
6999 dpurdie 7268
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_ADVISORY_RIPPLE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
7269
	   	  		  							   nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
7270
											 nUserId IN NUMBER ) IS
7271
/* ---------------------------------------------------------------------------
7272
    Version: 4.0
7273
   --------------------------------------------------------------------------- */
4040 dpurdie 7274
 
6999 dpurdie 7275
BEGIN
7276
 
7277
    -- Set Advisory Ripple Package
7278
    INSERT INTO ADVISORY_RIPPLE (RTAG_ID, PV_ID)
7279
	VALUES (nRtagId, nPvId);
7280
 
7281
    /* LOG ACTION */
7282
   	Log_Action ( nPvId, 'set_advisory_ripple', nUserId );
7283
 
7284
	/*Rebuild_Environment(nRtagId);*/
7285
 
7286
END Set_Advisory_Ripple;
7287
 
7288
/
4040 dpurdie 7289
--------------------------------------------------------
6999 dpurdie 7290
--  DDL for Procedure SET_PACKAGE_BUILD_ENV
4040 dpurdie 7291
--------------------------------------------------------
6999 dpurdie 7292
set define off;
4040 dpurdie 7293
 
6999 dpurdie 7294
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV" ( nPvId IN PACKAGE_BUILD_ENV.PV_ID%TYPE,
7295
	   	  		  								  	sBuildEnvIdList IN VARCHAR2 ) IS
3959 dpurdie 7296
/* ---------------------------------------------------------------------------
6999 dpurdie 7297
    Last Modified: Rupesh Solanki
7298
	Version: 3.0.1
3959 dpurdie 7299
   --------------------------------------------------------------------------- */
7300
 
7301
 
1373 dpurdie 7302
BEGIN
7303
 
6999 dpurdie 7304
   -- Delete Current Build Env settings
7305
   DELETE FROM PACKAGE_BUILD_ENV
7306
   WHERE pv_id = nPvId;
3959 dpurdie 7307
 
6999 dpurdie 7308
   -- Delet Current Package Build Info Settings
7309
   DELETE FROM PACKAGE_BUILD_INFO
7310
   WHERE pv_id = nPvId;
3959 dpurdie 7311
 
6999 dpurdie 7312
   -- Reset flag to N
7313
   UPDATE PACKAGE_VERSIONS SET
7314
	   IS_BUILD_ENV_REQUIRED = 'N'
7315
   WHERE PV_ID = nPvId;
4211 dpurdie 7316
 
3959 dpurdie 7317
 
6999 dpurdie 7318
   -- Set new Build Env
7319
   IF NOT sBuildEnvIdList IS NULL THEN
7320
   	  -- Insert into PACKAGE_BUILD_ENV
7321
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
7322
	  SELECT nPvId AS PV_ID,
7323
	  		 be.BE_ID
7324
	    FROM BUILD_ENVIRONMENTS be
7325
	   WHERE be.BE_ID IN (
7326
	   		 		  	   SELECT *
7327
					   	     FROM THE ( SELECT CAST( IN_LIST_NUMBER( sBuildEnvIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
7328
	   		 		  	 );
4040 dpurdie 7329
 
6999 dpurdie 7330
   	  -- Insert into PACKAGE_BUILD_INFO
7331
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
7332
	  SELECT nPvId AS PV_ID,
7333
	  		 be.BM_ID
7334
	    FROM BUILD_MACHINES be
7335
	   WHERE be.BM_ID IN (
7336
	   		 		  	   SELECT *
7337
					   	     FROM THE ( SELECT CAST( IN_LIST_NUMBER( sBuildEnvIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
7338
	   		 		  	 );
7339
 
7340
	   -- Set flag to Y
7341
	   UPDATE PACKAGE_VERSIONS SET
7342
		   IS_BUILD_ENV_REQUIRED = 'Y'
7343
	   WHERE PV_ID = nPvId;
7344
 
7345
   END IF;
7346
 
7347
 
7348
END Set_Package_Build_Env;
7349
 
7350
/
4040 dpurdie 7351
--------------------------------------------------------
6999 dpurdie 7352
--  DDL for Procedure SET_PACKAGE_BUILD_ENV_TEMP
4040 dpurdie 7353
--------------------------------------------------------
6999 dpurdie 7354
set define off;
4040 dpurdie 7355
 
6999 dpurdie 7356
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV_TEMP" ( nPvId IN PACKAGE_BUILD_ENV.PV_ID%TYPE,
7357
	   	  		  								  	   	 sBuildEnvIdList IN VARCHAR2,
7358
														 nBuildStandard IN PACKAGE_VERSIONS.BS_ID%TYPE
7359
														 ) IS
1373 dpurdie 7360
/* ---------------------------------------------------------------------------
6999 dpurdie 7361
    Last Modified: Rupesh Solanki
7362
	Version: 3.0.1
1373 dpurdie 7363
   --------------------------------------------------------------------------- */
6999 dpurdie 7364
 
7365
   nBsCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
7366
   BsId NUMBER;
7367
   HackBsId NUMBER;
7368
 
7369
 
1373 dpurdie 7370
BEGIN
4040 dpurdie 7371
 
6999 dpurdie 7372
   nBsCollector := IN_LIST_NUMBER ( sBuildEnvIdList );
7373
 
7374
   -- Delete Current Build Env settings
7375
   DELETE FROM PACKAGE_BUILD_ENV
7376
   WHERE pv_id = nPvId;
7377
 
7378
   -- Delet Current Package Build Info Settings
7379
   DELETE FROM PACKAGE_BUILD_INFO
7380
   WHERE pv_id = nPvId;
7381
 
7382
   -- Reset flag to N
7383
   UPDATE PACKAGE_VERSIONS SET
7384
	   IS_BUILD_ENV_REQUIRED = 'N'
7385
   WHERE PV_ID = nPvId;
7386
 
7387
 
7388
   -- Set new Build Env
7389
   IF NOT sBuildEnvIdList IS NULL THEN
7390
	FOR i IN 1..nBsCollector.COUNT
7391
	LOOP
7392
 
7393
	BsId := nBsCollector(i);
7394
 
7395
	IF nBuildStandard = 2 THEN
7396
	   IF BsId = 1 THEN
7397
	   	  HackBsId := 11;
7398
	   ELSE
7399
	   	  HackBsId := 12;
7400
	   END IF;
7401
 
7402
   	  -- Insert into PACKAGE_BUILD_ENV
7403
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
7404
	  SELECT nPvId AS PV_ID,
7405
	  		 be.BE_ID
7406
	    FROM BUILD_ENVIRONMENTS be
7407
	   WHERE be.BE_ID IN ( HackBsId );
7408
 
7409
   	  -- Insert into PACKAGE_BUILD_INFO
7410
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
7411
	  SELECT nPvId AS PV_ID,
7412
	  		 be.BM_ID
7413
	    FROM BUILD_MACHINES be
7414
	   WHERE be.BM_ID IN ( BsId );
7415
 
7416
	   -- Set flag to Y
7417
	   UPDATE PACKAGE_VERSIONS SET
7418
		   IS_BUILD_ENV_REQUIRED = 'Y'
7419
	   WHERE PV_ID = nPvId;
7420
 
7421
 
7422
	ELSE
7423
 
7424
   	  -- Insert into PACKAGE_BUILD_ENV
7425
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
7426
	  SELECT nPvId AS PV_ID,
7427
	  		 be.BE_ID
7428
	    FROM BUILD_ENVIRONMENTS be
7429
	   WHERE be.BE_ID IN ( BsId );
7430
 
7431
   	  -- Insert into PACKAGE_BUILD_INFO
7432
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
7433
	  SELECT nPvId AS PV_ID,
7434
	  		 be.BM_ID
7435
	    FROM BUILD_MACHINES be
7436
	   WHERE be.BM_ID IN ( BsId );
7437
 
7438
	   -- Set flag to Y
7439
	   UPDATE PACKAGE_VERSIONS SET
7440
		   IS_BUILD_ENV_REQUIRED = 'Y'
7441
	   WHERE PV_ID = nPvId;
7442
 
7443
	END IF;
7444
 
7445
 
7446
	END LOOP;
7447
 
7448
   END IF;
7449
 
7450
 
7451
END Set_Package_Build_Env_Temp;
7452
 
7453
/
4040 dpurdie 7454
--------------------------------------------------------
6999 dpurdie 7455
--  DDL for Procedure SET_TO_AUTOBUILDABLE
4040 dpurdie 7456
--------------------------------------------------------
6999 dpurdie 7457
set define off;
4040 dpurdie 7458
 
6999 dpurdie 7459
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_TO_AUTOBUILDABLE" (
7460
   nrtagid     IN   NUMBER,
7461
   spvidlist   IN   VARCHAR2
7462
)
1373 dpurdie 7463
IS
6999 dpurdie 7464
/******************************************************************************
7465
   NAME:       SET_TO_AUTOBUILDABLE
7466
   PURPOSE:
7467
 
7468
   REVISIONS:
7469
   Ver        Date        Author           Description
7470
   ---------  ----------  ---------------  ------------------------------------
7471
   1.0        15/12/2006   Rupesh Solanki       1. Created this procedure.
7472
 
7473
   NOTES:
7474
 
7475
   Automatically available Auto Replace Keywords:
7476
      Object Name:     SET_TO_AUTOBUILDABLE
7477
      Sysdate:         15/12/2006
7478
      Date and Time:   15/12/2006, 11:42:29 AM, and 15/12/2006 11:42:29 AM
7479
      Username:         (set in TOAD Options, Procedure Editor)
7480
      Table Name:       (set in the "New PL/SQL Object" dialog)
7481
 
7482
******************************************************************************/
7483
   npvidcollector   relmgr_number_tab_t := relmgr_number_tab_t ();
7484
   PvId NUMBER;
1373 dpurdie 7485
BEGIN
4040 dpurdie 7486
 
6999 dpurdie 7487
   npvidcollector := in_list_number2 (spvidlist);
7488
 
7489
   UPDATE package_versions
7490
      SET is_autobuildable = 'N'
7491
    WHERE pv_id IN (SELECT pv_id
7492
                      FROM release_content
7493
                     WHERE rtag_id = nrtagid);
7494
 
7495
 
7496
 
7497
   	FOR i IN 1..npvidcollector.COUNT
7498
	LOOP
7499
		PvId := npvidcollector(i);
7500
 
7501
		UPDATE package_versions
7502
		set is_autobuildable = 'Y'
7503
		where pv_id = PvId;
7504
 
7505
	END LOOP;
7506
 
7507
 
7508
END set_to_autobuildable;
7509
 
7510
/
4040 dpurdie 7511
--------------------------------------------------------
6999 dpurdie 7512
--  DDL for Procedure SHIFT_INSTALL_ORDER
4040 dpurdie 7513
--------------------------------------------------------
6999 dpurdie 7514
set define off;
4040 dpurdie 7515
 
6999 dpurdie 7516
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SHIFT_INSTALL_ORDER" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,
7517
												  nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,
7518
                                                  nToInstallOrder IN PACKAGE_PATCHES.INSTALL_ORDER%TYPE ) IS
7519
/* ---------------------------------------------------------------------------
7520
    Version: 3.0
7521
   --------------------------------------------------------------------------- */
7522
 
7523
currInstallOrder NUMBER;
7524
FromInstallOrder NUMBER;
7525
 
1373 dpurdie 7526
BEGIN
3959 dpurdie 7527
 
6999 dpurdie 7528
	 -- Get Current Install Order
7529
     SELECT pp.INSTALL_ORDER INTO currInstallOrder
7530
       FROM PACKAGE_PATCHES pp
7531
      WHERE pp.PV_ID = nPvId
7532
        AND pp.PATCH_ID = nPatchId;
4040 dpurdie 7533
 
5892 dpurdie 7534
 
6999 dpurdie 7535
	 IF currInstallOrder > nToInstallOrder
7536
	 THEN
7537
 
7538
		FromInstallOrder := nToInstallOrder;
7539
 
7540
	    -- Shift others Up
7541
		UPDATE PACKAGE_PATCHES pp SET
7542
			   pp.INSTALL_ORDER = pp.INSTALL_ORDER + 1
7543
		 WHERE pp.PV_ID = nPvId
7544
           AND pp.PATCH_ID != nPatchId
7545
		   AND pp.INSTALL_ORDER BETWEEN  FromInstallOrder  AND  currInstallOrder - 1;
7546
 
7547
 
7548
	 ELSIF currInstallOrder < nToInstallOrder
7549
	 THEN
7550
 
7551
		FromInstallOrder := currInstallOrder + 1;
7552
 
7553
		-- Shift others Down
7554
        UPDATE PACKAGE_PATCHES pp SET
7555
			   pp.INSTALL_ORDER = pp.INSTALL_ORDER - 1
7556
		 WHERE pp.PV_ID = nPvId
7557
           AND pp.PATCH_ID != nPatchId
7558
		   AND pp.INSTALL_ORDER BETWEEN  FromInstallOrder  AND  nToInstallOrder;
7559
 
7560
	 END IF;
7561
 
7562
 
7563
	 -- Move Patch to new install order
7564
     UPDATE PACKAGE_PATCHES pp SET
7565
		    pp.INSTALL_ORDER = nToInstallOrder
7566
	  WHERE pp.PV_ID = nPvId
7567
	    AND pp.PATCH_ID = nPatchId;
7568
 
7569
 
7570
END Shift_Install_Order;
7571
 
7572
/
4040 dpurdie 7573
--------------------------------------------------------
6999 dpurdie 7574
--  DDL for Procedure SPLIT_VERSION
4040 dpurdie 7575
--------------------------------------------------------
6999 dpurdie 7576
set define off;
4040 dpurdie 7577
 
6999 dpurdie 7578
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SPLIT_VERSION" ( SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
7579
                                            SSV_MM OUT PACKAGE_VERSIONS.V_MM%TYPE,
7580
                                            SSV_NMM OUT PACKAGE_VERSIONS.V_NMM%TYPE,
7581
                                            SSV_EXT OUT PACKAGE_VERSIONS.V_EXT%TYPE  ) IS
1373 dpurdie 7582
/* ---------------------------------------------------------------------------
3959 dpurdie 7583
    Version: 3.0.0
1373 dpurdie 7584
   --------------------------------------------------------------------------- */
3959 dpurdie 7585
 
6999 dpurdie 7586
    TYPE VERSION_COMPONENTS_TYPE IS TABLE OF VARCHAR2(50)
7587
        INDEX BY BINARY_INTEGER;
3959 dpurdie 7588
 
6999 dpurdie 7589
    version_components VERSION_COMPONENTS_TYPE;
7590
    lastDot NUMBER := 0;
7591
    currDot NUMBER := 0;
7592
 
1373 dpurdie 7593
BEGIN
6999 dpurdie 7594
    currDot := INSTR ( SSpkg_version, '.', -1 );      -- Find 1st dot from the right
3959 dpurdie 7595
 
6999 dpurdie 7596
    IF ( currDot > 0 )
1373 dpurdie 7597
    THEN
3959 dpurdie 7598
        -- YES dot separator found --
6999 dpurdie 7599
        SSV_EXT := GET_V_EXT( SSpkg_version );
3959 dpurdie 7600
 
6999 dpurdie 7601
        IF NOT SSV_EXT IS NULL
3959 dpurdie 7602
        THEN
6999 dpurdie 7603
            lastDot := currDot;
7604
            currDot := INSTR ( SSpkg_version, '.', -1, 2 );   -- Find 2nd dot from the right
7605
 
7606
            IF ( currDot > 0 )
7607
            THEN
7608
                -- XXXX.M.E
7609
                SSV_MM := SUBSTR ( SSpkg_version, currDot + 1, lastDot - currDot - 1);
7610
                SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot ) || SSV_EXT;
7611
            ELSE
7612
                -- XXXX.E
7613
                SSV_MM := NULL;
7614
                SSV_NMM := SSpkg_version;
7615
            END IF;
7616
 
3959 dpurdie 7617
        ELSE
6999 dpurdie 7618
            -- XXXX.M
7619
            SSV_MM := SUBSTR ( SSpkg_version, currDot + 1, LENGTH(SSpkg_version) - currDot );
7620
            SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot );
7621
 
3959 dpurdie 7622
        END IF;
7623
 
1373 dpurdie 7624
    ELSE
3959 dpurdie 7625
        -- NO dot separator found --
6999 dpurdie 7626
        -- XXXXXX
7627
        SSV_MM  := NULL;
7628
        SSV_NMM := SSpkg_version;
7629
        SSV_EXT := NULL;
7630
 
1373 dpurdie 7631
    END IF;
3959 dpurdie 7632
 
6999 dpurdie 7633
END Split_Version;
4040 dpurdie 7634
 
6999 dpurdie 7635
/
4040 dpurdie 7636
--------------------------------------------------------
6999 dpurdie 7637
--  DDL for Procedure SWITCH_REPRODUCIBLE_PACKAGE
4040 dpurdie 7638
--------------------------------------------------------
6999 dpurdie 7639
set define off;
4040 dpurdie 7640
 
6999 dpurdie 7641
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SWITCH_REPRODUCIBLE_PACKAGE" (nPvId IN NUMBER, nUserId IN NUMBER)IS
7642
Auto CHAR;
7643
/******************************************************************************
7644
   NAME:       SWITCH_REPRODUCIBLE_PACKAGE
7645
   PURPOSE:
1373 dpurdie 7646
 
6999 dpurdie 7647
   REVISIONS:
7648
   Ver        Date        Author           Description
7649
   ---------  ----------  ---------------  ------------------------------------
7650
   1.0        14/12/2006   Rupesh Solanki       1. Created this procedure.
7651
 
7652
   NOTES:
7653
 
7654
   Automatically available Auto Replace Keywords:
7655
      Object Name:     SWITCH_REPRODUCIBLE_PACKAGE
7656
      Sysdate:         14/12/2006
7657
      Date and Time:   14/12/2006, 11:35:15 AM, and 14/12/2006 11:35:15 AM
7658
      Username:         (set in TOAD Options, Procedure Editor)
7659
      Table Name:       (set in the "New PL/SQL Object" dialog)
7660
 
7661
******************************************************************************/
7662
BEGIN
7663
 
7664
	 SELECT IS_AUTOBUILDABLE into Auto
7665
	 FROM PACKAGE_VERSIONS
7666
	 WHERE PV_ID = nPvId;
7667
 
7668
	 IF Auto = 'N' Then
7669
 
7670
	 	UPDATE PACKAGE_VERSIONS
7671
	 	SET IS_AUTOBUILDABLE = 'Y'
7672
	 	WHERE PV_ID = nPvId;
7673
 
7674
 
7675
	 	/* LOG ACTION */
7676
   		Log_Action ( nPvId, 'reproducible_package', nUserId );
7677
 
7678
	 Else
7679
 
7680
		 UPDATE PACKAGE_VERSIONS
7681
		 SET IS_AUTOBUILDABLE = 'N'
7682
		 WHERE PV_ID = nPvId;
7683
 
7684
 
7685
	 	 /* LOG ACTION */
7686
   	 	 Log_Action ( nPvId, 'unreproducible_package', nUserId );
7687
 
7688
	 End If;
7689
 
7690
 
7691
 
7692
 
7693
 
7694
 
7695
 
7696
 
7697
END SWITCH_REPRODUCIBLE_PACKAGE;
7698
 
7699
/
7700
--------------------------------------------------------
7701
--  DDL for Procedure SYNC_PROJECTS_NEW_VERSION
7702
--------------------------------------------------------
7703
set define off;
7704
 
7705
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SYNC_PROJECTS_NEW_VERSION" ( nPv_id 				IN NUMBER,
7706
														  sSyncRtagsInList		IN VARCHAR2,
7707
				                                          nUser_id 				IN NUMBER ) IS
1373 dpurdie 7708
/* ---------------------------------------------------------------------------
7709
    Version: 3.0.0
7710
   --------------------------------------------------------------------------- */
7711
 
6999 dpurdie 7712
	CURSOR sync_rtags_cur IS
7713
        SELECT rc.RTAG_ID, rc.BASE_VIEW_ID, pv.pv_id
7714
		  FROM release_content rc,
7715
		  	   package_versions pv,
7716
		       package_versions opv
7717
		 WHERE rc.pv_id = pv.pv_id
7718
		   AND opv.pkg_id = pv.pkg_id
7719
		   AND NVL(opv.v_ext, '|LINK_A_NULL|') = NVL(pv.v_ext, '|LINK_A_NULL|')
7720
		   AND opv.pv_id = nPv_id
7721
		   AND rtag_id IN ( SELECT *
7722
		   	   		   	      FROM THE (
7723
					   	   		   	    SELECT CAST( IN_LIST_NUMBER( sSyncRtagsInList ) AS RELMGR_NUMBER_TAB_t )
7724
					       		   	    FROM dual
7725
									   )
7726
						  );
7727
    sync_rtags_rec sync_rtags_cur%ROWTYPE;
1373 dpurdie 7728
 
7729
BEGIN
7730
 
6999 dpurdie 7731
	OPEN sync_rtags_cur;
7732
	FETCH sync_rtags_cur INTO sync_rtags_rec;
1373 dpurdie 7733
 
6999 dpurdie 7734
	WHILE sync_rtags_cur%FOUND
7735
	LOOP
7736
		DELETE FROM RELEASE_CONTENT
7737
		 WHERE rtag_id = sync_rtags_rec.rtag_id
7738
	       AND pv_id = sync_rtags_rec.pv_id;
4040 dpurdie 7739
 
6999 dpurdie 7740
		INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )
7741
	   		   VALUES ( sync_rtags_rec.rtag_id,
7742
		       		  	nPv_id,
7743
						sync_rtags_rec.BASE_VIEW_ID,
7000 dpurdie 7744
	           			ora_sysdatetime,
6999 dpurdie 7745
	           			nUser_id,
7746
 
7747
	      	   		   );
7748
 
7749
-- 		UPDATE RELEASE_CONTENT
7750
-- 	       SET pv_id = nPv_id,
7000 dpurdie 7751
-- 	           insert_stamp = ora_sysdatetime,
6999 dpurdie 7752
-- 	           insertor_id = nUser_id
7753
-- 	     WHERE rtag_id = sync_rtags_rec.rtag_id
7754
-- 	       AND pv_id = sync_rtags_rec.pv_id;
7755
 
7756
		FETCH sync_rtags_cur INTO sync_rtags_rec;
7757
	END LOOP;
7758
 
7759
	CLOSE sync_rtags_cur;
7760
 
7761
END Sync_Projects_New_Version;
7762
 
7763
/
4040 dpurdie 7764
--------------------------------------------------------
6999 dpurdie 7765
--  DDL for Procedure TOUCH_RELEASE
4040 dpurdie 7766
--------------------------------------------------------
6999 dpurdie 7767
set define off;
4040 dpurdie 7768
 
6999 dpurdie 7769
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE" ( nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS
7770
/* ---------------------------------------------------------------------------
7771
    The purpose of this procedure is to flag in the database that the specified
7772
    release has changed to an extent that the procedure Rebuild_Environment
7773
    should be called at the next opportunity in order that the package state
7774
    icons are all re-evaluated.
7775
    The package state icons are controlled using the pkg_state column in the
7776
    release_content table, and Rebuild_Environment updates that column.
7777
    It will be through user action in the website that Rebuild_Environment will
7778
    be called, for example:
7779
      a) when setting/clearing ignore warnings checkboxes
7780
      b) when someone opens a page upon a rtag/pvid and rebuild_en flag is set
7781
      c) when someone opens the build order report form
7782
      d) when someone modifies dependencies of a package
7783
      + other scenarios (?)
7784
   --------------------------------------------------------------------------- */
7785
BEGIN
7786
   -- Touch Release for Rebuild
7787
   UPDATE RELEASE_TAGS rt SET
7788
          rt.REBUILD_ENV = 'Y',
7789
          rt.REBUILD_STAMP = 0
7790
    WHERE rt.RTAG_ID = nRtagId;
1373 dpurdie 7791
 
6999 dpurdie 7792
END Touch_Release;
7793
 
7794
/
7795
--------------------------------------------------------
7796
--  DDL for Procedure TOUCH_RELEASE_BULK
7797
--------------------------------------------------------
7798
set define off;
7799
 
7800
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE_BULK" ( nRtagIdList IN VARCHAR2 ) IS
1373 dpurdie 7801
/* ---------------------------------------------------------------------------
6999 dpurdie 7802
    Version: 3.0
1373 dpurdie 7803
   --------------------------------------------------------------------------- */
7804
 
6999 dpurdie 7805
oRTagIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
1373 dpurdie 7806
 
7807
BEGIN
6999 dpurdie 7808
	 oRTagIdCollector := IN_LIST_NUMBER ( nRtagIdList );
1373 dpurdie 7809
 
6999 dpurdie 7810
	 -- Touch Release for Rebuild
7811
     UPDATE RELEASE_TAGS rt SET
7812
     	rt.REBUILD_ENV = 'Y',
7813
        rt.REBUILD_STAMP = 0
7814
      WHERE rt.RTAG_ID IN ( SELECT * FROM TABLE ( CAST ( oRTagIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
1373 dpurdie 7815
 
4040 dpurdie 7816
 
6999 dpurdie 7817
END Touch_Release_Bulk;
7818
 
7819
/
4040 dpurdie 7820
--------------------------------------------------------
6999 dpurdie 7821
--  DDL for Procedure TO_INSERT_VTREE_ID
4040 dpurdie 7822
--------------------------------------------------------
6999 dpurdie 7823
set define off;
4040 dpurdie 7824
 
6999 dpurdie 7825
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TO_INSERT_VTREE_ID" IS
1373 dpurdie 7826
 
6999 dpurdie 7827
/******************************************************************************
7828
   NAME:       TO_INSERT_VTREE_ID
7829
   PURPOSE:
7830
 
7831
   REVISIONS:
7832
   Ver        Date        Author           Description
7833
   ---------  ----------  ---------------  ------------------------------------
7834
   1.0        2/02/2007          1. Created this procedure.
7835
 
7836
   NOTES:
7837
 
7838
   Automatically available Auto Replace Keywords:
7839
      Object Name:     TO_INSERT_VTREE_ID
7840
      Sysdate:         2/02/2007
7841
      Date and Time:   2/02/2007, 8:42:56 AM, and 2/02/2007 8:42:56 AM
7842
      Username:         (set in TOAD Options, Procedure Editor)
7843
      Table Name:       (set in the "New PL/SQL Object" dialog)
7844
 
7845
******************************************************************************/
7846
VTreeId NUMBER;
7847
 
7848
 
7849
	CURSOR curInfo IS
7850
    SELECT RTAG_ID
7851
	FROM RELEASE_TAGS
7852
	WHERE VTREE_ID IS NULL;
7853
    recInfo curInfo%ROWTYPE;
7854
 
7855
 
7856
BEGIN
7857
 
7858
	OPEN curInfo;
7859
    FETCH curInfo INTO recInfo;
7860
 
7861
	WHILE curInfo%FOUND
7862
	LOOP
7863
		SELECT SEQ_VTREE_ID.nextval INTO VTreeId FROM DUAL;
7864
 
7865
		UPDATE RELEASE_TAGS
7866
		SET VTREE_ID = VTreeId
7867
		WHERE RTAG_ID = recInfo.RTAG_ID;
7868
 
7869
		FETCH curInfo INTO recInfo;
7870
	END LOOP;
7871
 
7872
	CLOSE curInfo;
7873
 
7874
END TO_INSERT_VTREE_ID;
7875
 
7876
/
7877
--------------------------------------------------------
7878
--  DDL for Procedure UNDEPRECATE_PACKAGE
7879
--------------------------------------------------------
7880
set define off;
7881
 
7882
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNDEPRECATE_PACKAGE" (
7883
    nPvId   IN PACKAGE_VERSIONS.PV_ID%TYPE,
7884
    nRtagId IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,
7885
    nPkgId  IN DEPRECATED_PACKAGES.PKG_ID%TYPE,
7886
    nUserId IN NUMBER)
7887
IS
7888
  ext      VARCHAR2(50);
7889
 
7890
BEGIN
7891
  --Extract the package extension
7892
  SELECT V_EXT INTO ext
7893
  FROM PACKAGE_VERSIONS
7894
  WHERE PV_ID = nPvId;
7895
 
7896
    -- Undeprecate Package
7897
    DELETE
7898
    FROM DEPRECATED_PACKAGES
7899
    WHERE RTAG_ID = nRtagId
7900
    AND PKG_ID    = nPkgId
7901
    AND NVL(V_EXT,'.NULL') = NVL(ext,'.NULL');
7902
 
7903
    -- Update Release Contents entry
7904
    -- Process PackageName.ext for the package. ie: Allow multiple
7905
    -- versions of the package to be in the release.
7906
 
7907
    UPDATE RELEASE_CONTENT
7908
    SET
7909
      DEPRECATED_STATE = NULL
7910
    WHERE RTAG_ID      = nRtagId
7911
    AND PV_ID IN (
7912
      SELECT PV.PV_ID
7913
      FROM PACKAGE_VERSIONS PV
7914
      WHERE PV.PKG_ID   = nPkgId
7915
      AND NVL(PV.V_EXT, '.NULL') = NVL(ext,'.NULL')
7916
      );
7917
 
7918
  -- Update consumers of the package
7919
  --  Update ALL packages in the Release
7920
 
7921
  REBUILD_DEPRECATE_STATE(nRtagId);
7922
 
7923
END Undeprecate_Package;
7924
 
7925
/
7926
--------------------------------------------------------
7927
--  DDL for Procedure UNLOCK_PACKAGE
7928
--------------------------------------------------------
7929
set define off;
7930
 
7931
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNLOCK_PACKAGE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
7932
											 nUserId IN NUMBER ) IS
1373 dpurdie 7933
/* ---------------------------------------------------------------------------
6999 dpurdie 7934
    Author: Rupesh Solanki
7935
 
7936
	Version: 4.0
1373 dpurdie 7937
   --------------------------------------------------------------------------- */
6999 dpurdie 7938
   STATE CHAR;
1373 dpurdie 7939
 
7940
BEGIN
7941
 
6999 dpurdie 7942
	SELECT DLOCKED INTO STATE
7943
	FROM PACKAGE_VERSIONS
7944
	WHERE PV_ID = nPvId;
6031 dpurdie 7945
 
6999 dpurdie 7946
	IF STATE = 'A' THEN --It was made official for autobuilds
7947
		-- Unlock Package
7948
		UPDATE PACKAGE_VERSIONS pv SET
7949
		pv.DLOCKED = 'P'
7950
		WHERE pv.PV_ID = nPvId;
7951
	ELSE
7952
		-- Unlock Package
7953
		UPDATE PACKAGE_VERSIONS pv SET
7954
		pv.DLOCKED = 'N'
7955
		WHERE pv.PV_ID = nPvId;
6031 dpurdie 7956
 
1373 dpurdie 7957
	END IF;
7958
 
6999 dpurdie 7959
    /* LOG ACTION */
7960
   	Log_Action ( nPvId, 'unlock_package', nUserId );
4040 dpurdie 7961
 
6999 dpurdie 7962
END Unlock_Package;
7963
 
7964
/
4040 dpurdie 7965
--------------------------------------------------------
6999 dpurdie 7966
--  DDL for Procedure UNRIPPLE_PACKAGE
4040 dpurdie 7967
--------------------------------------------------------
6999 dpurdie 7968
set define off;
4040 dpurdie 7969
 
6999 dpurdie 7970
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNRIPPLE_PACKAGE" (
7971
        sPvIdList IN VARCHAR2,
7972
        nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
7973
        nUserId IN NUMBER
7974
    ) IS
3959 dpurdie 7975
/* ---------------------------------------------------------------------------
6999 dpurdie 7976
    Version: 4.1
3959 dpurdie 7977
   --------------------------------------------------------------------------- */
6999 dpurdie 7978
 
7979
    oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
7980
 
3959 dpurdie 7981
BEGIN
4040 dpurdie 7982
 
6999 dpurdie 7983
    IF (sPvIdList IS NULL) THEN
7984
        RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
7985
    END IF;
7986
 
7987
    oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
7988
 
7989
    -- UnRipple Package
7990
    INSERT INTO DO_NOT_RIPPLE ( RTAG_ID, PV_ID )
7991
    SELECT nRtagId, pv.PV_ID
7992
    FROM PACKAGE_VERSIONS pv
7993
    WHERE pv.PV_ID IN (
7994
        SELECT *
7995
        FROM TABLE (
7996
            CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t )
7997
        )
7998
    );
7999
 
8000
    /* LOG ACTION */
8001
    Log_Action_Bulk ( sPvIdList, 'unripple_package', nUserId );
8002
 
8003
END UnRipple_Package;
8004
 
8005
/
4040 dpurdie 8006
--------------------------------------------------------
6999 dpurdie 8007
--  DDL for Procedure UNRIPPLE_PACKAGE_INDIRECT
4040 dpurdie 8008
--------------------------------------------------------
6999 dpurdie 8009
set define off;
4040 dpurdie 8010
 
6999 dpurdie 8011
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNRIPPLE_PACKAGE_INDIRECT" (
8012
        nPvId IN NUMBER,
8013
        nRtagId IN NUMBER,
8014
        nUserId IN NUMBER,
8015
        nrootCausePvId IN NUMBER,
8016
        srootCause IN VARCHAR2,
8017
        srootFile IN VARCHAR2
8018
    ) IS
8019
    ReleaseLocation VARCHAR2(4000);
8020
BEGIN
8021
 
8022
    -- UnRipple Package
8023
    delete from do_not_ripple where rtag_id=nRtagId and pv_id=nPvId;
8024
    INSERT INTO DO_NOT_RIPPLE ( RTAG_ID, PV_ID, ROOT_PV_ID, ROOT_CAUSE, ROOT_FILE ) values (nRtagId, nPvId, nrootCausePvId, srootCause, srootFile);
8025
 
8026
    -- Do not log if RootCause is -2
8027
    IF nrootCausePvId IS NOT NULL AND nrootCausePvId = -2 THEN
8028
      RETURN;
8029
    END IF;
8030
 
8031
    /* LOG ACTION */
8032
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
8033
              FROM PROJECTS proj,
8034
                   RELEASE_TAGS rt
8035
             WHERE rt.RTAG_ID = nRtagId
8036
               AND rt.PROJ_ID = proj.PROJ_ID;
8037
 
8038
    /* LOG ACTION */
8039
    Log_Action ( nPvId, 'unripple_package', nUserId, 'Location: '|| ReleaseLocation );
8040
 
8041
END UnRipple_Package_Indirect;
8042
 
8043
/
8044
--------------------------------------------------------
8045
--  DDL for Procedure UPDATE_ADDITIONAL_NOTE
8046
--------------------------------------------------------
8047
set define off;
8048
 
8049
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_ADDITIONAL_NOTE" ( pnNote_id IN NUMBER,
8050
													 pnPv_id IN NUMBER,
8051
                                                     psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,
8052
                                                     psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,
8053
                                                     pnUser_id IN NUMBER,
8054
                                                     outErrCode OUT NUMBER
8055
                                                    ) IS
3959 dpurdie 8056
/* ---------------------------------------------------------------------------
6999 dpurdie 8057
    Version: 3.0.1
3959 dpurdie 8058
   --------------------------------------------------------------------------- */
1373 dpurdie 8059
 
6999 dpurdie 8060
    newID NUMBER;
8061
 
8062
    /* Disallow duplicate Note Titles */
8063
	CURSOR an_duplicate_cur IS
8064
        SELECT COUNT(*) AS cnt_note
8065
          FROM ADDITIONAL_NOTES
8066
         WHERE pv_id = pnPv_id
8067
           AND note_id != pnNote_id
8068
           AND note_title = psNote_title;
8069
    an_duplicate_rec an_duplicate_cur%ROWTYPE;
8070
 
3959 dpurdie 8071
BEGIN
6999 dpurdie 8072
	outErrCode := -1;		-- Set default return error code to ERROR state
8073
 
8074
	OPEN an_duplicate_cur;
8075
    FETCH an_duplicate_cur INTO an_duplicate_rec;
8076
 
8077
    IF an_duplicate_rec.cnt_note < 1
3959 dpurdie 8078
    THEN
6999 dpurdie 8079
		--- Update Additional Note ---
8080
	    UPDATE ADDITIONAL_NOTES SET
8081
		       note_title = psNote_title,
8082
		       note_body = psNote_body,
7000 dpurdie 8083
		       mod_date = ora_sysdatetime,
6999 dpurdie 8084
		       mod_user = pnUser_id
8085
         WHERE note_id = pnNote_id
8086
           AND pv_id = pnPv_id;
8087
		outErrCode := 0;		-- Set return to SUCCESS
8088
	END IF;
8089
 
8090
	CLOSE an_duplicate_cur;
8091
END Update_Additional_Note;
8092
 
8093
/
8094
--------------------------------------------------------
8095
--  DDL for Procedure UPDATE_DEPRECATION_STATE
8096
--------------------------------------------------------
8097
set define off;
8098
 
8099
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_DEPRECATION_STATE" (nnrtag_id IN NUMBER) AS
8100
 
8101
recno NUMBER;
8102
 
8103
CURSOR deprecate_cur IS
8104
 
8105
SELECT rc.pv_id
8106
FROM release_content rc
8107
WHERE rtag_id = nnrtag_id
8108
 AND deprecated_state IN(7);
8109
 
8110
deprecate_rec deprecate_cur % rowtype;
8111
 
8112
BEGIN
8113
 
8114
  OPEN deprecate_cur;
8115
 
8116
  FETCH deprecate_cur
8117
  INTO deprecate_rec;
8118
 
8119
  WHILE deprecate_cur % FOUND
8120
  LOOP
8121
 
8122
    SELECT COUNT(*)
8123
    INTO recno
8124
    FROM package_dependencies pd,
8125
      release_content rc
8126
    WHERE pd.pv_id = deprecate_rec.pv_id
8127
     AND rc.pv_id = pd.dpv_id
8128
     AND rc.rtag_id = nnrtag_id
8129
     AND rc.deprecated_state IN(6,   7);
8130
 
8131
    IF recno = 0 THEN
8132
 
8133
      UPDATE release_content
8134
      SET pkg_id = NULL, deprecated_state = NULL
8135
      WHERE pv_id = deprecate_rec.pv_id
8136
       AND rtag_id = nnrtag_id;
8137
 
3959 dpurdie 8138
    END IF;
1373 dpurdie 8139
 
6999 dpurdie 8140
    FETCH deprecate_cur
8141
    INTO deprecate_rec;
8142
  END LOOP;
4040 dpurdie 8143
 
6999 dpurdie 8144
END;
8145
 
8146
/
4040 dpurdie 8147
--------------------------------------------------------
6999 dpurdie 8148
--  DDL for Procedure UPDATE_MISC_VIEW
4040 dpurdie 8149
--------------------------------------------------------
6999 dpurdie 8150
set define off;
4040 dpurdie 8151
 
6999 dpurdie 8152
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_MISC_VIEW" IS
8153
/******************************************************************************
8154
   NAME:       UPDATE_MISC_VIEW
8155
   PURPOSE:
8156
 
8157
   REVISIONS:
8158
   Ver        Date        Author           Description
8159
   ---------  ----------  ---------------  ------------------------------------
8160
   1.0        16/03/2007          1. Created this procedure.
8161
 
8162
   NOTES:
8163
 
8164
   Automatically available Auto Replace Keywords:
8165
      Object Name:     UPDATE_MISC_VIEW
8166
      Sysdate:         16/03/2007
8167
      Date and Time:   16/03/2007, 8:56:29 AM, and 16/03/2007 8:56:29 AM
8168
      Username:         (set in TOAD Options, Procedure Editor)
8169
      Table Name:       (set in the "New PL/SQL Object" dialog)
8170
 
8171
******************************************************************************/
8172
   CURSOR view_cur /*Create a record set to store the ripple data*/
8173
   IS
8174
   	 SELECT pkg.pkg_id, rc.base_view_id
8175
	 FROM package_versions pv, packages pkg, release_content rc
8176
	 where rc.rtag_id = 2362
8177
	 and rc.pv_id = pv.pv_id
8178
	 and pv.pkg_id = pkg.pkg_id;
8179
   view_rec   view_cur%ROWTYPE;
8180
 
8181
 
8182
 
8183
BEGIN
8184
   OPEN view_cur;
8185
 
8186
   FETCH view_cur
8187
    INTO view_rec;
8188
 
8189
   WHILE view_cur%FOUND
8190
   LOOP
8191
 
8192
 
8193
	   update release_content
8194
	   set base_view_id = view_rec.base_view_id
8195
	   where rtag_id = 8027
8196
	   and pv_id IN
8197
	   (
8198
	   	select pv.pv_id from release_content rc, package_versions pv
8199
		where rc.rtag_id = 8027
8200
		and pv.pv_id = rc.pv_id
8201
		and pv.pkg_id = view_rec.pkg_id
8202
 
8203
	   );
8204
 
8205
 
8206
 
8207
 
8208
 
8209
 
8210
 
8211
 
8212
 
8213
   FETCH view_cur
8214
   		 INTO view_rec;
8215
   END LOOP;
8216
 
8217
 
8218
 
8219
 
8220
 
8221
END UPDATE_MISC_VIEW;
8222
 
8223
/
8224
--------------------------------------------------------
8225
--  DDL for Procedure UPDATE_PACKAGE_DEPENDENCY
8226
--------------------------------------------------------
8227
set define off;
8228
 
8229
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_DEPENDENCY" ( NNpv_id IN NUMBER,
8230
                                                        SSdep_name IN PACKAGES.pkg_name%TYPE,
8231
                                                        SSdep_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
8232
                                                        CCbuild_type IN PACKAGE_DEPENDENCIES.build_type%TYPE,
8233
                                                        NNuser_id IN NUMBER,
8234
                                                        NNdelete_old_dependency IN NUMBER
8235
                                                       ) IS
3959 dpurdie 8236
/* ---------------------------------------------------------------------------
6999 dpurdie 8237
    Version: 3.3
3959 dpurdie 8238
   --------------------------------------------------------------------------- */
6999 dpurdie 8239
 
8240
    retPV_ID NUMBER;
8241
    SSV_EXT PACKAGE_VERSIONS.v_ext%TYPE;
8242
	DepIsPatch	PACKAGE_VERSIONS.is_patch%TYPE;
8243
    PvIsPatch	PACKAGE_VERSIONS.is_patch%TYPE;
8244
    NNpkg_id NUMBER;
8245
    NNdpkg_id NUMBER;
8246
 
3959 dpurdie 8247
BEGIN
6999 dpurdie 8248
    --- Seed database with package_name and version if required ---
8249
    Seed_Package_Names_Versions ( SSdep_name, SSdep_version, NNuser_id, retPV_ID );
1373 dpurdie 8250
 
6999 dpurdie 8251
    -- get v_ext,pkg_id of current dependency
8252
    SELECT v_ext, pkg_id, is_patch INTO SSV_EXT, NNdpkg_id, DepIsPatch
8253
      FROM PACKAGE_VERSIONS
8254
     WHERE pv_id = retPV_ID;
4040 dpurdie 8255
 
6999 dpurdie 8256
    -- get pkg_id of parent package
8257
    SELECT pkg_id, is_patch INTO NNpkg_id, PvIsPatch
8258
      FROM PACKAGE_VERSIONS
8259
     WHERE pv_id = NNpv_id;
8260
 
8261
 
8262
	IF ( (PvIsPatch IS NULL) AND (DepIsPatch IS NULL) ) OR
8263
    	( (PvIsPatch IS NOT NULL) )THEN
8264
 
8265
	    IF NNdelete_old_dependency = 1 THEN
8266
	        /* Used for CUSTOM dependency add/edit */
8267
 
8268
	        --- Remove old dependency ---
8269
            IF (PvIsPatch IS NULL) THEN
8270
            	-- Do it for Packages
8271
		        DELETE FROM PACKAGE_DEPENDENCIES
8272
		         WHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN
8273
		            (
8274
		            SELECT dep.*
8275
		              FROM PACKAGE_DEPENDENCIES dep,
8276
		                   PACKAGE_VERSIONS dpv,
8277
		                   PACKAGE_VERSIONS pv
8278
		             WHERE dep.dpv_id = dpv.pv_id
8279
		               AND dep.pv_id = NNpv_id
8280
		               AND pv.pv_id = retPV_ID
8281
		               AND dpv.pkg_id = pv.pkg_id
8282
		               AND NVL(dpv.v_ext, '|LINK_A_NULL|') = NVL(SSV_EXT, '|LINK_A_NULL|')
8283
		            );
8284
            ELSE
8285
            	-- Do it for Patches
8286
                DELETE FROM PACKAGE_DEPENDENCIES
8287
		         WHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN
8288
		            (
8289
		            SELECT dep.*
8290
		              FROM PACKAGE_DEPENDENCIES dep
8291
		             WHERE dep.dpv_id = retPV_ID
8292
		               AND dep.pv_id = NNpv_id
8293
		            );
8294
			END IF;
8295
 
8296
	    END IF;
8297
 
8298
	    /* NOTE: for JATS, ANTS dependency update, it is expected that all dependencies are removed. */
8299
 
8300
	    --- Add new dependency ---
8301
	    INSERT INTO PACKAGE_DEPENDENCIES ( pv_id, dpv_id, pkg_id, dpkg_id, build_type )
8302
	    VALUES ( NNpv_id, retPV_ID, NNpkg_id, NNdpkg_id, CCbuild_type );
8303
 
8304
	END IF;
8305
 
8306
END Update_Package_Dependency;
8307
 
8308
/
4040 dpurdie 8309
--------------------------------------------------------
6999 dpurdie 8310
--  DDL for Procedure UPDATE_PACKAGE_STATES
4040 dpurdie 8311
--------------------------------------------------------
6999 dpurdie 8312
set define off;
4040 dpurdie 8313
 
6999 dpurdie 8314
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_STATES" ( NNrtag_id IN NUMBER,
8315
                                                    NNsession_num IN NUMBER ) IS
8316
/* =============  STATE RULES =================== */
8317
/*
8318
   MNR   MRR   MN   MR    |   pkg_state
8319
   ------------------------------------
8320
 
8321
 
8322
 
8323
 
8324
   ------------------------------------
8325
 
8326
 
8327
 
8328
 
8329
   ------------------------------------
8330
    1     0     0     0   |      MINOR_READY
8331
    1     0     0     1   |      MAJOR
8332
    1     0     1     0   |      MINOR
8333
    1     0     1     1   |      MAJOR
8334
   ------------------------------------
8335
    1     1     0     0   |      MAJOR_READY
8336
    1     1     0     1   |      MAJOR
8337
    1     1     1     0   |      MAJOR
8338
    1     1     1     1   |      MAJOR
8339
   ------------------------------------
8340
*/
8341
BEGIN
8342
    /*----------------------------------------------
8343
    ||              MINOR READY
8344
    */----------------------------------------------
8345
 
8346
    UPDATE release_content
8347
       SET pkg_state = 4
8348
     WHERE rtag_id = NNrtag_id
8349
       AND pv_id IN
8350
           (
8351
           SELECT DISTINCT pv_id
8352
           FROM temp_env_states
8353
           WHERE session_num = NNsession_num
8354
             AND level_num = 1
8355
             AND tes_state = 2
8356
           );
8357
 
8358
    /*----------------------------------------------
8359
    ||              MAJOR READY
8360
    */----------------------------------------------
8361
    UPDATE release_content
8362
       SET pkg_state = 3
8363
     WHERE rtag_id = NNrtag_id
8364
       AND pv_id IN
8365
           (
8366
           SELECT DISTINCT pv_id
8367
           FROM temp_env_states
8368
           WHERE session_num = NNsession_num
8369
             AND level_num = 1
8370
             AND tes_state IN (0,1)
8371
           );
8372
 
8373
    /*----------------------------------------------
8374
    ||                MINOR
8375
    */----------------------------------------------
8376
    UPDATE release_content
8377
       SET pkg_state = 2
8378
     WHERE rtag_id = NNrtag_id
8379
       AND pv_id IN
8380
           (
8381
           SELECT DISTINCT pv_id
8382
            FROM temp_env_states
8383
            WHERE session_num = NNsession_num
8384
              AND level_num >= 2
8385
              AND tes_state = 2
8386
            MINUS
8387
           SELECT pv_id
8388
             FROM release_content
8389
            WHERE rtag_id = NNrtag_id
8390
              AND pkg_state = 3
8391
           );
8392
 
8393
    /*----------------------------------------------
8394
    ||                MAJOR
8395
    */----------------------------------------------
8396
    UPDATE release_content
8397
       SET pkg_state = 1
8398
     WHERE rtag_id = NNrtag_id
8399
       AND pv_id IN
8400
           (
8401
           SELECT DISTINCT pv_id
8402
           FROM temp_env_states
8403
           WHERE session_num = NNsession_num
8404
             AND level_num >= 2
8405
             AND tes_state IN (0,1)
8406
           /* MAJOR EXCEPTION - When package has Major Ready and Minor */
8407
           UNION
8408
           SELECT DISTINCT tes.pv_id
8409
           FROM temp_env_states tes,
8410
                release_content rc
8411
           WHERE tes.session_num = NNsession_num
8412
             AND tes.level_num >= 2
8413
             AND tes.tes_state = 2
8414
             AND rtag_id = NNrtag_id
8415
             AND rc.pv_id = tes.pv_id
8416
             AND rc.pkg_state = 3
8417
           );
8418
 
8419
    /*----------------------------------------------
8420
    ||                 OK
8421
    */----------------------------------------------
8422
    UPDATE release_content
8423
       SET pkg_state = 0
8424
     WHERE rtag_id = NNrtag_id
8425
       AND pv_id IN
8426
           (
8427
           SELECT rc.pv_id
8428
             FROM release_content rc
8429
            WHERE rc.rtag_id = NNrtag_id
8430
              AND NOT rc.pv_id IN
8431
                    (
8432
                     SELECT DISTINCT pv_id
8433
                     FROM temp_env_states WHERE session_num = NNsession_num
8434
                    )
8435
           );
8436
 
8437
      Update_Deprecation_State (NNrtag_id);
8438
 
8439
    /*----------------------------------------------
8440
    ||              PEGGED VERSIONS DEPENDENT
8441
    */----------------------------------------------
8442
    UPDATE release_content
8443
       SET pkg_state = 10
8444
     WHERE rtag_id = NNrtag_id
8445
       AND pv_id IN
8446
           (
8447
           SELECT DISTINCT pv_id
8448
           FROM pegged_versions pegv
8449
           WHERE pegv.rtag_id = NNrtag_id
8450
           );
8451
 
8452
    /*----------------------------------------------
8453
    ||              ADVISORY RIPPLE
8454
    */----------------------------------------------
8455
    UPDATE release_content
8456
       SET pkg_state = 8
8457
     WHERE rtag_id = NNrtag_id
8458
       AND pv_id IN
8459
           (
8460
           SELECT DISTINCT pv_id
8461
           FROM advisory_ripple ar
8462
           WHERE ar.rtag_id = NNrtag_id
8463
           )
8464
       AND pv_id IN
8465
           (
8466
           SELECT DISTINCT pv_id
8467
           FROM release_content rc
8468
           WHERE rc.rtag_id = NNrtag_id
8469
           );
8470
 
8471
    /*----------------------------------------------
8472
    ||              SDK Imported
8473
    */----------------------------------------------
8474
    UPDATE release_content
8475
       SET pkg_state = 11
8476
     WHERE rtag_id = NNrtag_id
8477
       AND sdktag_id is not null;
8478
 
8479
   /*----------------------------------------------
8480
    ||              UnBuildable
8481
    */----------------------------------------------
8482
    UPDATE release_content
8483
       SET pkg_state = 13
8484
     WHERE rtag_id = NNrtag_id
8485
       AND pv_id in (select pv_id from temp_env_states WHERE session_num = NNsession_num AND build_type = 'U');
8486
 
8487
END Update_Package_States;
8488
 
8489
/
8490
--------------------------------------------------------
8491
--  DDL for Procedure UPDATE_PROCESSES
8492
--------------------------------------------------------
8493
set define off;
8494
 
8495
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PROCESSES" 
3959 dpurdie 8496
IS
6999 dpurdie 8497
 
8498
proc_id NUMBER;
8499
/******************************************************************************
8500
   NAME:       DELETE_DO_NOT_RIPPLE
8501
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
8502
               IS RELEASED
8503
 
8504
   REVISIONS:
8505
   Ver        Date        Author           Description
8506
   ---------  ----------  ---------------  ------------------------------------
8507
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
8508
 
8509
   NOTES:
8510
 
8511
   Automatically available Auto Replace Keywords:
8512
      Object Name:     DELETE_DO_NOT_RIPPLE
8513
      Sysdate:         21/04/2006
8514
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
8515
      Username:         (set in TOAD Options, Procedure Editor)
8516
      Table Name:       (set in the "New PL/SQL Object" dialog)
8517
 
8518
******************************************************************************/
8519
   CURSOR ripple_cur
8520
   IS
8521
      select proc_id,  proc_name, run_as, pkg_owner, is_interface from processes;
8522
 
8523
   ripple_rec   ripple_cur%ROWTYPE;
8524
BEGIN
8525
   OPEN ripple_cur;
8526
 
8527
   FETCH ripple_cur
8528
    INTO ripple_rec;
8529
 
8530
   WHILE ripple_cur%FOUND
8531
   LOOP
8532
 
8533
 
8534
update deployment_manager.processes_config
8535
set proc_id = ripple_rec.proc_id
8536
where pkg_health_tag = ripple_rec.proc_name
8537
and cmd_interface IS NULL
8538
and pkg_owner IS NULL
8539
and is_interface IS NULL;
8540
 
8541
 
8542
      FETCH ripple_cur
8543
       INTO ripple_rec;
8544
   END LOOP;
8545
END UPDATE_PROCESSES;
8546
 
8547
/
8548
--------------------------------------------------------
8549
--  DDL for Procedure UPDATE_RUNTIME_DEPENDENCY
8550
--------------------------------------------------------
8551
set define off;
8552
 
8553
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_RUNTIME_DEPENDENCY" ( NNpv_id IN RUNTIME_DEPENDENCIES.pv_id%TYPE,
8554
				   	  		  						    NNrtd_id IN RUNTIME_DEPENDENCIES.rtd_id%TYPE,
8555
				   	  		  						    SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
8556
													    SSrtd_url IN RUNTIME_DEPENDENCIES.rtd_url%TYPE,
8557
													    SSrtd_comments IN RUNTIME_DEPENDENCIES.rtd_comments%TYPE,
8558
													    NNuser_id IN NUMBER ) IS
3959 dpurdie 8559
/* ---------------------------------------------------------------------------
6999 dpurdie 8560
    Version: 3.0.1
3959 dpurdie 8561
   --------------------------------------------------------------------------- */
6999 dpurdie 8562
 
8563
    retRTD_ID	NUMBER;
8564
	CURSOR rtd_cur IS
8565
	    SELECT pv.pkg_version, pkg.pkg_name
8566
		  FROM runtime_dependencies rtd,
8567
		       package_versions pv,
8568
			   packages pkg
8569
		 WHERE rtd.rtd_id = pv.pv_id
8570
		   AND pv.pkg_id = pkg.pkg_id
8571
		   AND rtd.pv_id = NNpv_id
8572
		   AND rtd.rtd_id = NNrtd_id;
8573
	   rtd_rec rtd_cur%ROWTYPE;
8574
 
8575
	CURSOR old_rtd_cur IS
8576
	    SELECT pv.pv_id
8577
		  FROM package_versions pv
8578
		 WHERE pv.pkg_id IN ( SELECT rtdpv.pkg_id
8579
		 	   			 	    FROM package_versions rtdpv
8580
							   WHERE rtdpv.pv_id = NNrtd_id )
8581
		   AND pv.pkg_version = SSrtd_version;
8582
	old_rtd_rec old_rtd_cur%ROWTYPE;
8583
 
8584
 
3959 dpurdie 8585
BEGIN
1373 dpurdie 8586
 
6999 dpurdie 8587
    -- Get current runtime dependency details
8588
	OPEN rtd_cur;
8589
    FETCH rtd_cur INTO rtd_rec;
4040 dpurdie 8590
 
6999 dpurdie 8591
 
8592
 
8593
 
8594
	IF rtd_rec.pkg_version != SSrtd_version THEN
8595
           -- Version has changed, hence create new runtime dependency --
8596
	    /* NOTE: You must create new version as updating just a version will affect
8597
		        all packages using this runtime dependency and user does not expect that.
8598
		        It is safer to create new version */
8599
		OPEN old_rtd_cur;
8600
		FETCH old_rtd_cur INTO old_rtd_rec;
8601
 
8602
 
8603
		IF old_rtd_cur%NOTFOUND
8604
		THEN
8605
			-- Version not found, hence Create New version --
8606
    		Seed_Package_Names_Versions ( rtd_rec.pkg_name, SSrtd_version, NNuser_id, retRTD_ID );
8607
 
8608
			-- Update runtime dependency table --
8609
			UPDATE runtime_dependencies SET
8610
				   rtd_id = retRTD_ID,
8611
				   rtd_url = SSrtd_url,
8612
				   rtd_comments = SSrtd_comments
8613
			 WHERE pv_id = NNpv_id
8614
			   AND rtd_id = NNrtd_id;
8615
 
8616
		ELSE
8617
			-- Update runtime dependency table --
8618
			UPDATE runtime_dependencies SET
8619
				   rtd_id = old_rtd_rec.pv_id,
8620
				   rtd_url = SSrtd_url,
8621
				   rtd_comments = SSrtd_comments
8622
			 WHERE pv_id = NNpv_id
8623
			   AND rtd_id = NNrtd_id;
8624
 
8625
		END IF;
8626
 
8627
 
8628
		CLOSE old_rtd_cur;
8629
 
8630
	ELSE
8631
		--  Version has not changed, hence update everithing except	version --
8632
		UPDATE runtime_dependencies SET
8633
			   rtd_url = SSrtd_url,
8634
			   rtd_comments = SSrtd_comments
8635
		 WHERE pv_id = NNpv_id
8636
		   AND rtd_id = NNrtd_id;
8637
 
8638
 
8639
 
8640
	END IF;
8641
 
8642
 
8643
	CLOSE rtd_cur;
8644
 
8645
END Update_Runtime_Dependency;
8646
 
8647
/
4040 dpurdie 8648
--------------------------------------------------------
6999 dpurdie 8649
--  DDL for Procedure UPDATE_UNIT_TEST
4040 dpurdie 8650
--------------------------------------------------------
6999 dpurdie 8651
set define off;
4040 dpurdie 8652
 
6999 dpurdie 8653
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST" ( nTest_id IN NUMBER,
8654
	   	  		  							   nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,
8655
											   nPv_id IN NUMBER,
8656
											   nUserId IN NUMBER,
8657
	                                           sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,
8658
											   sNumof_test IN UNIT_TESTS.NUMOF_TEST%TYPE,
8659
	                                           sCompletion_date IN VARCHAR2,
8660
											   sDpkg_path IN VARCHAR2,
8661
											   enumTEST_TYPE_AUTOMATIC IN NUMBER,
8662
											   sResults IN VARCHAR2,
8663
											   outFileName OUT VARCHAR2
8664
                                              ) IS
8665
/* ---------------------------------------------------------------------------
8666
    Version: 3.1.0
8667
   --------------------------------------------------------------------------- */
4040 dpurdie 8668
 
6999 dpurdie 8669
   	FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';
8670
 
8671
    ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;
8672
    ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;
8673
 
8674
 
8675
BEGIN
8676
 
8677
       IF nTestTypeId = enumTEST_TYPE_AUTOMATIC THEN
8678
       	ResultsURL := sResults;
8679
       ELSE
8680
       	IF (sResults <> '') OR ( NOT sResults IS NULL ) THEN
8681
        	outFileName := FILENAME_PREFIX || nTest_id ||'_'|| sResults;
8682
    		ResultsAttachment := sDpkg_path || '/' || outFileName;
8683
           END IF;
8684
       END IF;
8685
 
8686
	--- Update Unit Test ---
8687
    UPDATE UNIT_TESTS SET
8688
           TEST_SUMMARY = sTest_summary,
8689
		   NUMOF_TEST = sNumof_test,
8690
           COMPLETION_DATE = TO_DATE( sCompletion_date,'DD/MM/YYYY' ),
8691
		   COMPLETED_BY = nUserId,
8692
		   RESULTS_URL = ResultsURL,
8693
		   RESULTS_ATTACHMENT_NAME = ResultsAttachment
8694
     WHERE TEST_ID = nTest_id
8695
       AND PV_ID = nPv_id;
8696
 
8697
END Update_Unit_Test;
8698
 
8699
/
4040 dpurdie 8700
--------------------------------------------------------
6999 dpurdie 8701
--  DDL for Procedure UPDATE_UNIT_TEST_ACCEPTANCE
4040 dpurdie 8702
--------------------------------------------------------
6999 dpurdie 8703
set define off;
4040 dpurdie 8704
 
6999 dpurdie 8705
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST_ACCEPTANCE" ( pnTest_id IN NUMBER,
8706
														  pnPv_id IN NUMBER,
8707
					                                      sAccepted IN UNIT_TESTS.TEST_ACCEPTED%TYPE,
8708
														  sAcceptanceDate IN VARCHAR2,
8709
														  sAcceptedBy IN NUMBER,
8710
					                                      sReviewComments IN UNIT_TESTS.REVIEW_COMMENTS%TYPE,
8711
														  cUpdateAcceptedStateOnly IN CHAR
8712
					                                     ) IS
3959 dpurdie 8713
/* ---------------------------------------------------------------------------
8714
    Version: 3.0.0
8715
   --------------------------------------------------------------------------- */
1373 dpurdie 8716
 
8717
 
6999 dpurdie 8718
 
3959 dpurdie 8719
BEGIN
6999 dpurdie 8720
	IF cUpdateAcceptedStateOnly = 'Y'
8721
	THEN
8722
		--- Update Accepted State Only ---
8723
		IF ( sAccepted IS NULL )
8724
		THEN
8725
			-- Clear alleptance
8726
			UPDATE UNIT_TESTS SET
8727
		           TEST_ACCEPTED = NULL,
8728
		           ACCEPTANCE_DATE = NULL,
8729
				   ACCEPTED_BY = NULL,
8730
				   REVIEW_COMMENTS = NULL
8731
		     WHERE TEST_ID = pnTest_id
8732
		       AND PV_ID = pnPv_id;
1373 dpurdie 8733
 
6999 dpurdie 8734
	    ELSE
8735
			UPDATE UNIT_TESTS SET
8736
		           TEST_ACCEPTED = sAccepted,
8737
		           ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),
8738
				   ACCEPTED_BY = sAcceptedBy
8739
		     WHERE TEST_ID = pnTest_id
8740
		       AND PV_ID = pnPv_id;
6031 dpurdie 8741
 
6999 dpurdie 8742
		END IF;
6031 dpurdie 8743
 
8744
 
6999 dpurdie 8745
	ELSE
8746
		--- Update Unit Test Acceptance ---
8747
	    UPDATE UNIT_TESTS SET
8748
	           TEST_ACCEPTED = sAccepted,
8749
			   REVIEW_COMMENTS = sReviewComments,
8750
	           ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),
8751
			   ACCEPTED_BY = sAcceptedBy
8752
	     WHERE TEST_ID = pnTest_id
8753
	       AND PV_ID = pnPv_id;
4040 dpurdie 8754
 
6999 dpurdie 8755
	END IF;
8756
 
8757
END Update_Unit_Test_Acceptance;
8758
 
8759
/
4040 dpurdie 8760
--------------------------------------------------------
8761
--  DDL for Package PK_APP_UTILS
8762
--------------------------------------------------------
8763
 
5172 dpurdie 8764
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_APP_UTILS" IS
1373 dpurdie 8765
/*
8766
------------------------------
8767
||  Last Modified:  S.Vukovic
8768
||  Modified Date:  26/Apr/2005
8769
||  Spec Version:   1.0
8770
------------------------------
8771
*/
8772
 
8773
	TYPE typeCur IS REF CURSOR;
8774
 
8775
    /*================================================================================================*/
8776
 
8777
	PROCEDURE GET_CURRENT_PARAMETERS ( ProjId IN VARCHAR2, RtagId IN VARCHAR2, records OUT typeCur);
8778
 
8779
	/*================================================================================================*/
8780
 
8781
END PK_APP_UTILS;
4040 dpurdie 8782
 
1374 dpurdie 8783
/
4040 dpurdie 8784
 
6999 dpurdie 8785
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_APP_UTILS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 8786
--------------------------------------------------------
6999 dpurdie 8787
--  DDL for Package PK_BLATAPI
8788
--------------------------------------------------------
8789
 
8790
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_BLATAPI" 
8791
IS
8792
 
8793
   /*================================================================================================*/
8794
   PROCEDURE add_pkg_replica (
8795
      sdisplay_name          IN   VARCHAR2,
8796
      sserver_name           IN   VARCHAR2,
8797
      sdescription           IN   VARCHAR2,
8798
      sactive                IN   CHAR,
8799
      smode                  IN   CHAR
8800
   );
8801
 
8802
   /*================================================================================================*/
8803
   PROCEDURE delete_pkg_replica (sserver_id_list IN VARCHAR2);
8804
 
8805
   /*================================================================================================*/
8806
   PROCEDURE update_pkg_replica (
8807
      nserver_id             IN   NUMBER,
8808
      sdisplay_name          IN   VARCHAR2,
8809
      sserver_name           IN   VARCHAR2,
8810
      sdescription           IN   VARCHAR2,
8811
      sactive                IN   CHAR,
8812
      smode                  IN   CHAR
8813
   );
8814
 
8815
   /*================================================================================================*/
8816
   PROCEDURE set_pkg_replica_changed( nserver_id IN   NUMBER);
8817
 
8818
END PK_BLATAPI;
8819
 
8820
/
8821
--------------------------------------------------------
4040 dpurdie 8822
--  DDL for Package PK_BUILDAPI
8823
--------------------------------------------------------
8824
 
5172 dpurdie 8825
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_BUILDAPI" 
1373 dpurdie 8826
IS
8827
   /*================================================================================================*/
8828
   PROCEDURE add_product_component (
8829
      npvid           IN   NUMBER,
8830
      sosname         IN   VARCHAR2,
8831
      sorigfilepath   IN   VARCHAR2,
8832
      sfilename       IN   VARCHAR2,
8833
      sdestfilepath   IN   VARCHAR2,
8834
      nbytesize       IN   NUMBER,
8835
      scrccksum       IN   VARCHAR2
8836
   );
8837
 
8838
   PROCEDURE remove_all_product_components (
8839
      npvid     IN   NUMBER,
8840
      sosname   IN   VARCHAR2
8841
   );
8842
 
8843
   /*================================================================================================*/
8844
   FUNCTION get_osid (sosname IN VARCHAR2)
8845
      RETURN NUMBER;
8846
 
4308 dpurdie 8847
  /*================================================================================================*/
8848
    PROCEDURE update_build_service_info (
1373 dpurdie 8849
      sdatabaseserver   IN   VARCHAR2,
8850
      sarchiveserver    IN   VARCHAR2,
8851
      smailserver       IN   VARCHAR2,
8852
      smailsender       IN   VARCHAR2,
4211 dpurdie 8853
      faultmlist        IN   VARCHAR2,
1373 dpurdie 8854
      sdiskspace        IN   VARCHAR2,
6600 dpurdie 8855
      ssbommanagement   IN   VARCHAR2,
8856
      lxrserver         IN   VARCHAR2
1373 dpurdie 8857
   );
8858
 
8859
   /*================================================================================================*/
4040 dpurdie 8860
   PROCEDURE add_gbe_machtype (sgbevalue IN VARCHAR2, sgbeclass IN NUMBER);
1373 dpurdie 8861
 
8862
   /*================================================================================================*/
8863
   PROCEDURE remove_gbe_machtype (ngbe_id IN NUMBER);
8864
 
8865
   /*================================================================================================*/
4040 dpurdie 8866
   PROCEDURE update_gbe_machtype (ngbe_id IN NUMBER, sgbevalue IN VARCHAR2, sgbeclass IN NUMBER);
1373 dpurdie 8867
 
4040 dpurdie 8868
  /*================================================================================================*/
8869
   PROCEDURE add_buildmachine (sbmvalue IN VARCHAR2);
8870
 
1373 dpurdie 8871
   /*================================================================================================*/
4040 dpurdie 8872
   PROCEDURE remove_buildmachine (nbm_id IN NUMBER);
8873
 
8874
   /*================================================================================================*/
8875
   PROCEDURE update_buildmachine (nbm_id IN NUMBER, sbmvalue IN VARCHAR2);
6031 dpurdie 8876
 
4040 dpurdie 8877
   /*================================================================================================*/
1373 dpurdie 8878
   PROCEDURE delete_daemon (srconidlist IN VARCHAR2);
6031 dpurdie 8879
 
1373 dpurdie 8880
   /*================================================================================================*/
4308 dpurdie 8881
   PROCEDURE remove_daemon (srconidlist IN VARCHAR2);
1373 dpurdie 8882
 
8883
   /*================================================================================================*/
8884
   PROCEDURE insert_schedule_info (
8885
      dschedulepause     IN   DATE,
8886
      dscheduleresume    IN   DATE,
8887
      crepeat            IN   VARCHAR2,
8888
      cindefinitepause   IN   VARCHAR2
8889
   );
8890
 
8891
   /*================================================================================================*/
8892
   PROCEDURE delete_schedule (nscheduleid IN NUMBER);
8893
 
8894
   /*================================================================================================*/
8895
   PROCEDURE set_infinite_pause;
8896
 
8897
   /*================================================================================================*/
8898
   PROCEDURE set_resume;
8899
 
8900
   /*================================================================================================*/
8901
   PROCEDURE delete_out_of_date_schedule;
8902
 
8903
   /*================================================================================================*/
8904
   PROCEDURE set_daemon_resume (nrconid IN NUMBER);
8905
 
8906
   /*================================================================================================*/
8907
   PROCEDURE set_daemon_pause (nrconid IN NUMBER);
8908
 
8909
   /*================================================================================================*/
8910
   PROCEDURE set_daemon_disable (nrconid NUMBER);
8911
 
8912
   /*================================================================================================*/
8913
   PROCEDURE set_daemon_states (nrtagid NUMBER, nstate NUMBER);
8914
 
8915
   /*================================================================================================*/
8916
   PROCEDURE mark_daemon_inst_in_progress( nInstId IN NUMBER );
8917
   /*================================================================================================*/
8918
   PROCEDURE mark_daemon_inst_completed( nInstId IN NUMBER );
8919
   /*================================================================================================*/
8920
   FUNCTION get_daemon_inst(
8921
      nRtag_id IN NUMBER,
8922
      nInst_id IN OUT NUMBER,
8923
      nOp_code IN OUT NUMBER,
8924
      nPv_id OUT NUMBER,
8925
      nUser_id OUT NUMBER,
8926
      nInProgress OUT NUMBER
8927
   ) RETURN NUMBER;
8928
   /*================================================================================================*/
8929
   PROCEDURE cleanup_stranded_daemon_insts;
8930
   /*================================================================================================*/
8931
   PROCEDURE insert_daemon_inst(
8932
      nOp_code IN NUMBER,
8933
      nRtag_id IN NUMBER,
8934
      nPv_id IN NUMBER,
8935
      nSchedDate IN DATE,
8936
      nRepeatSecs IN NUMBER,
8937
      nAddedDate IN DATE,
8938
      nUser_id IN NUMBER
8939
   );
8940
   /*================================================================================================*/
8941
   PROCEDURE del_daemon_inst( nInstId IN NUMBER );
8942
   /*================================================================================================*/
8943
   PROCEDURE del_daemon_inst_by_rtag_pvid(
8944
      nOp_code IN NUMBER,
8945
      nRtag_id IN NUMBER,
8946
      nPv_id IN NUMBER
8947
   );
8948
   /*================================================================================================*/
8949
   PROCEDURE update_daemon_inst(
8950
      nInstId IN NUMBER,
8951
      nOp_code IN NUMBER,
8952
      nRtag_id IN NUMBER,
8953
      nPv_id IN NUMBER,
8954
      nSchedDate IN DATE,
8955
      nRepeatSecs IN NUMBER,
8956
      nAddedDate IN DATE,
8957
      nUser_id IN NUMBER
8958
   );
8959
   /*================================================================================================*/
8960
   FUNCTION daemon_ops_for_rtag_pvid(
8961
      nRtag_id IN NUMBER,
8962
      nPv_id IN NUMBER
8963
   ) RETURN VARCHAR2;
8964
   /*================================================================================================*/
8965
   FUNCTION daemon_ops_for_rtag(
8966
      nRtag_id IN NUMBER
8967
   ) RETURN VARCHAR2;
8968
   /*================================================================================================*/
8969
   PROCEDURE add_daemon_config (
8970
      nrtagid           IN   NUMBER,
8971
      nbmcon_id         IN   NUMBER,
8972
      sdaemon_mode      IN   VARCHAR2,
8973
      sgbebuildfilter   IN   VARCHAR2
8974
   );
8975
   /*================================================================================================*/
8976
   PROCEDURE update_daemon_config (
8977
      nrconid           IN   NUMBER,
8978
      nbmcon_id         IN   NUMBER,
8979
      sdaemon_mode      IN   VARCHAR2,
8980
      sgbebuildfilter   IN   VARCHAR2
8981
   );
8982
 
4308 dpurdie 8983
 /*================================================================================================*/
8984
   PROCEDURE duplicate_daemon_config (
8985
      nrtagid           IN   NUMBER,
8986
      nbmcon_id         IN   NUMBER,
8987
      sdaemonhostname   IN   VARCHAR2,
8988
      ngbe_id           IN   NUMBER,
8989
      sdaemon_mode      IN   VARCHAR2,
8990
      sgbebuildfilter   IN   VARCHAR2
8991
   );
6031 dpurdie 8992
 
1373 dpurdie 8993
   /*================================================================================================*/
8994
   PROCEDURE add_build_machine (
8995
      sdisplay_name          IN   VARCHAR2,
8996
      smachine_hostname      IN   VARCHAR2,
8997
      ngbeid                 IN   NUMBER,
5172 dpurdie 8998
      sdescription           IN   VARCHAR2,
8999
      sactive                IN CHAR
1373 dpurdie 9000
   );
9001
   /*================================================================================================*/
9002
   PROCEDURE delete_build_machine (sbmcon_id_list IN VARCHAR2);
9003
   /*================================================================================================*/
9004
   PROCEDURE update_build_machine (
9005
      nbmcon_id              IN   NUMBER,
9006
      sdisplay_name          IN   VARCHAR2,
9007
      smachine_hostname      IN   VARCHAR2,
9008
      ngbeid                 IN   NUMBER,
5172 dpurdie 9009
      sdescription           IN   VARCHAR2,
9010
      sactive                IN CHAR
1373 dpurdie 9011
   );
4553 dpurdie 9012
   /*================================================================================================*/
9013
   PROCEDURE import_daemons ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER  );
5172 dpurdie 9014
   /*================================================================================================*/
5892 dpurdie 9015
   PROCEDURE set_finite_pause ( duration IN NUMBER  );
9016
   PROCEDURE set_build_plan (rtagId IN NUMBER, nStartIndex IN NUMBER, pvList IN VARCHAR2);
5172 dpurdie 9017
 
1373 dpurdie 9018
END pk_buildapi;
4040 dpurdie 9019
 
6999 dpurdie 9020
/
4040 dpurdie 9021
--------------------------------------------------------
9022
--  DDL for Package PK_ENVIRONMENT
9023
--------------------------------------------------------
9024
 
5172 dpurdie 9025
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_ENVIRONMENT" IS
1373 dpurdie 9026
/*
9027
------------------------------
3959 dpurdie 9028
||  Last Modified:  G.Huddy
9029
||  Modified Date:  28/May/2008
9030
||  Spec Version:   1.2
1373 dpurdie 9031
------------------------------
9032
*/
9033
 
3959 dpurdie 9034
	TYPE typeCur IS REF CURSOR;
9035
 
1373 dpurdie 9036
	/*================================================================================================*/
9037
 
3959 dpurdie 9038
	FUNCTION SELECT_ENVIRONMENT_AREA ( cDlock IN PACKAGE_VERSIONS.DLOCKED%TYPE ) RETURN NUMBER;
9039
	FUNCTION GET_PACKAGE_AREA ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
9040
	FUNCTION GET_VIEW_LOCATION ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5384 dpurdie 9041
	PROCEDURE ADD_PACKAGE ( PvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, imode IN   CHAR default NULL );
9042
	PROCEDURE ADD_PACKAGE_BULK ( PvIdList IN VARCHAR2, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, imode IN CHAR default NULL );
3959 dpurdie 9043
	PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9044
	FUNCTION REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, ForceRemove IN CHAR ) RETURN NUMBER;
9045
 
9046
	PROCEDURE GET_ENVIRONMENT_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
9047
	PROCEDURE GET_RELEASED_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
9048
	PROCEDURE GET_PENDING_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
9049
	PROCEDURE GET_WORK_IN_PROGRESS_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
9050
 
9051
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
9052
 
9053
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
9054
 
9055
 
9056
	PROCEDURE MAKE_RELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9057
	PROCEDURE MAKE_UNRELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9058
 
9059
	PROCEDURE MAKE_PENDING ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9060
	PROCEDURE MAKE_APPROVED ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9061
	PROCEDURE MAKE_REJECT ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9062
	PROCEDURE APPROVE_MERGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9063
 
9064
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
9065
 
9066
	PROCEDURE FIND_PACKAGE ( sKeyword IN VARCHAR2, nRtagId IN NUMBER, nSearchArea IN NUMBER, RecordSet OUT typeCur );
9067
	PROCEDURE FIND_FILE ( sKeyword IN VARCHAR2, nRtagId IN NUMBER, nSearchArea IN NUMBER, nPageSize IN NUMBER, RecordSet OUT typeCur );
9068
 
9069
	PROCEDURE AUTO_MAKE_RELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, VExt IN
9070
							 PACKAGE_VERSIONS.V_EXT%TYPE, SSV_EXT IN PACKAGE_VERSIONS.V_EXT%TYPE,
9071
							 CloneFromPvId IN NUMBER );
9072
 
9073
	PROCEDURE GET_PRODRELEASE_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
9074
 
9075
	PROCEDURE GET_INTEGRATION_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
9076
 
9077
	PROCEDURE GET_TEST_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
9078
 
9079
	PROCEDURE GET_DEPLOY_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
9080
 
9081
	PROCEDURE GET_REJECT_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
1373 dpurdie 9082
	/*================================================================================================*/
3959 dpurdie 9083
 
9084
END PK_ENVIRONMENT;
4040 dpurdie 9085
 
6999 dpurdie 9086
/
4040 dpurdie 9087
--------------------------------------------------------
9088
--  DDL for Package PK_LICENCING
9089
--------------------------------------------------------
9090
 
5172 dpurdie 9091
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_LICENCING" IS
3959 dpurdie 9092
/*
9093
------------------------------
9094
||  Last Modified:  G.Huddy
9095
||  Modified Date:  19/Aug/2008
9096
||  Spec Version:   1.0
9097
------------------------------
9098
*/
9099
 
9100
   TYPE typeCur IS REF CURSOR;
9101
 
9102
    /*================================================================================================*/
9103
   PROCEDURE ADD_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER );
9104
   PROCEDURE REMOVE_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER );
9105
   PROCEDURE CLONE_LICENCING( fromPvId IN NUMBER, toPvId IN NUMBER, UserId IN NUMBER );
9106
   FUNCTION  IS_LICENCED( PvId IN NUMBER, licenceId IN NUMBER) RETURN NUMBER;
9107
   PROCEDURE REMOVE_ALL_LICENCING( PvId IN NUMBER, UserId IN NUMBER );
9108
   /*================================================================================================*/
9109
 
9110
END PK_LICENCING;
4040 dpurdie 9111
 
6999 dpurdie 9112
/
4040 dpurdie 9113
--------------------------------------------------------
9114
--  DDL for Package PK_PACKAGE
9115
--------------------------------------------------------
9116
 
5172 dpurdie 9117
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PACKAGE" 
1373 dpurdie 9118
IS
9119
/*
9120
------------------------------
3959 dpurdie 9121
||  Last Modified:  Jeremy Tweddle
9122
||  Modified Date:  24/08/2007
1373 dpurdie 9123
||
9124
------------------------------
9125
*/
9126
   TYPE typecur IS REF CURSOR;
6031 dpurdie 9127
 
5502 dpurdie 9128
   /*
9129
    * Carriage-return line-feed character sequence.
9130
    */
9131
   CRLF CONSTANT VARCHAR2(2 CHAR) := unistr('\000D\000A');
1373 dpurdie 9132
 
9133
/*================================================================================================*/
9134
   PROCEDURE new_version (
9135
      nlastpvid                   IN       NUMBER,
9136
      snewpkgversion              IN       VARCHAR2 DEFAULT NULL,
9137
      cbuildtype                  IN       CHAR,
4211 dpurdie 9138
      cchangetype                 IN       CHAR,
1373 dpurdie 9139
      nsettopvid                  IN       NUMBER DEFAULT NULL,
9140
      nrtagid                     IN       NUMBER,
9141
      nuserid                     IN       NUMBER,
9142
      enumissues_state_imported   IN       NUMBER,
9143
      returnpvid                  OUT      NUMBER
9144
   );
9145
 
9146
   PROCEDURE change_state (
9147
      pvid       IN   NUMBER,
9148
      newstate   IN   package_versions.dlocked%TYPE,
9149
      userid     IN   NUMBER
9150
   );
9151
 
9152
   PROCEDURE new_patch (
9153
      snewpatchversion   IN       package_versions.pkg_version%TYPE,
9154
      nparentpvid        IN       NUMBER,
9155
      spatchidlist       IN       VARCHAR2,
9156
      nuserid            IN       NUMBER,
9157
      returnpatchid      OUT      NUMBER
9158
   );
9159
 
9160
   PROCEDURE obsolete_patch (
9161
      patchid            IN   NUMBER,
9162
      isobsolete         IN   CHAR,
9163
      obsoletecomments   IN   VARCHAR2,
9164
      userid             IN   NUMBER
9165
   );
9166
 
9167
   PROCEDURE obsolete_patches (
9168
      spatchidlist       IN   VARCHAR2,
9169
      isobsolete         IN   CHAR,
9170
      obsoletecomments   IN   VARCHAR2,
9171
      userid             IN   NUMBER
9172
   );
9173
 
9174
   PROCEDURE destroy_package (
9175
      pvid               IN       NUMBER,
9176
      overridewarnings   IN       CHAR DEFAULT 'N',
9177
      problemstring      OUT      VARCHAR2
9178
   );
6031 dpurdie 9179
 
9180
   PROCEDURE destroy_package_extended (
9181
      pvid               IN       NUMBER,
9182
      rtagid             IN       NUMBER,
9183
      overridewarnings   IN       NUMBER DEFAULT 0,
9184
      RESULTS            OUT      SYS_REFCURSOR
9185
);
1373 dpurdie 9186
   PROCEDURE add_process (
9187
      nprocid         IN   processes.proc_id%TYPE,
9188
      shealthtag      IN   processes.proc_name%TYPE,
9189
      sprocdesc       IN   processes.proc_description%TYPE,
9190
      scmdinterface   IN   processes.run_as%TYPE,
9191
      spkgowner       IN   processes.pkg_owner%TYPE,
9192
      sisinterface    IN   processes.is_interface%TYPE,
9193
      npvid           IN   package_processes.pv_id%TYPE,
9194
      nuserid         IN   NUMBER
9195
   );
9196
 
9197
   PROCEDURE add_package_process (
9198
      nprocidlist   IN   VARCHAR2,
9199
      npvid         IN   package_processes.pv_id%TYPE,
9200
      nuserid       IN   NUMBER
9201
   );
9202
 
6031 dpurdie 9203
 
9204
 
1373 dpurdie 9205
   PROCEDURE remove_process (
9206
      nprocid   IN   package_processes.proc_id%TYPE,
9207
      npvid     IN   package_processes.pv_id%TYPE,
9208
      nuserid   IN   NUMBER
9209
   );
6031 dpurdie 9210
 
1373 dpurdie 9211
   PROCEDURE move_package (
9212
   	  npvid  			  IN package_versions.pv_id%TYPE,
9213
	  nrtagid 			  IN release_tags.rtag_id%TYPE,
9214
	  nnewrtagid 		  IN release_tags.rtag_id%TYPE,
6031 dpurdie 9215
	  nuserid			  IN NUMBER
9216
   );
9217
 
3959 dpurdie 9218
   PROCEDURE modify_product_state (
1373 dpurdie 9219
   	  npvid IN package_versions.pv_id%TYPE,
3959 dpurdie 9220
	  nrtagid IN release_tags.rtag_id%TYPE,
1373 dpurdie 9221
	  nstateid IN product_states.state_id%TYPE,
9222
	  nuserid IN NUMBER
9223
   );
6031 dpurdie 9224
 
3959 dpurdie 9225
   PROCEDURE add_code_review_url (
9226
        npvid           IN    NUMBER,
9227
        nprojid         IN    NUMBER,
9228
        surl            IN    VARCHAR2,
9229
        sreason         IN    VARCHAR2,
4553 dpurdie 9230
        ddateofreview   IN    VARCHAR2
3959 dpurdie 9231
   );
6031 dpurdie 9232
 
3959 dpurdie 9233
   PROCEDURE update_code_review_url (
9234
        ncrid           IN    NUMBER,
9235
        nprojid         IN    NUMBER,
9236
        surl            IN    VARCHAR2,
4553 dpurdie 9237
        sreason         IN    VARCHAR2,
9238
        ddateofreview   IN    VARCHAR2
3959 dpurdie 9239
   );
6031 dpurdie 9240
 
3959 dpurdie 9241
   PROCEDURE remove_code_review_url (
9242
        ncrid           IN    NUMBER
9243
   );
6600 dpurdie 9244
 
9245
   PROCEDURE SET_RIPPLE_STOP (
6999 dpurdie 9246
        nPVID IN RELEASE_CONTENT.PV_ID%TYPE,
9247
        nRtagId IN RELEASE_CONTENT.RTAG_ID%TYPE,
9248
        nUserId IN NUMBER,
9249
        cMode IN CHAR
9250
   );
9251
 
1373 dpurdie 9252
/*================================================================================================*/
3959 dpurdie 9253
END pk_package;
4040 dpurdie 9254
 
1374 dpurdie 9255
/
5892 dpurdie 9256
 
6031 dpurdie 9257
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 9258
  GRANT DEBUG ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 9259
--------------------------------------------------------
9260
--  DDL for Package PK_PLANNED
9261
--------------------------------------------------------
9262
 
5172 dpurdie 9263
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PLANNED" IS
1373 dpurdie 9264
/*
9265
------------------------------
9266
||  Last Modified:  G.Huddy
9267
||  Modified Date:  28/May/2008
9268
||  Spec Version:   1.1
9269
------------------------------
9270
*/
9271
 
9272
	TYPE typeCur IS REF CURSOR;
9273
 
9274
    /*================================================================================================*/
5384 dpurdie 9275
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, OPR IN CHAR DEFAULT 'R'  );
1373 dpurdie 9276
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9277
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
9278
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
9279
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
9280
	PROCEDURE MERGE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, mergeOperation IN CHAR);
9281
	/*================================================================================================*/
9282
 
9283
END PK_PLANNED;
4040 dpurdie 9284
 
6999 dpurdie 9285
/
4040 dpurdie 9286
--------------------------------------------------------
9287
--  DDL for Package PK_PROJECT
9288
--------------------------------------------------------
9289
 
5172 dpurdie 9290
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PROJECT" IS
1373 dpurdie 9291
 
3959 dpurdie 9292
    TYPE typecur IS REF CURSOR;
1373 dpurdie 9293
 
3959 dpurdie 9294
    /*------------------------------------------------------------------------*/
9295
    PROCEDURE update_base_url (
9296
        nprojid   IN  projects.proj_id%TYPE,
9297
        sbaseurl  IN  VARCHAR2
9298
    );
9299
    /*------------------------------------------------------------------------*/
9300
    PROCEDURE update_project_config (
9301
    nprojid   IN  projects.proj_id%TYPE,
9302
    sbaseurl  IN  VARCHAR2,
9303
    sjirakey  IN  VARCHAR2
9304
    );
9305
    /*------------------------------------------------------------------------*/
1373 dpurdie 9306
 
3959 dpurdie 9307
    END pk_project;
4040 dpurdie 9308
 
6999 dpurdie 9309
/
4040 dpurdie 9310
--------------------------------------------------------
9311
--  DDL for Package PK_RELEASE
9312
--------------------------------------------------------
9313
 
5172 dpurdie 9314
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_RELEASE" IS
1373 dpurdie 9315
/*
9316
------------------------------
9317
||  Last Modified:  S.Vukovic
9318
||  Modified Date:  12/Sep/2005
9319
||  Body Version:   3.0
9320
------------------------------
9321
*/
9322
 
9323
	TYPE typeCur IS REF CURSOR;
9324
 
9325
    /*================================================================================================*/
5502 dpurdie 9326
	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 9327
	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 9328
	PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER  );
9329
	PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER );
5502 dpurdie 9330
	PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER,nMode IN NUMBER default 0 );
1373 dpurdie 9331
	PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER );
9332
	FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR ) RETURN NUMBER;
9333
	PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER );
5502 dpurdie 9334
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
1373 dpurdie 9335
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9336
	--PROCEDURE ADD_DEPRECATE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, nPkgId IN NUMBER );
9337
	PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9338
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9339
	PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9340
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
9341
	PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER );
9342
	PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER );
9343
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
9344
	PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 );
9345
	PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER );
9346
	PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR );
5172 dpurdie 9347
  PROCEDURE SET_RELEASE_MODIFIED (nRtagId IN NUMBER );
9348
  PROCEDURE ADD_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER, nUserId IN NUMBER, bDelete IN  NUMBER, nInsertCount OUT NUMBER, curReturn OUT typeCur );
9349
  PROCEDURE REMOVE_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER );
9350
  FUNCTION CAN_ADD_PKG_TO_RELEASE ( nRtagId IN NUMBER, nPvid in NUMBER ) RETURN NUMBER;
5502 dpurdie 9351
 
1373 dpurdie 9352
	/*================================================================================================*/
5384 dpurdie 9353
 
1373 dpurdie 9354
END PK_RELEASE;
4040 dpurdie 9355
 
6999 dpurdie 9356
/
4040 dpurdie 9357
--------------------------------------------------------
9358
--  DDL for Package PK_RMAPI
9359
--------------------------------------------------------
9360
 
5172 dpurdie 9361
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_RMAPI" 
3959 dpurdie 9362
IS
9363
   TYPE typecur IS REF CURSOR;
1373 dpurdie 9364
 
3959 dpurdie 9365
   FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)
9366
      RETURN typecur;
1373 dpurdie 9367
 
3959 dpurdie 9368
   FUNCTION wip_iteration_package (
9369
      projname        VARCHAR2,
9370
      iterationname   VARCHAR2,
9371
      pkgname         VARCHAR2
9372
   )
9373
      RETURN typecur;
1373 dpurdie 9374
 
3959 dpurdie 9375
   FUNCTION auto_make_vcsrelease (
9376
      rtagid                   IN   NUMBER,
9377
      pkgname                  IN   VARCHAR2,
9378
      vext                     IN   VARCHAR2,
9379
      newpkgversion            IN   VARCHAR2,
9380
      vcstag                   IN   VARCHAR2,
9381
      dependenciesimportlist   IN   VARCHAR2,
9382
      isrippled                IN   NUMBER,
9383
      username                 IN   VARCHAR2
9384
   )
9385
      RETURN NUMBER;
6600 dpurdie 9386
 
9387
FUNCTION auto_make_vcsrelease2 (
9388
      rtagid                   IN   NUMBER,
9389
      pkgname                  IN   VARCHAR2,
9390
      vext                     IN   VARCHAR2,
9391
      newpkgversion            IN   VARCHAR2,
9392
      vcstag                   IN   VARCHAR2,
9393
      dependenciesimportlist   IN   relmgr_varchar2_tab_t,
9394
      isrippled                IN   NUMBER,
9395
      username                 IN   VARCHAR2
9396
   )      
9397
      RETURN NUMBER;
1373 dpurdie 9398
 
3959 dpurdie 9399
   PROCEDURE import_dependencies (
9400
      pvid                     IN   NUMBER,
9401
      dependenciesimportlist   IN   VARCHAR2,
9402
      userid                   IN   NUMBER
9403
   );
6600 dpurdie 9404
 
9405
    PROCEDURE import_dependencies2 (
9406
    pvid                     IN   NUMBER,
7000 dpurdie 9407
    dependenciesimportlist   IN   relmgr_varchar2_tab_t,
6600 dpurdie 9408
    userid                   IN   NUMBER
9409
    );
1373 dpurdie 9410
 
3959 dpurdie 9411
   FUNCTION return_last_package_version (pkgname IN VARCHAR2, rtagid IN NUMBER)
9412
      RETURN VARCHAR2;
1373 dpurdie 9413
 
3959 dpurdie 9414
   FUNCTION return_wip (pkgname IN VARCHAR2, rtagid IN NUMBER)
9415
      RETURN VARCHAR2;
1373 dpurdie 9416
 
3959 dpurdie 9417
   PROCEDURE update_dash_board (rtagid IN NUMBER);
1373 dpurdie 9418
 
3959 dpurdie 9419
   FUNCTION exclude_from_build (
9420
      pvid          IN   NUMBER,
9421
      spkgversion   IN   VARCHAR2,
9422
      rtagid        IN   NUMBER,
9423
      username      IN   VARCHAR2
9424
   )
9425
      RETURN NUMBER;
1373 dpurdie 9426
 
3959 dpurdie 9427
   FUNCTION exclude_indirect_from_build (
9428
      pvid          IN   NUMBER,
9429
      spkgversion   IN   VARCHAR2,
9430
      rtagid        IN   NUMBER,
9431
      username      IN   VARCHAR2,
9432
      rootpvid      IN   NUMBER,
9433
      rootcause     IN   VARCHAR2,
9434
      rootfile      IN   VARCHAR2
9435
   )
9436
      RETURN NUMBER;
1373 dpurdie 9437
 
3959 dpurdie 9438
   PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2);
1373 dpurdie 9439
 
3959 dpurdie 9440
   FUNCTION insert_package_metrics (
9441
      rtagid IN NUMBER,
9442
      pkgname IN VARCHAR2,
9443
      vext IN VARCHAR2,
9444
      metricstring IN VARCHAR2
9445
   )
9446
      RETURN NUMBER;
1373 dpurdie 9447
 
3959 dpurdie 9448
   PROCEDURE update_release_metrics (rtagid IN NUMBER);
1373 dpurdie 9449
 
3959 dpurdie 9450
   FUNCTION return_vcs_tag(pvid IN NUMBER) RETURN VARCHAR2;
9451
 
9452
   PROCEDURE update_vcs_details(ipv_id IN NUMBER, vcstag IN VARCHAR2, user_id IN NUMBER);
6031 dpurdie 9453
 
3959 dpurdie 9454
   FUNCTION isSVN( pkgid IN NUMBER ) RETURN NUMBER;
6031 dpurdie 9455
 
3959 dpurdie 9456
   FUNCTION isSVNbyName( pkgname IN VARCHAR2 ) RETURN NUMBER;
9457
 
5172 dpurdie 9458
   FUNCTION new_build_instance( rtag_id IN NUMBER, pv_id IN NUMBER, reason IN CHAR ) return NUMBER;
6031 dpurdie 9459
 
5172 dpurdie 9460
   FUNCTION update_build_instance( nbuild_id IN NUMBER, npv_id IN NUMBER default null, nstate IN CHAR default null ) return NUMBER;
6031 dpurdie 9461
 
5172 dpurdie 9462
   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;
9463
 
9464
 
3959 dpurdie 9465
END pk_rmapi;
4040 dpurdie 9466
 
1374 dpurdie 9467
/
5892 dpurdie 9468
 
6031 dpurdie 9469
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "RM_READONLY";
9470
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "MS_READONLY";
6999 dpurdie 9471
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "DM_READONLY";
4040 dpurdie 9472
--------------------------------------------------------
9473
--  DDL for Package PK_WORK_IN_PROGRESS
9474
--------------------------------------------------------
9475
 
5172 dpurdie 9476
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS" IS
1373 dpurdie 9477
/*
9478
------------------------------
9479
||  Last Modified:  S.Vukovic
3959 dpurdie 9480
||  Modified Date:  2/May/2005
9481
||  Spec Version:   1.0
1373 dpurdie 9482
------------------------------
9483
*/
9484
 
9485
	TYPE typeCur IS REF CURSOR;
9486
 
9487
    /*================================================================================================*/
9488
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9489
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
3959 dpurdie 9490
	PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER );
9491
 
1373 dpurdie 9492
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
6031 dpurdie 9493
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
1373 dpurdie 9494
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
9495
	/*================================================================================================*/
3959 dpurdie 9496
 
9497
END PK_WORK_IN_PROGRESS;
4040 dpurdie 9498
 
6999 dpurdie 9499
/
4040 dpurdie 9500
--------------------------------------------------------
9501
--  DDL for Package RM_ISSUES
9502
--------------------------------------------------------
9503
 
5172 dpurdie 9504
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."RM_ISSUES" AS
1373 dpurdie 9505
 
3959 dpurdie 9506
	TYPE T_Cur IS REF CURSOR;
1373 dpurdie 9507
 
3959 dpurdie 9508
	FUNCTION VerIsGrtrThanOrEqlToStart( XXstart IN NUMBER, XX IN NUMBER, YYstart IN NUMBER, YY IN NUMBER, ZZstart IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER;
9509
	FUNCTION VersionIsBetween( version IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR ) RETURN NUMBER;
9510
	FUNCTION VerIsLessThanOrEqlToEnd( XXend IN NUMBER, XX IN NUMBER, YYend IN NUMBER, YY IN NUMBER, ZZend IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER;
9511
	FUNCTION GetPkgId( pkgName IN VARCHAR2 ) RETURN NUMBER;
1373 dpurdie 9512
 
3959 dpurdie 9513
	PROCEDURE AllIssues( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 );
9514
	PROCEDURE LoadIssuesTable( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 );
9515
	PROCEDURE InsertIssuesForDepends( pvID IN NUMBER, top_pkgID IN NUMBER, top_pkgName IN VARCHAR2, top_pvID IN NUMBER, top_pkgVer IN VARCHAR2 );
1373 dpurdie 9516
 
3959 dpurdie 9517
END Rm_Issues;
4040 dpurdie 9518
 
6999 dpurdie 9519
/
4040 dpurdie 9520
--------------------------------------------------------
9521
--  DDL for Package Body PK_APP_UTILS
9522
--------------------------------------------------------
9523
 
5172 dpurdie 9524
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_APP_UTILS" IS
1373 dpurdie 9525
 
3959 dpurdie 9526
/*
9527
------------------------------
9528
||  Last Modified:  S.Vukovic
9529
||  Modified Date:  26/Apr/2005
9530
||  Body Version:   1.0
9531
------------------------------
9532
*/
1373 dpurdie 9533
 
9534
 
9535
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 9536
PROCEDURE GET_CURRENT_PARAMETERS ( ProjId IN VARCHAR2, RtagId IN VARCHAR2, records OUT typeCur)   IS
1373 dpurdie 9537
 
9538
 
9539
BEGIN
9540
 
9541
 
3959 dpurdie 9542
	IF (NOT RtagId IS NULL) THEN
9543
		-- Case with RTAG_ID present
9544
		OPEN records FOR
9545
		SELECT rt.PROJ_ID,
9546
			   rt.RTAG_ID AS RTAG_ID
9547
		  FROM RELEASE_TAGS rt
9548
		 WHERE rt.RTAG_ID = TO_NUMBER(RtagId);
1373 dpurdie 9549
 
3959 dpurdie 9550
	ELSIF (NOT ProjId IS NULL) THEN
9551
		-- Case with PROJ_ID present
9552
		OPEN records FOR
9553
		SELECT TO_NUMBER(ProjId) AS PROJ_ID,
9554
			   -1 AS RTAG_ID
9555
		  FROM DUAL;
1373 dpurdie 9556
 
3959 dpurdie 9557
	ELSE
9558
		-- Case with none present
9559
		OPEN records FOR
9560
		SELECT -1 AS PROJ_ID,
9561
			   -1 AS RTAG_ID
9562
		  FROM DUAL;
1373 dpurdie 9563
 
3959 dpurdie 9564
	END IF;
1373 dpurdie 9565
 
9566
 
9567
 
9568
 
3959 dpurdie 9569
   	--RETURN records;
1373 dpurdie 9570
 
9571
END;
9572
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 9573
END PK_APP_UTILS;
4040 dpurdie 9574
 
1374 dpurdie 9575
/
4040 dpurdie 9576
 
6999 dpurdie 9577
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_APP_UTILS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 9578
--------------------------------------------------------
6999 dpurdie 9579
--  DDL for Package Body PK_BLATAPI
9580
--------------------------------------------------------
9581
 
9582
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_BLATAPI" 
9583
IS
9584
/*-------------------------------------------------------------------------------------------------------*/
9585
   PROCEDURE add_pkg_replica (
9586
      sdisplay_name          IN   VARCHAR2,
9587
      sserver_name           IN   VARCHAR2,
9588
      sdescription           IN   VARCHAR2,
9589
      sactive                IN   CHAR,
9590
      smode                  IN   CHAR
9591
   )
9592
   IS
9593
      nrecordnumber   NUMBER;
9594
      nserver_id       NUMBER;
9595
   BEGIN
9596
 
9597
      INSERT INTO blat_servers(blat_display_name, blat_server_name,blat_description,blat_enable,blat_mode)
9598
            VALUES (sdisplay_name,sserver_name,sdescription, NVL(sactive,'N'), NVL(smode,'N'));
9599
 
9600
   EXCEPTION
9601
      WHEN DUP_VAL_ON_INDEX
9602
      THEN
9603
         raise_application_error (-20000,
9604
                                 'Cannot have duplicate machines.'
9605
                                 );
9606
   END;
9607
 
9608
/*-------------------------------------------------------------------------------------------------------*/
9609
   PROCEDURE delete_pkg_replica (sserver_id_list IN VARCHAR2)
9610
   IS
9611
   BEGIN
9612
      DELETE FROM blat_servers
9613
            WHERE blat_id IN (
9614
                     SELECT * FROM THE
9615
                              (SELECT CAST
9616
                                          (in_list_number (sserver_id_list) AS relmgr_number_tab_t
9617
                                          )
9618
                                 FROM DUAL
9619
                              ));
9620
   END;
9621
 
9622
 
9623
/*-------------------------------------------------------------------------------------------------------*/
9624
   PROCEDURE update_pkg_replica (
9625
      nserver_id             IN   NUMBER,
9626
      sdisplay_name          IN   VARCHAR2,
9627
      sserver_name           IN   VARCHAR2,
9628
      sdescription           IN   VARCHAR2,
9629
      sactive                IN   CHAR,
9630
      smode                  IN   CHAR
9631
   )
9632
   IS
9633
   BEGIN
9634
      UPDATE blat_servers
9635
         SET blat_display_name = sdisplay_name,
9636
             blat_server_name = sserver_name,
9637
             blat_description = sdescription,
9638
             blat_enable = NVL(sactive, 'N'),
9639
             blat_mode = NVL(smode, 'N')
9640
      WHERE blat_id = nserver_id;
9641
 
9642
   PK_BLATAPI.set_pkg_replica_changed(nserver_id);
9643
 
9644
   EXCEPTION
9645
      WHEN DUP_VAL_ON_INDEX
9646
      THEN
9647
         raise_application_error (-20000,
9648
                                 'Cannot have duplicate machines.'
9649
                                 );
9650
 
9651
 
9652
   END;
9653
 
9654
/*-------------------------------------------------------------------------------------------------------*/
9655
   PROCEDURE set_pkg_replica_changed( nserver_id IN   NUMBER)
9656
   IS
9657
   BEGIN
9658
    UPDATE blat_servers
9659
    SET blat_seqnum = SEQ_BLAT_MOD.NEXTVAL,
9660
        blat_timestamp = current_timestamp
9661
    WHERE blat_id = nserver_id;    
9662
   END;
9663
 
9664
END PK_BLATAPI;
9665
 
9666
/
9667
--------------------------------------------------------
4040 dpurdie 9668
--  DDL for Package Body PK_BUILDAPI
9669
--------------------------------------------------------
9670
 
5172 dpurdie 9671
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_BUILDAPI" 
1373 dpurdie 9672
IS
9673
   /*-------------------------------------------------------------------------------------------------------*/
9674
   PROCEDURE add_product_component (
9675
      npvid           IN   NUMBER,
9676
      sosname         IN   VARCHAR2,
9677
      sorigfilepath   IN   VARCHAR2,
9678
      sfilename       IN   VARCHAR2,
9679
      sdestfilepath   IN   VARCHAR2,
9680
      nbytesize       IN   NUMBER,
9681
      scrccksum       IN   VARCHAR2
9682
   )
9683
   IS
9684
      nosid   NUMBER;
9685
   BEGIN
9686
      /*--------------- Business Rules Here -------------------*/
9687
      -- OS Name Requirements --
9688
      IF (sosname IS NULL)
9689
      THEN
9690
         raise_application_error (-20000, 'OsName cannot be NULL.');
9691
      END IF;
9692
 
9693
      -- File Requirements --
9694
      IF (NOT sfilename IS NULL)
9695
      THEN
9696
         IF (nbytesize IS NULL)
9697
         THEN
9698
            raise_application_error (-20000, 'Byte Size cannot be NULL.');
9699
         ELSIF (scrccksum IS NULL)
9700
         THEN
9701
            raise_application_error (-20000, 'CRC CKSUM cannot be NULL.');
9702
         END IF;
9703
      END IF;
9704
 
9705
      -- Folder Requirements --
9706
      -- No requirements for now.
9707
 
9708
      /*-------------------------------------------------------*/
9709
 
9710
      -- Get OsId
9711
      nosid := get_osid (sosname);
9712
 
9713
      -- Insert component entry
9714
      INSERT INTO product_components
9715
                  (pv_id, os_id, file_path, file_name, destination_path,
9716
                  byte_size, crc_cksum
9717
                  )
9718
         VALUES (npvid, nosid, sorigfilepath, sfilename, sdestfilepath,
9719
                  nbytesize, scrccksum
9720
                  );
9721
   EXCEPTION
9722
      WHEN DUP_VAL_ON_INDEX
9723
      THEN
9724
         raise_application_error (-20000,
9725
                                 'Cannot have duplicate product components.'
9726
                                 );
9727
   END;
9728
 
9729
/*-------------------------------------------------------------------------------------------------------*/
9730
   PROCEDURE remove_all_product_components (
9731
      npvid     IN   NUMBER,
9732
      sosname   IN   VARCHAR2
9733
   )
9734
   IS
9735
      nosid   NUMBER;
9736
   BEGIN
9737
/*--------------- Business Rules Here -------------------*/
9738
/*-------------------------------------------------------*/
9739
 
9740
      -- Get OsId
9741
      nosid := get_osid (sosname);
9742
 
9743
      -- Delete component entry
9744
      DELETE FROM product_components pc
9745
            WHERE pc.pv_id = npvid AND pc.os_id = nosid;
9746
   END;
9747
 
9748
/*-------------------------------------------------------------------------------------------------------*/
9749
   FUNCTION get_osid (sosname IN VARCHAR2)
9750
      RETURN NUMBER
9751
   IS
9752
      code   NUMBER;
9753
   BEGIN
9754
      -- Get Platform Code --
9755
      SELECT pf.code
9756
      INTO code
9757
      FROM platforms pf
9758
      WHERE UPPER (pf.NAME) = UPPER (sosname);
9759
 
9760
      RETURN code;
9761
   EXCEPTION
9762
      WHEN NO_DATA_FOUND
9763
      THEN
9764
         raise_application_error
9765
            (-20000,
9766
               'Platform '
9767
            || sosname
9768
            || ' is not valid. It needs to be added to PLATFORMS table in Release Manager.'
9769
            );
9770
         RAISE;
9771
   END;
9772
 
9773
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 9774
 PROCEDURE update_build_service_info (
1373 dpurdie 9775
      sdatabaseserver   IN   VARCHAR2,
9776
      sarchiveserver    IN   VARCHAR2,
9777
      smailserver       IN   VARCHAR2,
9778
      smailsender       IN   VARCHAR2,
4211 dpurdie 9779
      faultmlist        IN   VARCHAR2,
1373 dpurdie 9780
      sdiskspace        IN   VARCHAR2,
6600 dpurdie 9781
      ssbommanagement   IN   VARCHAR2,
9782
      lxrserver         IN   VARCHAR2
1373 dpurdie 9783
   )
9784
   IS
9785
   BEGIN
9786
      UPDATE build_service_config
9787
         SET config = sdatabaseserver
9788
      WHERE service = 'DATABASE SERVER';
9789
 
9790
      UPDATE build_service_config
9791
         SET config = sarchiveserver
9792
      WHERE service = 'ARCHIVE SERVER';
9793
 
9794
      UPDATE build_service_config
9795
         SET config = smailserver
9796
      WHERE service = 'MAIL SERVER';
9797
 
9798
      UPDATE build_service_config
9799
         SET config = smailsender
9800
      WHERE service = 'BUILD FAILURE MAIL SENDER';
9801
 
9802
      UPDATE build_service_config
4211 dpurdie 9803
         SET config = faultmlist
9804
      WHERE service = 'FAULT EMAIL ADDRESS LIST';
6031 dpurdie 9805
 
4211 dpurdie 9806
      UPDATE build_service_config
1373 dpurdie 9807
         SET config = sdiskspace
9808
      WHERE service = 'DPKG_ARCHIVE DISK SPACE USED';
9809
 
9810
      UPDATE build_service_config
9811
         SET config = ssbommanagement
9812
      WHERE service = 'SBOM MANAGEMENT';
6600 dpurdie 9813
 
9814
      UPDATE build_service_config
9815
         SET config = lxrserver
9816
      WHERE service = 'LXR SERVER';
1373 dpurdie 9817
   END;
9818
 
9819
 
6031 dpurdie 9820
 
1373 dpurdie 9821
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 9822
   PROCEDURE add_gbe_machtype (sgbevalue IN VARCHAR2, sgbeclass IN NUMBER)
1373 dpurdie 9823
   IS
9824
      gbe_id   NUMBER;
9825
   BEGIN
9826
      -- Get GBE_ID
9827
      SELECT seq_gbe_id.NEXTVAL
9828
      INTO gbe_id
9829
      FROM DUAL;
9830
 
9831
      INSERT INTO gbe_machtype
4040 dpurdie 9832
                  (gbe_id, gbe_value, bm_id )
9833
         VALUES (gbe_id, sgbevalue, sgbeclass );
1373 dpurdie 9834
   END;
9835
 
9836
/*-------------------------------------------------------------------------------------------------------*/
9837
   PROCEDURE remove_gbe_machtype (ngbe_id IN NUMBER)
9838
   IS
9839
   BEGIN
9840
      DELETE FROM gbe_machtype
9841
            WHERE gbe_id = ngbe_id;
9842
   END;
9843
 
9844
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 9845
   PROCEDURE update_gbe_machtype (ngbe_id IN NUMBER, sgbevalue IN VARCHAR2, sgbeclass IN NUMBER)
1373 dpurdie 9846
   IS
9847
   BEGIN
9848
      UPDATE gbe_machtype
4040 dpurdie 9849
         SET gbe_value = sgbevalue,
9850
             bm_id = sgbeclass
1373 dpurdie 9851
      WHERE gbe_id = ngbe_id;
9852
   END;
9853
 
9854
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 9855
PROCEDURE add_buildmachine (sbmvalue IN VARCHAR2)
9856
   IS
9857
      bm_id   NUMBER;
9858
   BEGIN
9859
      -- Get BM_ID
9860
      SELECT seq_bm_id.NEXTVAL
9861
      INTO bm_id
9862
      FROM DUAL;
9863
 
9864
      INSERT INTO build_machines
9865
                  (bm_id, bm_name)
9866
         VALUES (bm_id, sbmvalue );
9867
   END;
9868
 
9869
/*-------------------------------------------------------------------------------------------------------*/
9870
   PROCEDURE remove_buildmachine (nbm_id IN NUMBER)
9871
   IS
9872
   BEGIN
9873
      DELETE FROM build_machines
9874
            WHERE bm_id = nbm_id;
9875
   END;
9876
 
9877
/*-------------------------------------------------------------------------------------------------------*/
6031 dpurdie 9878
   PROCEDURE update_buildmachine (nbm_id IN NUMBER, sbmvalue IN VARCHAR2)
4040 dpurdie 9879
   IS
9880
   BEGIN
9881
      UPDATE build_machines
9882
         SET bm_name = sbmvalue
9883
         WHERE bm_id = nbm_id;
9884
   END;
9885
 
9886
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 9887
   PROCEDURE delete_daemon (srconidlist IN VARCHAR2)
9888
   IS
9889
   BEGIN
9890
      -- Entries in the daemon_action_log, run_level and abt_action_log tables must be deleted first.
9891
      DELETE FROM daemon_action_log
9892
            WHERE rcon_id IN (
9893
                     SELECT *
9894
                     FROM THE
9895
                              (SELECT CAST
9896
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
9897
                                          )
9898
                                 FROM DUAL
9899
                              ));
9900
 
9901
      DELETE FROM run_level
9902
            WHERE rcon_id IN (
9903
                     SELECT *
9904
                     FROM THE
9905
                              (SELECT CAST
9906
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
9907
                                          )
9908
                                 FROM DUAL
9909
                              ));
9910
 
9911
      DELETE FROM abt_action_log
9912
            WHERE rcon_id IN (
9913
                     SELECT *
9914
                     FROM THE
9915
                              (SELECT CAST
9916
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
9917
                                          )
9918
                                 FROM DUAL
9919
                              ));
9920
 
9921
      -- Once entries in daemon_action_log, run_level and abt_action_log are removed, the daemon is deleted.
9922
      DELETE FROM release_config
9923
            WHERE rcon_id IN (
9924
                     SELECT *
9925
                     FROM THE
9926
                              (SELECT CAST
9927
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
9928
                                          )
9929
                                 FROM DUAL
9930
                              ));
9931
   END;
9932
 
9933
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 9934
   PROCEDURE remove_daemon (srconidlist IN VARCHAR2)
1373 dpurdie 9935
   IS
4308 dpurdie 9936
   oRconIdList RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
9937
 
1373 dpurdie 9938
   BEGIN
6031 dpurdie 9939
 
4308 dpurdie 9940
   oRconIdList := IN_LIST_NUMBER ( srconidlist );
9941
 
9942
      -- Break the linkage between the release_config and the build_machine_config
6031 dpurdie 9943
 
4308 dpurdie 9944
      -- Delete the linkage between the two tables.
9945
       UPDATE release_config
9946
         SET daemon_hostname = NULL,
6031 dpurdie 9947
             bmcon_id = NULL
4308 dpurdie 9948
      WHERE rcon_id IN ( SELECT * FROM TABLE ( CAST ( oRconIdList AS RELMGR_NUMBER_TAB_t ) ) );
1373 dpurdie 9949
   END;
9950
 
9951
/*-------------------------------------------------------------------------------------------------------*/
9952
   PROCEDURE insert_schedule_info (
9953
      dschedulepause     IN   DATE,
9954
      dscheduleresume    IN   DATE,
9955
      crepeat            IN   VARCHAR2,
9956
      cindefinitepause   IN   VARCHAR2
9957
   )
9958
   IS
9959
      nscheduledid   NUMBER;
9960
   BEGIN
9961
      -- Get Next Available Scheduled Id
9962
      SELECT seq_scheduled_id.NEXTVAL
9963
      INTO nscheduledid
9964
      FROM DUAL;
9965
 
9966
      INSERT INTO run_level_schedule
9967
         VALUES (nscheduledid, dschedulepause, dscheduleresume, crepeat,
9968
                  cindefinitepause);
9969
   END;
9970
 
9971
/*-------------------------------------------------------------------------------------------------------*/
9972
   PROCEDURE delete_schedule (nscheduleid IN NUMBER)
9973
   IS
9974
   BEGIN
9975
      DELETE FROM run_level_schedule
9976
            WHERE scheduled_id = nscheduleid;
9977
   END;
9978
 
9979
/*-------------------------------------------------------------------------------------------------------*/
9980
   PROCEDURE set_infinite_pause
9981
   IS
9982
      nscheduledid   NUMBER;
9983
   BEGIN
9984
      -- Get Next Available Scheduled Id
9985
      SELECT seq_scheduled_id.NEXTVAL
9986
      INTO nscheduledid
9987
      FROM DUAL;
9988
 
9989
      INSERT INTO run_level_schedule
5172 dpurdie 9990
         VALUES (nscheduledid, ora_sysdatetime, NULL, NULL, 'P');
1373 dpurdie 9991
   END;
6031 dpurdie 9992
 
5172 dpurdie 9993
/*-------------------------------------------------------------------------------------------------------*/
9994
   PROCEDURE set_finite_pause (duration IN NUMBER)
9995
   IS
9996
      nscheduledid   NUMBER;
9997
      currentDate    DATE := ora_sysdatetime;
9998
   BEGIN
6031 dpurdie 9999
 
5172 dpurdie 10000
      -- Get Next Available Scheduled Id
10001
      SELECT seq_scheduled_id.NEXTVAL
10002
      INTO nscheduledid
10003
      FROM DUAL;
1373 dpurdie 10004
 
5172 dpurdie 10005
      INSERT INTO run_level_schedule
10006
         VALUES (nscheduledid, currentDate, currentDate + duration/(24*60), 0, 'F');
6031 dpurdie 10007
      COMMIT;
10008
 
5172 dpurdie 10009
      -- Ensure that we have only ONE finite pause by deleting all old ones
10010
      -- Under race conditions the last one wins
6031 dpurdie 10011
      DELETE FROM run_level_schedule
5172 dpurdie 10012
        WHERE SCHEDULED_ID < nscheduledid
10013
        AND INDEFINITE_PAUSE = 'F';
6031 dpurdie 10014
   END;
5172 dpurdie 10015
 
1373 dpurdie 10016
/*-------------------------------------------------------------------------------------------------------*/
10017
   PROCEDURE set_resume
10018
   IS
10019
   BEGIN
10020
      DELETE FROM run_level_schedule
5172 dpurdie 10021
            WHERE indefinite_pause in ('F', 'P' );
1373 dpurdie 10022
   END;
10023
 
10024
/*-------------------------------------------------------------------------------------------------------*/
10025
   PROCEDURE delete_out_of_date_schedule
10026
   IS
10027
   BEGIN
10028
      DELETE FROM run_level_schedule
10029
            WHERE scheduled_resume < ora_sysdatetime AND repeat = 0;
10030
   END;
10031
 
10032
/*-------------------------------------------------------------------------------------------------------*/
10033
   PROCEDURE set_daemon_resume (nrconid IN NUMBER)
10034
   IS
10035
   BEGIN
10036
      UPDATE run_level
10037
         SET PAUSE = NULL
10038
      WHERE rcon_id = nrconid;
10039
   END;
10040
 
10041
/*-------------------------------------------------------------------------------------------------------*/
10042
   PROCEDURE set_daemon_pause (nrconid IN NUMBER)
10043
   IS
10044
   BEGIN
10045
      UPDATE run_level
10046
         SET PAUSE = 1
10047
      WHERE rcon_id = nrconid;
10048
   END;
10049
/*-------------------------------------------------------------------------------------------------------*/
10050
   PROCEDURE set_daemon_disable (nrconid NUMBER)
10051
   IS
10052
   BEGIN
10053
      UPDATE run_level
10054
         SET PAUSE = 2
10055
      WHERE rcon_id = nrconid;
10056
   END;
10057
 
10058
/*-------------------------------------------------------------------------------------------------------*/
10059
   PROCEDURE set_daemon_states (nrtagid NUMBER, nstate NUMBER)
10060
   IS
10061
   BEGIN
10062
     UPDATE run_level
10063
     SET pause = nstate
10064
     WHERE rcon_id IN
10065
     (SELECT rc.rcon_id FROM release_config rc WHERE rc.rtag_id = nrtagid);
10066
   END;
10067
 
10068
/*-------------------------------------------------------------------------------------------------------*/
10069
   -- inserts a new daemon instruction
10070
   -- This is for use by the Release Manager Website code.
10071
   --
10072
   PROCEDURE insert_daemon_inst
10073
   ( nOp_code IN NUMBER
10074
   , nRtag_id IN NUMBER
10075
   , nPv_id IN NUMBER
10076
   , nSchedDate IN DATE
10077
   , nRepeatSecs IN NUMBER
10078
   , nAddedDate IN DATE
10079
   , nUser_id IN NUMBER
10080
   ) IS
10081
      nInstId   NUMBER;
10082
   BEGIN
10083
      -- Get Next Available Scheduled Id
10084
      SELECT seq_daemon_instruction_id.NEXTVAL
10085
      INTO nInstId
10086
      FROM DUAL;
10087
 
10088
      INSERT INTO Daemon_Instructions
10089
         VALUES (nInstId, nOp_code, nRtag_id,
10090
                  nPv_id, nSchedDate, nRepeatSecs,
10091
                  nAddedDate, nUser_id, '0');
6031 dpurdie 10092
 
10093
   -- Mark the Release as modified for build purposes
10094
   PK_RELEASE.SET_RELEASE_MODIFIED(nRtag_id);
10095
 
1373 dpurdie 10096
   EXCEPTION
10097
      WHEN DUP_VAL_ON_INDEX
10098
      THEN
10099
         raise_application_error (-20000,
10100
                                 'Table already contains a record with the specified OPERATION, RELEASE, and PACKAGE VERSION'
10101
                                 );
10102
      WHEN OTHERS
10103
      THEN
10104
         raise;
5172 dpurdie 10105
 
1373 dpurdie 10106
   END insert_daemon_inst;
10107
 
10108
/*-------------------------------------------------------------------------------------------------------*/
10109
   -- Deletes a daemon instruction matching the specified instruction ID
10110
   --
10111
   PROCEDURE del_daemon_inst
10112
   ( nInstId IN NUMBER
10113
   ) IS
10114
 
10115
   BEGIN
10116
      DELETE FROM Daemon_Instructions
10117
      WHERE DAEMON_INSTRUCTIONS_ID = nInstId;
10118
 
10119
   END del_daemon_inst;
10120
 
10121
/*-------------------------------------------------------------------------------------------------------*/
10122
   -- Deletes a daemon instruction matching the specified op-code, ratag, and pv_id
10123
   --
10124
   PROCEDURE del_daemon_inst_by_rtag_pvid(
10125
      nOp_code IN NUMBER,
10126
      nRtag_id IN NUMBER,
10127
      nPv_id IN NUMBER
10128
   ) IS
10129
   BEGIN
10130
      DELETE FROM Daemon_Instructions
10131
      WHERE OP_CODE = nOp_code
10132
      AND RTAG_ID = nRtag_id
10133
      AND PV_ID   = nPv_id;
10134
 
10135
   END del_daemon_inst_by_rtag_pvid;
10136
 
10137
/*-------------------------------------------------------------------------------------------------------*/
10138
   -- Updates a daemon instruction
10139
   -- This is for use by the Release Manager Website code.
10140
   --
10141
   PROCEDURE update_daemon_inst
10142
   ( nInstId IN NUMBER
10143
   , nOp_code IN NUMBER
10144
   , nRtag_id IN NUMBER
10145
   , nPv_id IN NUMBER
10146
   , nSchedDate IN DATE
10147
   , nRepeatSecs IN NUMBER
10148
   , nAddedDate IN DATE
10149
   , nUser_id IN NUMBER
10150
   ) IS
10151
      CURSOR daemon_inst_cur IS
10152
         SELECT *
10153
         FROM daemon_instructions di
10154
         WHERE di.DAEMON_INSTRUCTIONS_ID = nInstId;
10155
 
10156
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
10157
 
10158
      exc_inst_removed EXCEPTION;
10159
   BEGIN
10160
      OPEN daemon_inst_cur;
10161
 
10162
      FETCH daemon_inst_cur
10163
      INTO daemon_inst_rec;
10164
 
10165
      IF daemon_inst_cur%FOUND THEN
10166
 
10167
         UPDATE Daemon_Instructions
10168
         SET op_code = nOp_code,
10169
            rtag_id = nRtag_id,
10170
            pv_id   = nPv_id,
10171
            scheduled_datetime = nSchedDate,
10172
            repeat_secs = nRepeatSecs,
10173
            added_datetime = nAddedDate,
10174
            user_id = nUser_id,
10175
            in_progress = '0'
10176
         WHERE daemon_instructions_id = nInstId;
10177
      ELSE
10178
         raise exc_inst_removed;
10179
      END IF;
10180
 
10181
      CLOSE daemon_inst_cur;
6031 dpurdie 10182
 
10183
      -- Mark the Release as modified for build purposes
10184
      PK_RELEASE.SET_RELEASE_MODIFIED(nRtag_id);
10185
 
1373 dpurdie 10186
   EXCEPTION
10187
      WHEN DUP_VAL_ON_INDEX
10188
      THEN
10189
         raise_application_error (-20000,
10190
                                 'Table already contains a record with the specified OPERATION, RELEASE, and PACKAGE VERSION'
10191
                                 );
10192
      WHEN exc_inst_removed
10193
      THEN
10194
         raise_application_error (-20000,
10195
                                 'Record was probably deleted by the Buildtool during your edit-form session. Please create a new Daemon Instruction.'
10196
                                 );
10197
      WHEN OTHERS
10198
      THEN
10199
         raise;
5172 dpurdie 10200
 
1373 dpurdie 10201
   END update_daemon_inst;
10202
 
10203
/*-------------------------------------------------------------------------------------------------------*/
10204
   -- Returns a comma-separated list of operation codes found for a given rtag and pv_id combination
10205
   -- This is for use by the Release Manager Website code.
10206
   --
10207
   FUNCTION daemon_ops_for_rtag_pvid(
10208
      nRtag_id IN NUMBER,
10209
      nPv_id IN NUMBER
10210
   ) RETURN VARCHAR2
10211
   IS
10212
      CURSOR daemon_inst_cur IS
10213
         SELECT di.OP_CODE
10214
         FROM daemon_instructions di
10215
         WHERE di.RTAG_ID = nRtag_id
10216
            AND di.PV_ID = nPv_id;
10217
 
10218
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
10219
 
10220
      sRetList VARCHAR2(4000) := '';
10221
 
10222
   BEGIN
10223
      OPEN daemon_inst_cur;
10224
 
10225
      FETCH daemon_inst_cur
10226
      INTO daemon_inst_rec;
10227
 
10228
      WHILE daemon_inst_cur%FOUND
10229
      LOOP
10230
         sRetList := sRetList || daemon_inst_rec.op_code || ',';
10231
 
10232
         FETCH daemon_inst_cur
10233
         INTO daemon_inst_rec;
10234
      END LOOP;
10235
 
10236
      CLOSE daemon_inst_cur;
10237
 
10238
      RETURN sRetList;
10239
   END daemon_ops_for_rtag_pvid;
10240
/*-------------------------------------------------------------------------------------------------------*/
10241
   -- Returns a comma-separated list of operation codes found for a given rtag
10242
   -- This is for use by the Release Manager Website code.
10243
   --
10244
   FUNCTION daemon_ops_for_rtag(
10245
      nRtag_id IN NUMBER
10246
   ) RETURN VARCHAR2
10247
   IS
10248
      CURSOR daemon_inst_cur IS
10249
         SELECT di.OP_CODE
10250
         FROM daemon_instructions di
10251
         WHERE di.RTAG_ID = nRtag_id;
10252
 
10253
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
10254
 
10255
      sRetList VARCHAR2(4000) := '';
10256
 
10257
   BEGIN
10258
      OPEN daemon_inst_cur;
10259
 
10260
      FETCH daemon_inst_cur
10261
      INTO daemon_inst_rec;
10262
 
10263
      WHILE daemon_inst_cur%FOUND
10264
      LOOP
10265
         sRetList := sRetList || daemon_inst_rec.op_code || ',';
10266
 
10267
         FETCH daemon_inst_cur
10268
         INTO daemon_inst_rec;
10269
      END LOOP;
10270
 
10271
      CLOSE daemon_inst_cur;
10272
 
10273
      RETURN sRetList;
10274
   END daemon_ops_for_rtag;
10275
/*-------------------------------------------------------------------------------------------------------*/
10276
   -- Gets a record from the daemon instruction table that can be carried out now and returns the fields
10277
   -- in the record a daemon will need
10278
   -- The Buildtool should use this to find a job to do for a particular release. It should then call
10279
   -- mark_daemon_inst_in_progress(inst_id) before carrying out the work, and then call
10280
   -- mark_daemon_inst_completed(inst_id) to signal its completion.
10281
   -- Can be called repeatedly to get a full list of all instructions for a release, by passing back in
10282
   -- the instruction ID obtained from the previous call (the 1st call should use 0)
10283
   -- Can be called repeatedly to get a full list of all instructions of a specific op-code value for a release,
10284
   -- by passing back in an op-code value of 0 or higher (use -1 if no op-code filtering is needed)
10285
   -- Returns 1 if a record was found, else 0.
10286
   --
10287
   FUNCTION get_daemon_inst(
10288
      nRtag_id IN NUMBER,
10289
      nInst_id IN OUT NUMBER,
10290
      nOp_code IN OUT NUMBER,
10291
      nPv_id OUT NUMBER,
10292
      nUser_id OUT NUMBER,
10293
      nInProgress OUT NUMBER
10294
   ) RETURN NUMBER
10295
   IS
10296
      CURSOR daemon_inst_cur IS
10297
         SELECT di.daemon_instructions_id, di.op_code, di.pv_id ,di.user_id, di.in_progress
10298
           FROM daemon_instructions di
10299
          WHERE di.rtag_id = nRtag_id
10300
            AND di.daemon_instructions_id > nInst_id
10301
            AND di.scheduled_datetime <= ora_sysdatetime
10302
            AND ((nOp_code = -1) OR (nOp_code = di.op_code))
10303
            AND rownum <= 1
10304
       ORDER BY di.daemon_instructions_id;
10305
 
10306
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
10307
   BEGIN
10308
      OPEN daemon_inst_cur;
10309
 
10310
      FETCH daemon_inst_cur
10311
      INTO daemon_inst_rec;
10312
 
10313
      -- If we found a record, return it.
10314
      IF daemon_inst_cur%FOUND THEN
10315
         nInst_id := daemon_inst_rec.daemon_instructions_id;
10316
         nOp_code := daemon_inst_rec.op_code;
10317
         nPv_id   := daemon_inst_rec.pv_id;
10318
         nUser_id := daemon_inst_rec.user_id;
10319
         IF daemon_inst_rec.in_progress = '1' THEN
10320
            nInProgress := 1;
10321
         ELSE
10322
            nInProgress := 0;
10323
         END IF;
10324
         CLOSE daemon_inst_cur;
10325
         RETURN 1;
10326
      END IF;
10327
 
10328
      CLOSE daemon_inst_cur;
10329
      RETURN 0;
10330
 
10331
   END get_daemon_inst;
10332
/*-------------------------------------------------------------------------------------------------------*/
10333
   -- Marks a daemon instruction as being processed by a daemon
10334
   -- The Buildtool should use this before it embarks on the work the instruction commands
10335
   --
10336
   PROCEDURE mark_daemon_inst_in_progress( nInstId IN NUMBER )
10337
   IS
10338
   BEGIN
10339
      UPDATE Daemon_Instructions
10340
      SET in_progress = '1'
10341
      WHERE daemon_instructions_id = nInstId;
10342
 
10343
   END mark_daemon_inst_in_progress;
10344
 
10345
/*-------------------------------------------------------------------------------------------------------*/
10346
   -- Once the Buildtool has finished carrying out the daemon instruction, it should call this stored
10347
   -- procedure in order to either delete the instruction or update it in the case where it is a repeating
10348
   -- instruction.
10349
   --
10350
   PROCEDURE mark_daemon_inst_completed( nInstId IN NUMBER )
10351
   IS
10352
      repSecs NUMBER;
10353
      schedDate  DATE;
10354
 
10355
      CURSOR daemon_inst_cur IS
10356
         SELECT di.REPEAT_SECS AS repSecs, di.SCHEDULED_DATETIME AS schedDate
10357
         FROM daemon_instructions di
10358
         WHERE di.daemon_instructions_id = nInstId;
10359
 
10360
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
10361
   BEGIN
10362
      OPEN daemon_inst_cur;
10363
 
10364
      FETCH daemon_inst_cur
10365
      INTO daemon_inst_rec;
10366
 
10367
      IF daemon_inst_cur%FOUND THEN
10368
 
10369
         -- if instruction repeats daily, add 1 day to the scheduled time and update the record
10370
         IF daemon_inst_rec.repSecs = 86400 THEN
10371
            UPDATE Daemon_Instructions
10372
               SET scheduled_datetime = daemon_inst_rec.schedDate + 1,
10373
                  in_progress = '0'
10374
            WHERE daemon_instructions_id = nInstId;
10375
         ELSE
10376
            -- Delete the daemon instruction, we are done with it
10377
            del_daemon_inst(nInstId);
10378
         END IF;
10379
      END IF;
10380
 
10381
      CLOSE daemon_inst_cur;
10382
 
10383
   EXCEPTION
10384
      WHEN OTHERS
10385
      THEN
10386
         raise;
10387
 
10388
   END mark_daemon_inst_completed;
10389
/*-------------------------------------------------------------------------------------------------------*/
10390
   -- This function deletes any old daemon instruction that appears stranded due to a problem that might
10391
   -- have occured during buildtool operation such as might occur if the buildtool or the machine it was
10392
   -- hosted on came down whilst it was processing a daemon instruction.
10393
   PROCEDURE cleanup_stranded_daemon_insts
10394
   IS
10395
   BEGIN
10396
      -- delete records at least two days old
10397
      DELETE FROM daemon_instructions di
10398
      WHERE  (di.scheduled_datetime + 5) <= ora_sysdatetime;
10399
 
10400
   END cleanup_stranded_daemon_insts;
10401
/*-------------------------------------------------------------------------------------------------------*/
10402
  --This function supersedes function, add_daemon. Done for DEVI-046806
10403
   PROCEDURE add_daemon_config (
10404
      nrtagid           IN   NUMBER,
10405
      nbmcon_id         IN   NUMBER,
10406
      sdaemon_mode      IN   VARCHAR2,
10407
      sgbebuildfilter   IN   VARCHAR2
10408
   )
10409
   IS
10410
      nrecordnumber   NUMBER;
10411
      nrconid         NUMBER;
10412
      sdaemonhostname VARCHAR2(50);
10413
      ngbeid         NUMBER;
10414
   BEGIN
10415
      -- Get RCON_ID
10416
      SELECT seq_rcon_id.NEXTVAL
10417
      INTO nrconid
10418
      FROM DUAL;
10419
 
10420
      SELECT COUNT (*)
10421
      INTO nrecordnumber
10422
      FROM release_config
10423
      WHERE rtag_id = nrtagid;
10424
 
10425
      SELECT machine_hostname,gbe_id INTO sdaemonhostname,ngbeid
10426
      FROM build_machine_config
10427
      WHERE bmcon_id = nbmcon_id;
10428
 
10429
      INSERT INTO release_config
10430
             (rcon_id, rtag_id, daemon_hostname, daemon_mode,
4308 dpurdie 10431
                gbe_id, gbe_buildfilter, bmcon_id)
1373 dpurdie 10432
      VALUES (nrconid, nrtagid, sdaemonhostname, sdaemon_mode,
4308 dpurdie 10433
                ngbeid, sgbebuildfilter, nbmcon_id);
1373 dpurdie 10434
 
10435
      -- A newly configured daemon should initially be paused (DEVI-047277)
10436
      INSERT INTO run_level
10437
                  (rcon_id, pause)
10438
           VALUES (nrconid, 2);
10439
 
10440
   END;
10441
 
10442
/*-------------------------------------------------------------------------------------------------------*/
10443
  --This function supersedes function, update_daemon. Done for DEVI-046806
10444
   PROCEDURE update_daemon_config (
10445
      nrconid           IN   NUMBER,
10446
      nbmcon_id         IN   NUMBER,
10447
      sdaemon_mode      IN   VARCHAR2,
10448
      sgbebuildfilter   IN   VARCHAR2
10449
   )
10450
   IS
10451
      sdaemonhostname VARCHAR2(50);
10452
      ngbeid         NUMBER;
10453
   BEGIN
10454
 
10455
      SELECT machine_hostname,gbe_id INTO sdaemonhostname,ngbeid
10456
      FROM build_machine_config
10457
      WHERE bmcon_id = nbmcon_id;
10458
 
10459
      UPDATE release_config
10460
         SET daemon_hostname = sdaemonhostname,
10461
            gbe_id = ngbeid,
10462
            daemon_mode = sdaemon_mode,
4308 dpurdie 10463
            gbe_buildfilter = sgbebuildfilter,
6031 dpurdie 10464
            bmcon_id = nbmcon_id
1373 dpurdie 10465
      WHERE rcon_id = nrconid;
10466
   END;
10467
 
10468
 
10469
/*-------------------------------------------------------------------------------------------------------*/
10470
   PROCEDURE add_build_machine (
10471
      sdisplay_name          IN   VARCHAR2,
10472
      smachine_hostname      IN   VARCHAR2,
10473
      ngbeid                 IN   NUMBER,
5172 dpurdie 10474
      sdescription           IN   VARCHAR2,
10475
      sactive                IN   CHAR
1373 dpurdie 10476
   )
10477
   IS
10478
      nrecordnumber   NUMBER;
10479
      nbmcon_id       NUMBER;
10480
   BEGIN
10481
      -- Get BMCON_ID
10482
      SELECT seq_bmcon_id.NEXTVAL INTO nbmcon_id FROM DUAL;
10483
 
5172 dpurdie 10484
      INSERT INTO build_machine_config(bmcon_id, display_name, machine_hostname,gbe_id,description,active)
10485
            VALUES (nbmcon_id,sdisplay_name,smachine_hostname,ngbeid,sdescription, NVL(sactive,'N'));
1373 dpurdie 10486
 
10487
   EXCEPTION
10488
      WHEN DUP_VAL_ON_INDEX
10489
      THEN
10490
         raise_application_error (-20000,
10491
                                 'Cannot have duplicate machines.'
10492
                                 );
10493
 
10494
   END;
10495
 
10496
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 10497
 PROCEDURE duplicate_daemon_config (
10498
      nrtagid           IN   NUMBER,
10499
      nbmcon_id         IN   NUMBER,
10500
      sdaemonhostname   IN   VARCHAR2,
10501
      ngbe_id           IN   NUMBER,
10502
      sdaemon_mode      IN   VARCHAR2,
10503
      sgbebuildfilter   IN   VARCHAR2
10504
   )
10505
   IS
10506
      nrecordnumber   NUMBER;
10507
      nrconid         NUMBER;
10508
    BEGIN
6031 dpurdie 10509
 
4308 dpurdie 10510
      -- Get RCON_ID
10511
      SELECT seq_rcon_id.NEXTVAL
10512
      INTO nrconid
10513
      FROM DUAL;
10514
 
10515
      INSERT INTO release_config
10516
             (rcon_id, rtag_id, daemon_hostname, daemon_mode,
10517
                gbe_id, gbe_buildfilter, bmcon_id)
10518
      VALUES (nrconid, nrtagid, sdaemonhostname, sdaemon_mode,
10519
                ngbe_id, sgbebuildfilter, nbmcon_id);
6031 dpurdie 10520
 
4308 dpurdie 10521
    -- A newly configured daemon should initially be disabled (DEVI-047277)
10522
      INSERT INTO run_level
10523
                  (rcon_id, pause)
10524
           VALUES (nrconid, 2);
10525
 
10526
   END;
10527
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 10528
   PROCEDURE delete_build_machine (sbmcon_id_list IN VARCHAR2)
10529
   IS
10530
   BEGIN
10531
      DELETE FROM build_machine_config
10532
            WHERE bmcon_id IN (
10533
                     SELECT * FROM THE
10534
                              (SELECT CAST
10535
                                          (in_list_number (sbmcon_id_list) AS relmgr_number_tab_t
10536
                                          )
10537
                                 FROM DUAL
10538
                              ));
10539
   END;
10540
 
10541
 
10542
/*-------------------------------------------------------------------------------------------------------*/
10543
   PROCEDURE update_build_machine (
10544
      nbmcon_id              IN   NUMBER,
10545
      sdisplay_name          IN   VARCHAR2,
10546
      smachine_hostname      IN   VARCHAR2,
10547
      ngbeid                 IN   NUMBER,
5172 dpurdie 10548
      sdescription           IN   VARCHAR2,
10549
      sactive                IN   CHAR
1373 dpurdie 10550
   )
10551
   IS
10552
   BEGIN
10553
      UPDATE build_machine_config
10554
         SET display_name = sdisplay_name,
10555
             machine_hostname = smachine_hostname,
10556
             gbe_id = ngbeid,
5172 dpurdie 10557
             description = sdescription,
10558
             active = NVL(sactive, 'N')
1373 dpurdie 10559
      WHERE bmcon_id = nbmcon_id;
10560
   EXCEPTION
10561
      WHEN DUP_VAL_ON_INDEX
10562
      THEN
10563
         raise_application_error (-20000,
10564
                                 'Cannot have duplicate machines.'
10565
                                 );
10566
   END;
6031 dpurdie 10567
 
4553 dpurdie 10568
/*-------------------------------------------------------------------------------------------------------*/
10569
PROCEDURE import_daemons ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER  ) IS
10570
 
10571
   sSourceLocation VARCHAR2(4000);
10572
   sTargetLocation VARCHAR2(4000);
10573
   ProjId NUMBER;
6999 dpurdie 10574
   nIsOpen NUMBER;
4553 dpurdie 10575
   RconId NUMBER;
6999 dpurdie 10576
   bHasDaemons BOOLEAN := FALSE;
4553 dpurdie 10577
 
6999 dpurdie 10578
 
4553 dpurdie 10579
   -- this cursor gets the source release daemon configurations, ensuring that the
10580
   -- first record will be the master daemon, and subsequent records will be the slaves.
10581
   CURSOR curSrcReleaseConfigs IS
10582
    SELECT daemon_hostname, gbe_id, gbe_buildfilter, bmcon_id, daemon_mode
10583
     FROM RELEASE_CONFIG rc
10584
    WHERE rc.RTAG_ID = nSourceRtagId
10585
    ORDER BY rc.daemon_mode;
10586
    recSrcReleaseConfigs curSrcReleaseConfigs%ROWTYPE;
10587
 
10588
    -- this cursor looks for target release daemons
10589
   CURSOR curTgtReleaseConfigs IS
10590
    SELECT rcon_id
10591
     FROM RELEASE_CONFIG rc
10592
    WHERE rc.RTAG_ID = nTargetRtagId;
10593
    recTgtReleaseConfigs curTgtReleaseConfigs%ROWTYPE;
10594
 
10595
BEGIN
10596
   /*--------------- Business Rules Here -------------------*/
10597
   IF (nSourceRtagId IS NULL) OR (nTargetRtagId IS NULL)
10598
   THEN
10599
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nSourceRtagId= '|| nSourceRtagId ||', nTargetRtagId='|| nTargetRtagId );
10600
   END IF;
10601
 
10602
   IF (nSourceRtagId = nTargetRtagId) THEN
10603
      RAISE_APPLICATION_ERROR (-20000, 'Cannot import release contents from same release.' );
10604
   END IF;
10605
 
10606
   -- Check if Target release is in OPEN mode
6999 dpurdie 10607
  SELECT count(*)  INTO  nIsOpen
10608
    FROM RELEASE_TAGS rt
10609
    WHERE rt.RTAG_ID = nTargetRtagId
10610
    AND rt.OFFICIAL in ('N', 'R', 'C');
4553 dpurdie 10611
 
6999 dpurdie 10612
  IF (nIsOpen > 1) THEN
10613
    RAISE_APPLICATION_ERROR (-20000, 'Release must be in OPEN mode to import the daemons.' );
10614
  END IF;
4553 dpurdie 10615
 
6999 dpurdie 10616
   -- check that the target does not have daemons configured
4553 dpurdie 10617
   OPEN curTgtReleaseConfigs;
10618
   FETCH curtgtReleaseConfigs INTO recTgtReleaseConfigs;
6999 dpurdie 10619
   bHasDaemons := curTgtReleaseConfigs%FOUND;
4553 dpurdie 10620
   CLOSE curTgtReleaseConfigs;
6999 dpurdie 10621
 
10622
  IF bHasDaemons THEN
10623
    RAISE_APPLICATION_ERROR (-20000, 'Release must not have daemons configured' );
10624
  END IF;
4553 dpurdie 10625
 
10626
   /*-------------------------------------------------------*/
10627
 
10628
   --Import Release Configuration Information
10629
   OPEN curSrcReleaseConfigs;
10630
   FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
10631
 
6999 dpurdie 10632
   WHILE curSrcReleaseConfigs%FOUND
4553 dpurdie 10633
   LOOP
10634
      -- add a daemon to the target release
6031 dpurdie 10635
      PK_BUILDAPI.duplicate_daemon_config( nTargetRtagId,
10636
                                     recSrcReleaseConfigs.bmcon_id,
10637
                                     recSrcReleaseConfigs.daemon_hostname,
10638
                                     recSrcReleaseConfigs.gbe_id,
4553 dpurdie 10639
                                     recSrcReleaseConfigs.daemon_mode ,
10640
                                     recSrcReleaseConfigs.gbe_buildfilter );
10641
 
10642
      FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
10643
   END LOOP;
10644
   CLOSE curSrcReleaseConfigs;
10645
 
6031 dpurdie 10646
 
4553 dpurdie 10647
   /* Log Project Action */
10648
   -- Get Source Location
10649
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sSourceLocation
10650
     FROM RELEASE_TAGS rt,
10651
           PROJECTS pr
10652
    WHERE rt.PROJ_ID = pr.PROJ_ID
10653
      AND rt.RTAG_ID = nSourceRtagId;
10654
 
10655
   -- Get Target Location
10656
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sTargetLocation
10657
     FROM RELEASE_TAGS rt,
10658
           PROJECTS pr
10659
    WHERE rt.PROJ_ID = pr.PROJ_ID
10660
      AND rt.RTAG_ID = nTargetRtagId;
10661
 
10662
   -- Get project id
10663
   SELECT rt.PROJ_ID  INTO  ProjId
10664
     FROM RELEASE_TAGS rt
10665
    WHERE rt.RTAG_ID = nTargetRtagId;
10666
 
10667
   Log_Project_Action ( ProjId, 'import_daemon_configuration', nUserId, 'SOURCE: '|| sSourceLocation ||'   TARGET: '|| sTargetLocation, nTargetRtagId );
10668
END;
10669
 
5892 dpurdie 10670
/*-------------------------------------------------------------------------------------------------------*/
10671
PROCEDURE set_build_plan (rtagId IN NUMBER, nStartIndex IN NUMBER, pvList IN VARCHAR2)
10672
   IS
10673
    nPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
10674
    SeqNum NUMBER;
6031 dpurdie 10675
 
5892 dpurdie 10676
   BEGIN
6031 dpurdie 10677
 
5892 dpurdie 10678
   -- Remove all the old entries, on first usage
10679
   IF nStartIndex = 0 then
10680
    DELETE BUILD_PLAN WHERE RTAG_ID = rtagId;
10681
    SeqNum := 0;
10682
   ELSE
10683
    SELECT COUNT(*) into SeqNum from BUILD_PLAN WHERE RTAG_ID = rtagId;
10684
   END IF;
6031 dpurdie 10685
 
5892 dpurdie 10686
   -- Set start sequence number
10687
   nPvIdCollector := IN_LIST_NUMBER ( pvList );
10688
 
10689
   FOR i IN 1..nPvIdCollector.COUNT
10690
   LOOP
10691
      -- Update build plan with order
10692
      INSERT INTO BUILD_PLAN (RTAG_ID, BUILD_ORDER, PV_ID) VALUES (rtagId, SeqNum, nPvIdCollector(i));
10693
      SeqNum := SeqNum + 1;
10694
 
10695
   END LOOP;
10696
END;
10697
 
1373 dpurdie 10698
END pk_buildapi;
4040 dpurdie 10699
 
6999 dpurdie 10700
/
4040 dpurdie 10701
--------------------------------------------------------
10702
--  DDL for Package Body PK_ENVIRONMENT
10703
--------------------------------------------------------
10704
 
5172 dpurdie 10705
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_ENVIRONMENT" 
1373 dpurdie 10706
IS
10707
 
10708
   /*-------------------------------------------------------------------------------------------------------*/
10709
   FUNCTION select_environment_area (cdlock IN package_versions.dlocked%TYPE)
10710
     RETURN NUMBER
10711
   IS
10712
   BEGIN
10713
      /*
10714
     || N - unlocked
10715
     || Y - release and locked
10716
     || P - penging approval
10717
     || A - approved package ready for auto-build
10718
     */
10719
     IF cdlock = 'N' OR cdlock = 'R'
10720
     THEN
10721
       -- WORK IN PROGRESS --
10722
       RETURN 0;
10723
     ELSIF cdlock = 'P' OR cdlock = 'A'
10724
     THEN
10725
       -- PENDING --
10726
       RETURN 1;
10727
     ELSIF cdlock = 'Y'
10728
     THEN
10729
       -- RELEASED --
10730
       RETURN 2;
10731
     ELSE
10732
       -- NOT FOUND --
10733
       raise_application_error
10734
                   (-20000,
10735
                      'Cannot decide where to place package. [cDlock='
10736
                    || cdlock
10737
                    || ']'
10738
                   );
10739
     END IF;
10740
   END;
10741
 
10742
/*-------------------------------------------------------------------------------------------------------*/
10743
   FUNCTION get_package_area (pvid IN NUMBER, rtagid IN NUMBER)
10744
     RETURN NUMBER
10745
   IS
10746
     envtab   NUMBER         := -1;
10747
 
10748
     CURSOR curarea
10749
     IS
10750
       SELECT 2 AS envtab
10751
         FROM release_content rc
10752
        WHERE rc.rtag_id = rtagid AND rc.pv_id = pvid
10753
       UNION
10754
       SELECT 0 AS envtab
10755
         FROM work_in_progress wip
10756
        WHERE wip.rtag_id = rtagid AND wip.pv_id = pvid
10757
       UNION
10758
       SELECT 1 AS envtab
10759
         FROM planned pl
10760
        WHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;
10761
 
10762
     recarea   curarea%ROWTYPE;
10763
   BEGIN
10764
     OPEN curarea;
10765
 
10766
     FETCH curarea
10767
      INTO recarea;
10768
 
10769
     IF curarea%FOUND
10770
     THEN
10771
       envtab := recarea.envtab;
10772
     END IF;
10773
 
10774
     CLOSE curarea;
10775
 
10776
     RETURN envtab;
10777
   END;
10778
 
10779
/*-------------------------------------------------------------------------------------------------------*/
10780
   FUNCTION get_view_location (pvid IN NUMBER, rtagid IN NUMBER)
10781
     RETURN NUMBER
10782
   IS
10783
     ispatch   package_versions.dlocked%TYPE;
10784
     viewid   NUMBER                    := -1;
10785
 
10786
     CURSOR curview
10787
     IS
10788
       SELECT rc.base_view_id AS view_id
10789
         FROM release_content rc
10790
        WHERE rc.rtag_id = rtagid AND rc.pv_id = pvid
10791
       UNION
10792
       SELECT wip.view_id AS view_id
10793
         FROM work_in_progress wip
10794
        WHERE wip.rtag_id = rtagid AND wip.pv_id = pvid
10795
       UNION
10796
       SELECT pl.view_id AS view_id
10797
         FROM planned pl
10798
        WHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;
10799
 
10800
     recview   curview%ROWTYPE;
10801
   BEGIN
10802
     -- Get dlock state
10803
     SELECT pv.is_patch
10804
      INTO ispatch
10805
      FROM package_versions pv
10806
      WHERE pv.pv_id = pvid;
10807
 
10808
     -- Decide which view id should package go under.
10809
     IF (ispatch != 'Y') OR (ispatch IS NULL)
10810
     THEN
10811
       -- Get VIEW ID of Package
10812
       OPEN curview;
10813
 
10814
       FETCH curview
10815
        INTO recview;
10816
 
10817
       IF curview%FOUND
10818
       THEN
10819
         viewid := recview.view_id;
10820
       ELSE
10821
         raise_application_error
10822
            (-20000,
10823
               'Cannot find view_id to proceed. [PvId='
10824
            || pvid
10825
            || ']. The current version may not exist in the release anymore.'
10826
            );
10827
       END IF;
10828
 
10829
       CLOSE curview;
10830
     ELSE
10831
       -- Get VIEW ID of Patch (view id of parent package)
10832
       SELECT rc.base_view_id
10833
         INTO viewid
10834
         FROM release_content rc, package_patches ppv
10835
        WHERE rc.rtag_id = rtagid
10836
         AND rc.pv_id = ppv.pv_id
10837
         AND ppv.patch_id = pvid;
10838
     END IF;
10839
 
10840
     RETURN viewid;
10841
   END;
10842
 
10843
/*-------------------------------------------------------------------------------------------------------*/
5384 dpurdie 10844
--  Add a package to the specified release
10845
--  Default imode: Will determine the tab ( WIP, PENDING, RELEASE ) to add the package
10846
--  Otherwise will Add the package to the PENDING set
10847
--
1373 dpurdie 10848
   PROCEDURE add_package (
10849
     pvid    IN   NUMBER,
5384 dpurdie 10850
     viewid  IN   NUMBER,
10851
     rtagid  IN   NUMBER,
10852
     userid  IN   NUMBER,
10853
     imode   IN   CHAR default NULL
1373 dpurdie 10854
   )
10855
   IS
10856
     dlocked   package_versions.dlocked%TYPE;
10857
     envtab   NUMBER;
5384 dpurdie 10858
     pendOpr CHAR := 'R';
1373 dpurdie 10859
   BEGIN
10860
     IF can_edit_pkg_in_project (pvid, rtagid) = 1
10861
     THEN
5384 dpurdie 10862
       IF iMode IS NULL THEN
10863
         -- Determine the tab to use based on the package lock state
10864
         -- Get dlock state
10865
         SELECT pv.dlocked
10866
           INTO dlocked
10867
           FROM package_versions pv
10868
          WHERE pv.pv_id = pvid;
6031 dpurdie 10869
 
5384 dpurdie 10870
         -- Get which area should go under
10871
         envtab := select_environment_area (dlocked);
10872
       ELSE
10873
        -- Assume that the package is to be added to Pending
10874
        envtab := 1;
10875
        pendOpr := 'A';
10876
       END IF;
6999 dpurdie 10877
       -- Log
10878
       --log_action (pvid, 'action', userid, 'Start of Package Add...');
1373 dpurdie 10879
 
5384 dpurdie 10880
       -- Add Package
1373 dpurdie 10881
       IF envtab = 0
10882
       THEN
10883
         -- WORK IN PROGRESS --
10884
         pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
10885
       ELSIF envtab = 1
10886
       THEN
10887
         -- PENDING --
5384 dpurdie 10888
         pk_planned.add_package (pvid, viewid, rtagid, userid, pendOpr);
1373 dpurdie 10889
       ELSIF envtab = 2
10890
       THEN
10891
         -- RELEASED --
10892
         -- NOTE: this package will be replaced with matching package
10893
         pk_release.add_package (pvid, viewid, rtagid, userid);
10894
         -- Now do post Release Actions
10895
         pk_release.run_post_actions (pvid, rtagid);
10896
       END IF;
6999 dpurdie 10897
 
10898
       -- Log
10899
       --log_action (pvid, 'action', userid, 'End of Package Add...');
1373 dpurdie 10900
     END IF;
10901
   END;
10902
 
10903
/*-------------------------------------------------------------------------------------------------------*/
10904
   PROCEDURE add_package_bulk (
10905
     pvidlist   IN   VARCHAR2,
10906
     viewid    IN   NUMBER,
10907
     rtagid    IN   NUMBER,
5384 dpurdie 10908
     userid    IN   NUMBER,
10909
     imode     IN   CHAR DEFAULT NULL
1373 dpurdie 10910
   )
10911
   IS
5384 dpurdie 10912
     nidcollector relmgr_number_tab_t         := relmgr_number_tab_t();
1373 dpurdie 10913
     dlocked      package_versions.dlocked%TYPE;
10914
     pvid         NUMBER;
10915
     envtab       NUMBER;
10916
   BEGIN
10917
     /*--------------- Business Rules Here -------------------*/
10918
     IF (pvidlist IS NULL)
10919
     THEN
10920
       raise_application_error (-20000,
10921
                          'Please select at least one package.'
10922
                         );
10923
     END IF;
10924
 
10925
/*-------------------------------------------------------*/
10926
     nidcollector := in_list_number (pvidlist);
10927
 
10928
     FOR i IN 1 .. nidcollector.COUNT
10929
     LOOP
10930
       pvid := nidcollector (i);
5384 dpurdie 10931
       add_package (pvid, viewid, rtagid, userid, imode);
1373 dpurdie 10932
     END LOOP;
10933
   END;
10934
 
10935
/*-------------------------------------------------------------------------------------------------------*/
10936
   PROCEDURE replace_package (
10937
     newpvid  IN   NUMBER,
10938
     oldpvid  IN   NUMBER,
10939
     rtagid   IN   NUMBER,
10940
     userid   IN   NUMBER
10941
   )
10942
   IS
10943
     dlocked      package_versions.dlocked%TYPE;
10944
     viewid       NUMBER;
10945
     envtab       NUMBER;
10946
     ROWCOUNT     NUMBER;
10947
     creleasemode CHAR (1);
10948
     npkgid       NUMBER;
10949
   BEGIN
10950
     /*--------------- Business Rules Here -------------------*/
10951
     -- Check if oldPvId exists. It could have been removed
10952
     SELECT COUNT (pv.pv_id)
10953
       INTO ROWCOUNT
10954
       FROM package_versions pv
10955
      WHERE pv.pv_id = oldpvid;
10956
 
10957
/*-------------------------------------------------------*/
10958
 
10959
     /* This procedure is usually used by "History" option in Release Manager */
10960
 
10961
     -- Get dlock state
10962
     SELECT pv.dlocked
10963
       INTO dlocked
10964
       FROM package_versions pv
10965
      WHERE pv.pv_id = newpvid;
10966
 
10967
     -- Get VIEW_ID ---
10968
     IF ROWCOUNT = 1
10969
     THEN
10970
       viewid := get_view_location (oldpvid, rtagid);
10971
     ELSE
10972
       -- Set ViewID to default
10973
       viewid := 7;
10974
     END IF;
10975
 
10976
     -- Get which area should go under
10977
     envtab := select_environment_area (dlocked);
6999 dpurdie 10978
     -- Log
10979
     --log_action (oldpvid, 'action', userid, 'Start of Package Replace...');
1373 dpurdie 10980
 
10981
     -- Replace package
10982
     IF envtab = 0
10983
     THEN
10984
       -- WORK IN PROGRESS --
10985
 
10986
       -- Delete old package
10987
       pk_work_in_progress.remove_package (oldpvid, rtagid, userid);
10988
 
10989
       -- Add new package
10990
       pk_work_in_progress.add_package (newpvid, viewid, rtagid, userid);
10991
     ELSIF envtab = 1
10992
     THEN
10993
       -- PENDING --
10994
 
10995
       -- Delete old package
10996
       pk_planned.remove_package (oldpvid, rtagid, userid);
10997
 
10998
       -- Add new package
10999
       pk_planned.add_package (newpvid, viewid, rtagid, userid);
11000
     ELSIF envtab = 2
11001
     THEN
11002
       -- RELEASED --
6031 dpurdie 11003
 
5172 dpurdie 11004
       -- Replace Package
11005
       pk_release.replace_package(newpvid, oldpvid, rtagid, userid);
6031 dpurdie 11006
 
1373 dpurdie 11007
       -- Now do post Release Actions
11008
       pk_release.run_post_actions (newpvid, rtagid);
11009
     END IF;
11010
 
6999 dpurdie 11011
     -- Log
11012
     --log_action (oldpvid, 'action', userid, 'End of Package Replace...');
1373 dpurdie 11013
   END;
11014
 
11015
/*-------------------------------------------------------------------------------------------------------*/
11016
   FUNCTION remove_package (
11017
     pvid        IN   NUMBER,
11018
     rtagid      IN   NUMBER,
11019
     userid      IN   NUMBER,
11020
     forceremove IN   CHAR
11021
   )
11022
     RETURN NUMBER
11023
   IS
11024
     envtab      NUMBER;
11025
     isused      BOOLEAN;
11026
     recordcount   NUMBER;
11027
   BEGIN
11028
/*--------------- Business Rules Here -------------------*/
11029
/*-------------------------------------------------------*/
11030
 
11031
     -- Find location of package
11032
     envtab := get_package_area (pvid, rtagid);
11033
 
11034
     -- Remove Package
11035
     IF envtab = 0
11036
     THEN
11037
       -- WORK IN PROGRESS --
11038
       -- Delete package
11039
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
11040
 
11041
       RETURN 0;
11042
     ELSIF envtab = 1
11043
     THEN
11044
       -- PENDING --
11045
       -- Delete package
11046
       pk_planned.remove_package (pvid, rtagid, userid);
11047
 
11048
       RETURN 0;
11049
     ELSIF envtab = 2
11050
     THEN
11051
       -- RELEASED --
11052
 
11053
       -- Check if is used by other packages
11054
       isused := TRUE;
11055
 
11056
       IF forceremove = 'N'
11057
       THEN
6031 dpurdie 11058
          select count(dpv.PKG_ID) INTO recordcount from
5172 dpurdie 11059
          (SELECT  rc.pv_id
11060
          FROM RELEASE_CONTENT rc, PEGGED_VERSIONS peg
11061
            WHERE rc.rtag_id = rtagid
11062
            AND peg.RTAG_ID(+) = rc.RTAG_ID
11063
            AND peg.PV_ID(+) = rc.PV_ID
11064
            AND peg.rtag_id is null
11065
            AND rc.SDKTAG_ID is null
11066
            ) arc,
11067
          PACKAGE_DEPENDENCIES dep,
11068
          PACKAGE_VERSIONS pv,
11069
          PACKAGE_VERSIONS dpv,
11070
          PACKAGE_VERSIONS bpv
11071
          where dep.PV_ID = arc.pv_id
11072
          AND dep.pv_id = pv.pv_id
11073
          AND dep.dpv_id = dpv.PV_ID
11074
          AND dpv.PKG_ID = bpv.PKG_ID
11075
          AND NVL(dpv.V_EXT, '.NULL') = NVL(bpv.V_EXT, '.NULL')
11076
          AND bpv.pv_id = pvid;
1373 dpurdie 11077
 
11078
         IF recordcount > 0
11079
         THEN
11080
            RETURN 1;               -- Return 1 as package being used
11081
         ELSE
11082
            isused := FALSE;
11083
         END IF;
11084
       END IF;
11085
 
11086
       IF forceremove = 'Y' OR NOT isused
11087
       THEN
11088
         -- Delete old package
11089
         pk_release.remove_package (pvid, rtagid, userid);
11090
 
11091
         -- Delete old package's pegging info
11092
         DELETE FROM PEGGED_VERSIONS pegv WHERE pegv.RTAG_ID = rtagid AND pegv.PV_ID = pvid;
11093
 
11094
         -- Delete old package's advisory ripple info
11095
         DELETE FROM ADVISORY_RIPPLE avr WHERE avr.RTAG_ID = rtagid AND avr.PV_ID = pvid;
11096
 
11097
         -- Now do post Release Actions
11098
         pk_release.run_post_actions (pvid, rtagid);
11099
         RETURN 0;
11100
       END IF;
11101
     END IF;
11102
   END;
11103
 
11104
/*-------------------------------------------------------------------------------------------------------*/
11105
   -- DEVI-45275 added the return of the new "operation" column in the recordset.
11106
 
11107
   PROCEDURE get_environment_items (
11108
     viewtype         IN      NUMBER,
11109
     userid           IN      NUMBER,
11110
     rtagid           IN      NUMBER,
11111
     sviewidshowlist  IN      VARCHAR2,
11112
     ntruerecordcount OUT     NUMBER,
11113
     recordset        OUT     typecur
11114
   )
11115
   IS
11116
   BEGIN
11117
     -- Get true record count because views can give false count
11118
     SELECT COUNT (pl.pv_id)
11119
      INTO ntruerecordcount
11120
      FROM environment_view pl
11121
      WHERE pl.rtag_id = rtagid;
11122
 
11123
     IF viewtype = 1
11124
     THEN
11125
       /*--- GUEST VIEW ---*/
11126
       OPEN recordset FOR
11127
         SELECT   *
11128
            FROM (
11129
                 /* Base Views collapsed */
11130
                 SELECT DISTINCT vi.view_id, vi.view_name,
11131
                             TO_NUMBER (NULL) AS pkg_state,
11132
                             TO_NUMBER (NULL) AS deprecated_state,
11133
                             TO_NUMBER (NULL) AS pv_id,
11134
                             NULL AS pkg_name, NULL AS pkg_version,
11135
                             NULL AS dlocked, NULL AS pv_description,
11136
                             rel.operation
11137
                         FROM environment_view rel, views vi
11138
                        WHERE rel.view_id = vi.view_id
11139
                          AND rtag_id = rtagid
11140
                          AND rel.view_id NOT IN (
11141
                               SELECT *
11142
                                 FROM THE
11143
                                       (SELECT CAST
11144
                                               (in_list_number
11145
                                                  (sviewidshowlist
11146
                                                  ) AS relmgr_number_tab_t
11147
                                               )
11148
                                         FROM DUAL
11149
                                       ))
11150
                 UNION
11151
                 /* Base Views expanded */
11152
                 SELECT vi.view_id, vi.view_name,
11153
                      DECODE (rel.pkg_state,
11154
                            NULL, 0,
11155
                            rel.pkg_state
11156
                           ) AS pkg_state,
11157
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
11158
                      pv.pkg_version, pv.dlocked, pv.pv_description,
11159
                      rel.operation
11160
                  FROM environment_view rel,
11161
                      PACKAGES pkg,
11162
                      package_versions pv,
11163
                      views vi
11164
                  WHERE pv.pkg_id = pkg.pkg_id
11165
                   AND rel.pv_id = pv.pv_id
11166
                   AND rel.view_id = vi.view_id
11167
                   AND rel.view_id IN (
11168
                        SELECT *
11169
                          FROM THE
11170
                                (SELECT CAST
11171
                                        (in_list_number
11172
                                               (sviewidshowlist) AS relmgr_number_tab_t
11173
                                        )
11174
                                  FROM DUAL
11175
                                ))
11176
                   AND rtag_id = rtagid) ord
11177
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
11178
     ELSIF viewtype = 2
11179
     THEN
11180
       /*--- PERSONAL VIEW ---*/
11181
       OPEN recordset FOR
11182
         SELECT   *
11183
            FROM (
11184
                 /* Base Views collapsed */
11185
                 SELECT DISTINCT vi.view_id, vi.view_name,
11186
                             TO_NUMBER (NULL) AS pkg_state,
11187
                             TO_NUMBER (NULL) AS deprecated_state,
11188
                             TO_NUMBER (NULL) AS pv_id,
11189
                             NULL AS pkg_name, NULL AS pkg_version,
11190
                             NULL AS dlocked, NULL AS pv_description,
11191
                             rel.operation
11192
                         FROM environment_view rel,
11193
                             view_settings vs,
11194
                             views vi
11195
                        WHERE rel.view_id = vi.view_id
11196
                          AND vs.view_id = rel.view_id
11197
                          AND vs.user_id = userid
11198
                          AND rtag_id = rtagid
11199
                          AND rel.view_id NOT IN (
11200
                               SELECT *
11201
                                 FROM THE
11202
                                       (SELECT CAST
11203
                                               (in_list_number
11204
                                                  (sviewidshowlist
11205
                                                  ) AS relmgr_number_tab_t
11206
                                               )
11207
                                         FROM DUAL
11208
                                       ))
11209
                 UNION
11210
                 /* Base Views expanded */
11211
                 SELECT vi.view_id, vi.view_name,
11212
                      DECODE (rel.pkg_state,
11213
                            NULL, 0,
11214
                            rel.pkg_state
11215
                           ) AS pkg_state,
11216
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
11217
                      pv.pkg_version, pv.dlocked, pv.pv_description,
11218
                      rel.operation
11219
                  FROM environment_view rel,
11220
                      PACKAGES pkg,
11221
                      package_versions pv,
11222
                      views vi,
11223
                      view_settings vs
11224
                  WHERE pv.pkg_id = pkg.pkg_id
11225
                   AND rel.pv_id = pv.pv_id
11226
                   AND rel.view_id = vi.view_id
11227
                   AND vs.view_id = vi.view_id
11228
                   AND vs.user_id = userid
11229
                   AND rel.view_id IN (
11230
                        SELECT *
11231
                          FROM THE
11232
                                (SELECT CAST
11233
                                        (in_list_number
11234
                                               (sviewidshowlist) AS relmgr_number_tab_t
11235
                                        )
11236
                                  FROM DUAL
11237
                                ))
11238
                   AND rtag_id = rtagid
11239
                 UNION
11240
                 /* Private Views collapsed */
11241
                 SELECT vi.view_id, vi.view_name,
11242
                      TO_NUMBER (NULL) AS pkg_state,
11243
                      TO_NUMBER (NULL) AS deprecated_state,
11244
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
11245
                      NULL AS pkg_version, NULL AS dlocked,
11246
                      NULL AS pv_description,
11247
                      rel.operation
11248
                  FROM view_settings vs,
11249
                      view_def vd,
11250
                      views vi,
11251
                      environment_view rel,
11252
                      package_versions pv
11253
                  WHERE vs.view_id = vi.view_id
11254
                   AND rel.pv_id = pv.pv_id
11255
                   AND vd.pkg_id = pv.pkg_id
11256
                   AND vd.view_id = vi.view_id
11257
                   AND vi.base_view = 'N'
11258
                   AND rel.rtag_id = rtagid
11259
                   AND vs.user_id = userid
11260
                   AND vi.view_id NOT IN (
11261
                        SELECT *
11262
                          FROM THE
11263
                                (SELECT CAST
11264
                                        (in_list_number
11265
                                               (sviewidshowlist) AS relmgr_number_tab_t
11266
                                        )
11267
                                  FROM DUAL
11268
                                ))
11269
                 UNION
11270
                 /* Private Views expanded */
11271
                 SELECT vi.view_id, vi.view_name,
11272
                      DECODE (rel.pkg_state,
11273
                            NULL, 0,
11274
                            rel.pkg_state
11275
                           ) AS pkg_state,
11276
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
11277
                      pv.pkg_version, pv.dlocked, pv.pv_description,
11278
                      rel.operation
11279
                  FROM users usr,
11280
                      view_settings vs,
11281
                      view_def vd,
11282
                      views vi,
11283
                      environment_view rel,
11284
                      PACKAGES pkg,
11285
                      package_versions pv
11286
                  WHERE vs.user_id = usr.user_id
11287
                   AND vs.view_id = vi.view_id
11288
                   AND vd.view_id = vi.view_id
11289
                   AND pv.pkg_id = pkg.pkg_id
11290
                   AND rel.pv_id = pv.pv_id
11291
                   AND rel.rtag_id = rtagid
11292
                   AND vd.pkg_id = pkg.pkg_id
11293
                   AND vi.base_view = 'N'
11294
                   AND vi.view_id IN (
11295
                        SELECT *
11296
                          FROM THE
11297
                                (SELECT CAST
11298
                                        (in_list_number
11299
                                               (sviewidshowlist) AS relmgr_number_tab_t
11300
                                        )
11301
                                  FROM DUAL
11302
                                ))
11303
                   AND usr.user_id = userid) ord
11304
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
11305
     END IF;
11306
   END;
11307
 
11308
/*-------------------------------------------------------------------------------------------------------*/
11309
   PROCEDURE get_released_items (
11310
     viewtype         IN      NUMBER,
11311
     userid           IN      NUMBER,
11312
     rtagid           IN      NUMBER,
11313
     sviewidshowlist  IN      VARCHAR2,
11314
     ntruerecordcount OUT     NUMBER,
11315
     recordset        OUT     typecur
11316
   )
11317
   IS
11318
   BEGIN
11319
     -- Get true record count because views can give false count
11320
     SELECT COUNT (rc.pv_id)
11321
      INTO ntruerecordcount
11322
      FROM release_content rc
11323
      WHERE rc.rtag_id = rtagid;
11324
 
11325
     IF viewtype = 1
11326
     THEN
11327
       /*--- GUEST VIEW ---*/
11328
       OPEN recordset FOR
11329
         SELECT   *
11330
            FROM (
11331
                 /* Base Views collapsed */
11332
                 SELECT DISTINCT vi.view_id, vi.view_name,
11333
                             TO_NUMBER (NULL) AS pkg_state,
11334
                             TO_NUMBER (NULL) AS deprecated_state,
11335
                             TO_NUMBER (NULL) AS pv_id,
11336
                             NULL AS pkg_name, NULL AS pkg_version,
11337
                             NULL AS dlocked, NULL AS pv_description
11338
                         FROM release_content rel, views vi
11339
                        WHERE rel.base_view_id = vi.view_id
11340
                          AND rtag_id = rtagid
11341
                          AND rel.base_view_id NOT IN (
11342
                               SELECT *
11343
                                 FROM THE
11344
                                       (SELECT CAST
11345
                                               (in_list_number
11346
                                                  (sviewidshowlist
11347
                                                  ) AS relmgr_number_tab_t
11348
                                               )
11349
                                         FROM DUAL
11350
                                       ))
11351
                 UNION
11352
                 /* Base Views expanded */
11353
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
11354
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
11355
                      pv.pkg_version, pv.dlocked, pv.pv_description
11356
                  FROM release_content rel,
11357
                      PACKAGES pkg,
11358
                      package_versions pv,
11359
                      views vi
11360
                  WHERE pv.pkg_id = pkg.pkg_id
11361
                   AND rel.pv_id = pv.pv_id
11362
                   AND rel.base_view_id = vi.view_id
11363
                   AND rel.base_view_id IN (
11364
                        SELECT *
11365
                          FROM THE
11366
                                (SELECT CAST
11367
                                        (in_list_number
11368
                                               (sviewidshowlist) AS relmgr_number_tab_t
11369
                                        )
11370
                                  FROM DUAL
11371
                                ))
11372
                   AND rtag_id = rtagid) ord
11373
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
11374
     ELSIF viewtype = 2
11375
     THEN
11376
       /*--- PERSONAL VIEW ---*/
11377
       OPEN recordset FOR
11378
         SELECT   *
11379
            FROM (
11380
                 /* Base Views collapsed */
11381
                 SELECT DISTINCT vi.view_id, vi.view_name,
11382
                             TO_NUMBER (NULL) AS pkg_state,
11383
                             TO_NUMBER (NULL) AS deprecated_state,
11384
                             TO_NUMBER (NULL) AS pv_id,
11385
                             NULL AS pkg_name, NULL AS pkg_version,
11386
                             NULL AS dlocked, NULL AS pv_description
11387
                         FROM release_content rel,
11388
                             view_settings vs,
11389
                             views vi
11390
                        WHERE rel.base_view_id = vi.view_id
11391
                          AND vs.view_id = rel.base_view_id
11392
                          AND vs.user_id = userid
11393
                          AND rtag_id = rtagid
11394
                          AND rel.base_view_id NOT IN (
11395
                               SELECT *
11396
                                 FROM THE
11397
                                       (SELECT CAST
11398
                                               (in_list_number
11399
                                                  (sviewidshowlist
11400
                                                  ) AS relmgr_number_tab_t
11401
                                               )
11402
                                         FROM DUAL
11403
                                       ))
11404
                 UNION
11405
                 /* Base Views expanded */
11406
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
11407
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
11408
                      pv.pkg_version, pv.dlocked, pv.pv_description
11409
                  FROM release_content rel,
11410
                      PACKAGES pkg,
11411
                      package_versions pv,
11412
                      views vi,
11413
                      view_settings vs
11414
                  WHERE pv.pkg_id = pkg.pkg_id
11415
                   AND rel.pv_id = pv.pv_id
11416
                   AND rel.base_view_id = vi.view_id
11417
                   AND vs.view_id = vi.view_id
11418
                   AND vs.user_id = userid
11419
                   AND rel.base_view_id IN (
11420
                        SELECT *
11421
                          FROM THE
11422
                                (SELECT CAST
11423
                                        (in_list_number
11424
                                               (sviewidshowlist) AS relmgr_number_tab_t
11425
                                        )
11426
                                  FROM DUAL
11427
                                ))
11428
                   AND rtag_id = rtagid
11429
                 UNION
11430
                 /* Private Views collapsed */
11431
                 SELECT vi.view_id, vi.view_name,
11432
                      TO_NUMBER (NULL) AS pkg_state,
11433
                      TO_NUMBER (NULL) AS deprecated_state,
11434
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
11435
                      NULL AS pkg_version, NULL AS dlocked,
11436
                      NULL AS pv_description
11437
                  FROM view_settings vs,
11438
                      view_def vd,
11439
                      views vi,
11440
                      release_content rel,
11441
                      package_versions pv
11442
                  WHERE vs.view_id = vi.view_id
11443
                   AND rel.pv_id = pv.pv_id
11444
                   AND vd.pkg_id = pv.pkg_id
11445
                   AND vd.view_id = vi.view_id
11446
                   AND vi.base_view = 'N'
11447
                   AND rel.rtag_id = rtagid
11448
                   AND vs.user_id = userid
11449
                   AND vi.view_id NOT IN (
11450
                        SELECT *
11451
                          FROM THE
11452
                                (SELECT CAST
11453
                                        (in_list_number
11454
                                               (sviewidshowlist) AS relmgr_number_tab_t
11455
                                        )
11456
                                  FROM DUAL
11457
                                ))
11458
                 UNION
11459
                 /* Private Views expanded */
11460
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
11461
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
11462
                      pv.pkg_version, pv.dlocked, pv.pv_description
11463
                  FROM users usr,
11464
                      view_settings vs,
11465
                      view_def vd,
11466
                      views vi,
11467
                      release_content rel,
11468
                      PACKAGES pkg,
11469
                      package_versions pv
11470
                  WHERE vs.user_id = usr.user_id
11471
                   AND vs.view_id = vi.view_id
11472
                   AND vd.view_id = vi.view_id
11473
                   AND pv.pkg_id = pkg.pkg_id
11474
                   AND rel.pv_id = pv.pv_id
11475
                   AND rel.rtag_id = rtagid
11476
                   AND vd.pkg_id = pkg.pkg_id
11477
                   AND vi.base_view = 'N'
11478
                   AND vi.view_id IN (
11479
                        SELECT *
11480
                          FROM THE
11481
                                (SELECT CAST
11482
                                        (in_list_number
11483
                                               (sviewidshowlist) AS relmgr_number_tab_t
11484
                                        )
11485
                                  FROM DUAL
11486
                                ))
11487
                   AND usr.user_id = userid) ord
11488
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
11489
     END IF;
11490
   END;
11491
 
11492
/*-------------------------------------------------------------------------------------------------------*/
11493
   PROCEDURE get_work_in_progress_items (
11494
     viewtype         IN      NUMBER,
11495
     userid           IN      NUMBER,
11496
     rtagid           IN      NUMBER,
11497
     sviewidshowlist  IN      VARCHAR2,
11498
     ntruerecordcount OUT     NUMBER,
11499
     recordset        OUT     typecur
11500
   )
11501
   IS
11502
   BEGIN
11503
     -- Get true record count because views can give false count
11504
     SELECT COUNT (wip.pv_id)
11505
      INTO ntruerecordcount
11506
      FROM work_in_progress wip
11507
      WHERE wip.rtag_id = rtagid;
11508
 
11509
     IF viewtype = 1
11510
     THEN
11511
       /*--- GUEST VIEW ---*/
11512
       OPEN recordset FOR
11513
         SELECT   *
11514
            FROM (
11515
                 /* Base Views collapsed */
11516
                 SELECT DISTINCT vi.view_id, vi.view_name,
11517
                             TO_NUMBER (NULL) AS pkg_state,
11518
                             TO_NUMBER (NULL) AS deprecated_state,
11519
                             TO_NUMBER (NULL) AS pv_id,
11520
                             NULL AS pkg_name, NULL AS pkg_version,
11521
                             NULL AS dlocked, NULL AS pv_description
11522
                         FROM work_in_progress rel, views vi
11523
                        WHERE rel.view_id = vi.view_id
11524
                          AND rtag_id = rtagid
11525
                          AND rel.view_id NOT IN (
11526
                               SELECT *
11527
                                 FROM THE
11528
                                       (SELECT CAST
11529
                                               (in_list_number
11530
                                                  (sviewidshowlist
11531
                                                  ) AS relmgr_number_tab_t
11532
                                               )
11533
                                         FROM DUAL
11534
                                       ))
11535
                 UNION
11536
                 /* Base Views expanded */
11537
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
11538
 
11539
                      --rel.pkg_state,
11540
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
11541
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
11542
                      pv.pv_description
11543
                  FROM work_in_progress rel,
11544
                      PACKAGES pkg,
11545
                      package_versions pv,
11546
                      views vi
11547
                  WHERE pv.pkg_id = pkg.pkg_id
11548
                   AND rel.pv_id = pv.pv_id
11549
                   AND rel.view_id = vi.view_id
11550
                   AND rel.view_id IN (
11551
                        SELECT *
11552
                          FROM THE
11553
                                (SELECT CAST
11554
                                        (in_list_number
11555
                                               (sviewidshowlist) AS relmgr_number_tab_t
11556
                                        )
11557
                                  FROM DUAL
11558
                                ))
11559
                   AND rtag_id = rtagid) ord
11560
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
11561
     ELSIF viewtype = 2
11562
     THEN
11563
       /*--- PERSONAL VIEW ---*/
11564
       OPEN recordset FOR
11565
         SELECT   *
11566
            FROM (
11567
                 /* Base Views collapsed */
11568
                 SELECT DISTINCT vi.view_id, vi.view_name,
11569
                             TO_NUMBER (NULL) AS pkg_state,
11570
                             TO_NUMBER (NULL) AS deprecated_state,
11571
                             TO_NUMBER (NULL) AS pv_id,
11572
                             NULL AS pkg_name, NULL AS pkg_version,
11573
                             NULL AS dlocked, NULL AS pv_description
11574
                         FROM work_in_progress rel,
11575
                             view_settings vs,
11576
                             views vi
11577
                        WHERE rel.view_id = vi.view_id
11578
                          AND vs.view_id = rel.view_id
11579
                          AND vs.user_id = userid
11580
                          AND rtag_id = rtagid
11581
                          AND rel.view_id NOT IN (
11582
                               SELECT *
11583
                                 FROM THE
11584
                                       (SELECT CAST
11585
                                               (in_list_number
11586
                                                  (sviewidshowlist
11587
                                                  ) AS relmgr_number_tab_t
11588
                                               )
11589
                                         FROM DUAL
11590
                                       ))
11591
                 UNION
11592
                 /* Base Views expanded */
11593
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
11594
 
11595
                      --rel.pkg_state,
11596
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
11597
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
11598
                      pv.pv_description
11599
                  FROM work_in_progress rel,
11600
                      PACKAGES pkg,
11601
                      package_versions pv,
11602
                      views vi,
11603
                      view_settings vs
11604
                  WHERE pv.pkg_id = pkg.pkg_id
11605
                   AND rel.pv_id = pv.pv_id
11606
                   AND rel.view_id = vi.view_id
11607
                   AND vs.view_id = vi.view_id
11608
                   AND vs.user_id = userid
11609
                   AND rel.view_id IN (
11610
                        SELECT *
11611
                          FROM THE
11612
                                (SELECT CAST
11613
                                        (in_list_number
11614
                                               (sviewidshowlist) AS relmgr_number_tab_t
11615
                                        )
11616
                                  FROM DUAL
11617
                                ))
11618
                   AND rtag_id = rtagid
11619
                 UNION
11620
                 /* Private Views collapsed */
11621
                 SELECT vi.view_id, vi.view_name,
11622
                      TO_NUMBER (NULL) AS pkg_state,
11623
                      TO_NUMBER (NULL) AS deprecated_state,
11624
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
11625
                      NULL AS pkg_version, NULL AS dlocked,
11626
                      NULL AS pv_description
11627
                  FROM view_settings vs,
11628
                      view_def vd,
11629
                      views vi,
11630
                      work_in_progress rel,
11631
                      package_versions pv
11632
                  WHERE vs.view_id = vi.view_id
11633
                   AND rel.pv_id = pv.pv_id
11634
                   AND vd.pkg_id = pv.pkg_id
11635
                   AND vd.view_id = vi.view_id
11636
                   AND vi.base_view = 'N'
11637
                   AND rel.rtag_id = rtagid
11638
                   AND vs.user_id = userid
11639
                   AND vi.view_id NOT IN (
11640
                        SELECT *
11641
                          FROM THE
11642
                                (SELECT CAST
11643
                                        (in_list_number
11644
                                               (sviewidshowlist) AS relmgr_number_tab_t
11645
                                        )
11646
                                  FROM DUAL
11647
                                ))
11648
                 UNION
11649
                 /* Private Views expanded */
11650
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
11651
 
11652
                      --rel.pkg_state,
11653
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
11654
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
11655
                      pv.pv_description
11656
                  FROM users usr,
11657
                      view_settings vs,
11658
                      view_def vd,
11659
                      views vi,
11660
                      work_in_progress rel,
11661
                      PACKAGES pkg,
11662
                      package_versions pv
11663
                  WHERE vs.user_id = usr.user_id
11664
                   AND vs.view_id = vi.view_id
11665
                   AND vd.view_id = vi.view_id
11666
                   AND pv.pkg_id = pkg.pkg_id
11667
                   AND rel.pv_id = pv.pv_id
11668
                   AND rel.rtag_id = rtagid
11669
                   AND vd.pkg_id = pkg.pkg_id
11670
                   AND vi.base_view = 'N'
11671
                   AND vi.view_id IN (
11672
                        SELECT *
11673
                          FROM THE
11674
                                (SELECT CAST
11675
                                        (in_list_number
11676
                                               (sviewidshowlist) AS relmgr_number_tab_t
11677
                                        )
11678
                                  FROM DUAL
11679
                                ))
11680
                   AND usr.user_id = userid) ord
11681
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
11682
     END IF;
11683
   END;
11684
 
11685
/*-------------------------------------------------------------------------------------------------------*/
11686
   -- DEVI-45275 added the return of the new "operation" column in the recordset.
11687
 
11688
   PROCEDURE get_pending_items (
11689
     viewtype         IN      NUMBER,
11690
     userid           IN      NUMBER,
11691
     rtagid           IN      NUMBER,
11692
     sviewidshowlist  IN      VARCHAR2,
11693
     ntruerecordcount OUT     NUMBER,
11694
     recordset        OUT     typecur
11695
   )
11696
   IS
11697
   BEGIN
11698
     -- Get true record count because views can give false count
11699
     SELECT COUNT (pl.pv_id)
11700
      INTO ntruerecordcount
11701
      FROM planned pl
11702
      WHERE pl.rtag_id = rtagid;
11703
 
11704
     IF viewtype = 1
11705
     THEN
11706
       /*--- GUEST VIEW ---*/
11707
       OPEN recordset FOR
11708
         SELECT   *
11709
            FROM (
11710
                 /* Base Views collapsed */
11711
                 SELECT DISTINCT vi.view_id, vi.view_name,
11712
                             TO_NUMBER (NULL) AS pkg_state,
11713
                             TO_NUMBER (NULL) AS deprecated_state,
11714
                             TO_NUMBER (NULL) AS pv_id,
11715
                             NULL AS pkg_name, NULL AS pkg_version,
11716
                             NULL AS dlocked, NULL AS pv_description,
11717
                             rel.operation
11718
                         FROM planned rel, views vi
11719
                        WHERE rel.view_id = vi.view_id
11720
                          AND rtag_id = rtagid
11721
                          AND rel.view_id NOT IN (
11722
                               SELECT *
11723
                                 FROM THE
11724
                                       (SELECT CAST
11725
                                               (in_list_number
11726
                                                  (sviewidshowlist
11727
                                                  ) AS relmgr_number_tab_t
11728
                                               )
11729
                                         FROM DUAL
11730
                                       ))
11731
                 UNION
11732
                 /* Base Views expanded */
11733
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
11734
 
11735
                      --rel.pkg_state,
11736
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
11737
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
11738
                      pv.pv_description,
11739
                      rel.operation
11740
                  FROM planned rel,
11741
                      PACKAGES pkg,
11742
                      package_versions pv,
11743
                      views vi
11744
                  WHERE pv.pkg_id = pkg.pkg_id
11745
                   AND rel.pv_id = pv.pv_id
11746
                   AND rel.view_id = vi.view_id
11747
                   AND rel.view_id IN (
11748
                        SELECT *
11749
                          FROM THE
11750
                                (SELECT CAST
11751
                                        (in_list_number
11752
                                               (sviewidshowlist) AS relmgr_number_tab_t
11753
                                        )
11754
                                  FROM DUAL
11755
                                ))
11756
                   AND rtag_id = rtagid) ord
11757
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
11758
     ELSIF viewtype = 2
11759
     THEN
11760
       /*--- PERSONAL VIEW ---*/
11761
       OPEN recordset FOR
11762
         SELECT   *
11763
            FROM (
11764
                 /* Base Views collapsed */
11765
                 SELECT DISTINCT vi.view_id, vi.view_name,
11766
                             TO_NUMBER (NULL) AS pkg_state,
11767
                             TO_NUMBER (NULL) AS deprecated_state,
11768
                             TO_NUMBER (NULL) AS pv_id,
11769
                             NULL AS pkg_name, NULL AS pkg_version,
11770
                             NULL AS dlocked, NULL AS pv_description,
11771
                             rel.operation
11772
                         FROM planned rel, view_settings vs, views vi
11773
                        WHERE rel.view_id = vi.view_id
11774
                          AND vs.view_id = rel.view_id
11775
                          AND vs.user_id = userid
11776
                          AND rtag_id = rtagid
11777
                          AND rel.view_id NOT IN (
11778
                               SELECT *
11779
                                 FROM THE
11780
                                       (SELECT CAST
11781
                                               (in_list_number
11782
                                                  (sviewidshowlist
11783
                                                  ) AS relmgr_number_tab_t
11784
                                               )
11785
                                         FROM DUAL
11786
                                       ))
11787
                 UNION
11788
                 /* Base Views expanded */
11789
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
11790
 
11791
                      --rel.pkg_state,
11792
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
11793
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
11794
                      pv.pv_description,
11795
                      rel.operation
11796
                  FROM planned rel,
11797
                      PACKAGES pkg,
11798
                      package_versions pv,
11799
                      views vi,
11800
                      view_settings vs
11801
                  WHERE pv.pkg_id = pkg.pkg_id
11802
                   AND rel.pv_id = pv.pv_id
11803
                   AND rel.view_id = vi.view_id
11804
                   AND vs.view_id = vi.view_id
11805
                   AND vs.user_id = userid
11806
                   AND rel.view_id IN (
11807
                        SELECT *
11808
                          FROM THE
11809
                                (SELECT CAST
11810
                                        (in_list_number
11811
                                               (sviewidshowlist) AS relmgr_number_tab_t
11812
                                        )
11813
                                  FROM DUAL
11814
                                ))
11815
                   AND rtag_id = rtagid
11816
                 UNION
11817
                 /* Private Views collapsed */
11818
                 SELECT vi.view_id, vi.view_name,
11819
                      TO_NUMBER (NULL) AS pkg_state,
11820
                      TO_NUMBER (NULL) AS deprecated_state,
11821
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
11822
                      NULL AS pkg_version, NULL AS dlocked,
11823
                      NULL AS pv_description,
11824
                      rel.operation
11825
                  FROM view_settings vs,
11826
                      view_def vd,
11827
                      views vi,
11828
                      planned rel,
11829
                      package_versions pv
11830
                  WHERE vs.view_id = vi.view_id
11831
                   AND rel.pv_id = pv.pv_id
11832
                   AND vd.pkg_id = pv.pkg_id
11833
                   AND vd.view_id = vi.view_id
11834
                   AND vi.base_view = 'N'
11835
                   AND rel.rtag_id = rtagid
11836
                   AND vs.user_id = userid
11837
                   AND vi.view_id NOT IN (
11838
                        SELECT *
11839
                          FROM THE
11840
                                (SELECT CAST
11841
                                        (in_list_number
11842
                                               (sviewidshowlist) AS relmgr_number_tab_t
11843
                                        )
11844
                                  FROM DUAL
11845
                                ))
11846
                 UNION
11847
                 /* Private Views expanded */
11848
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
11849
 
11850
                      --rel.pkg_state,
11851
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
11852
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
11853
                      pv.pv_description,
11854
                      rel.operation
11855
                  FROM users usr,
11856
                      view_settings vs,
11857
                      view_def vd,
11858
                      views vi,
11859
                      planned rel,
11860
                      PACKAGES pkg,
11861
                      package_versions pv
11862
                  WHERE vs.user_id = usr.user_id
11863
                   AND vs.view_id = vi.view_id
11864
                   AND vd.view_id = vi.view_id
11865
                   AND pv.pkg_id = pkg.pkg_id
11866
                   AND rel.pv_id = pv.pv_id
11867
                   AND rel.rtag_id = rtagid
11868
                   AND vd.pkg_id = pkg.pkg_id
11869
                   AND vi.base_view = 'N'
11870
                   AND vi.view_id IN (
11871
                        SELECT *
11872
                          FROM THE
11873
                                (SELECT CAST
11874
                                        (in_list_number
11875
                                               (sviewidshowlist) AS relmgr_number_tab_t
11876
                                        )
11877
                                  FROM DUAL
11878
                                ))
11879
                   AND usr.user_id = userid) ord
11880
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
11881
     END IF;
11882
   END;
11883
 
11884
/*-------------------------------------------------------------------------------------------------------*/
11885
   PROCEDURE get_view_content (
11886
     rtagid     IN      NUMBER,
11887
     viewid     IN      NUMBER,
11888
     recordset OUT     typecur
11889
   )
11890
   IS
11891
     isbaseview   CHAR (1);
11892
   BEGIN
11893
     -- Check if the view is BASE VIEW
11894
     SELECT vi.base_view
11895
      INTO isbaseview
11896
      FROM views vi
11897
      WHERE vi.view_id = viewid;
11898
 
5172 dpurdie 11899
     IF (IsBaseView IN ('Y', 'S'))
1373 dpurdie 11900
     THEN
11901
       -- Get Base view content
11902
       OPEN recordset FOR
11903
         SELECT   DECODE (rel.pkg_state,
11904
                      NULL, 0,
11905
                      rel.pkg_state
11906
                     ) AS pkg_state,
11907
                rel.deprecated_state, pv.pv_id, pkg.pkg_name,
11908
                pv.pkg_version, pv.dlocked, pv.pv_description,
11909
                pv.build_type,
11910
                rel.operation
11911
            FROM environment_view rel, PACKAGES pkg, package_versions pv
11912
            WHERE pv.pkg_id = pkg.pkg_id
11913
             AND rel.pv_id = pv.pv_id
11914
             AND rel.view_id = viewid
11915
             AND rel.rtag_id = rtagid
11916
         ORDER BY UPPER (pkg.pkg_name);
11917
     ELSE
11918
       -- Get non base view content
11919
       OPEN recordset FOR
11920
         SELECT   DECODE (rel.pkg_state,
11921
                      NULL, 0,
11922
                      rel.pkg_state
11923
                     ) AS pkg_state,
11924
                rel.deprecated_state, pv.pv_id, pkg.pkg_name,
11925
                pv.pkg_version, pv.dlocked, pv.pv_description,
11926
                pv.build_type,
11927
                rel.operation
11928
            FROM environment_view rel,
11929
                PACKAGES pkg,
11930
                package_versions pv,
11931
                view_def vd
11932
            WHERE pv.pkg_id = pkg.pkg_id
11933
             AND rel.pv_id = pv.pv_id
11934
             AND rel.rtag_id = rtagid
11935
             AND vd.view_id = viewid
11936
             AND vd.pkg_id = pv.pkg_id
11937
         ORDER BY UPPER (pkg.pkg_name);
11938
     END IF;
11939
   END;
11940
 
11941
/*-------------------------------------------------------------------------------------------------------*/
11942
   FUNCTION get_package_view (pvid IN NUMBER, rtagid IN NUMBER)
11943
     RETURN NUMBER
11944
   IS
11945
     envtab           NUMBER;
11946
     returnvalue      NUMBER;
11947
     return_not_found NUMBER := -1;
11948
   BEGIN
11949
     envtab := get_package_area (pvid, rtagid);
11950
 
11951
     IF envtab = 0
11952
     THEN
11953
       -- WORK IN PROGRESS --
11954
       returnvalue := pk_work_in_progress.get_package_view (pvid, rtagid);
11955
     ELSIF envtab = 1
11956
     THEN
11957
       -- PENDING --
11958
       returnvalue := pk_planned.get_package_view (pvid, rtagid);
11959
     ELSIF envtab = 2
11960
     THEN
11961
       -- RELEASED --
11962
       returnvalue := pk_release.get_package_view (pvid, rtagid);
11963
     ELSE
11964
       -- This may be a Patch not located anywhere but unlocked
11965
       returnvalue := return_not_found;
11966
     END IF;
11967
 
11968
     RETURN returnvalue;
11969
   END;
11970
 
11971
/*-------------------------------------------------------------------------------------------------------*/
5172 dpurdie 11972
  PROCEDURE make_release (
4585 dpurdie 11973
     pvid          IN   NUMBER,                         -- NEW  PKG pvid
11974
     rtagid        IN   NUMBER,                         -- Release Id
11975
     userid        IN   NUMBER                          -- User performing Release
11976
   )
1373 dpurdie 11977
   IS
11978
     viewid        NUMBER;
11979
     envtab        NUMBER;
11980
     ispatch       CHAR (1) := NULL;
11981
     buildtype     CHAR (1) := NULL;
11982
   BEGIN
11983
     -- Check if package is patch
11984
     SELECT pv.is_patch, pv.build_type
11985
      INTO ispatch, buildtype
11986
      FROM package_versions pv
11987
      WHERE pv.pv_id = pvid;
11988
 
11989
     -- Get ViewId
11990
     viewid := get_package_view (pvid, rtagid);
11991
     -- Remove from current area
11992
     envtab := pk_environment.get_package_area (pvid, rtagid);
11993
 
11994
     -- Make sure that package was in work-in-progress or pending before makeing it release
11995
     -- Exclude patches, ripple builds
11996
     IF (envtab < 0)
11997
     THEN
11998
       -- Not found in work-in-progress or pending
11999
       IF (ispatch IS NULL) AND (buildtype = 'M')
12000
       THEN
12001
         raise_application_error (-20000,
12002
                            'This package cannot be released here.'
12003
                           );
12004
       END IF;
12005
     END IF;
12006
 
6999 dpurdie 12007
     -- Log
12008
     --log_action (pvid, 'action', userid, 'Start of Make Package Release...');
12009
 
1373 dpurdie 12010
     IF envtab = 0
12011
     THEN
12012
       -- WORK IN PROGRESS --
12013
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
12014
     ELSIF envtab = 1
12015
     THEN
12016
       -- PENDING --
12017
       pk_planned.remove_package (pvid, rtagid, userid);
12018
     END IF;
12019
 
12020
     -- Change package state
4585 dpurdie 12021
     -- Set dlocked state to mark the package a 'Released and Locked'
1373 dpurdie 12022
     pk_package.change_state (pvid, 'Y', userid);
12023
 
12024
     -- Make sure it is valid BASE VIEW
12025
     IF viewid < 1
12026
     THEN
12027
       viewid := 7;                     -- This is default base view
12028
     END IF;
12029
 
12030
     IF (ispatch IS NULL)
12031
     THEN
4585 dpurdie 12032
       -- Add (Replace) package to new area
1373 dpurdie 12033
       pk_release.add_package (pvid, viewid, rtagid, userid);
12034
     END IF;
12035
 
12036
     -- Now do post Release Actions
12037
     pk_release.run_post_actions (pvid, rtagid);
12038
 
12039
     -- The release has changed and there may now be invalid rtag_id/pv_id combinations in
12040
     -- the DO_NOT_RIPPLE and ADVISORY_RIPPLE Tables so perform a clean-up operation upon them.
12041
     clean_do_not_ripple(rtagid);
12042
     clean_advisory_ripple(rtagid);
12043
 
6999 dpurdie 12044
     -- Log
12045
     --log_action (pvid, 'action', userid, 'End of Make Package Release...');
1373 dpurdie 12046
   END;
12047
 
12048
/*-------------------------------------------------------------------------------------------------------*/
4585 dpurdie 12049
  --  Release a specified package into a specified release
12050
  --
12051
  --  Similar to 'make_release', but it attempts to handle the case where a package-version
12052
  --  is being replaced with one with a different package-suffix, but it doesn't
6031 dpurdie 12053
  --  handle all the cases well.
4585 dpurdie 12054
  --
12055
  --  The current build system cannot do this automatically - yet
12056
  --
12057
  --
1373 dpurdie 12058
   PROCEDURE auto_make_release (
4585 dpurdie 12059
     pvid          IN   NUMBER,                         -- NEW  PKG pvid
12060
     rtagid        IN   NUMBER,                         -- Release Id
12061
     userid        IN   NUMBER,                         -- User performing Release
12062
     vext          IN   package_versions.v_ext%TYPE,    -- Package Extension for original pkg
12063
     ssv_ext       IN   package_versions.v_ext%TYPE,    -- Package Extension for new package
12064
     clonefrompvid IN   NUMBER                          -- PVID of Original
1373 dpurdie 12065
   )
12066
   IS
12067
     viewid        NUMBER;
12068
     envtab        NUMBER;
4585 dpurdie 12069
 
12070
     clone_removal NUMBER := 0;
12071
     clone_viewid  NUMBER := -1;
12072
     clone_envtab  NUMBER := -1;
12073
 
1373 dpurdie 12074
     ispatch       CHAR (1) := NULL;
4585 dpurdie 12075
     buildtype     CHAR (1) := NULL;
12076
 
1373 dpurdie 12077
   BEGIN
12078
     -- Check if package is patch
12079
     SELECT pv.is_patch, pv.build_type
12080
      INTO ispatch, buildtype
12081
      FROM package_versions pv
12082
      WHERE pv.pv_id = pvid;
12083
 
4585 dpurdie 12084
     --
12085
     -- Determine the viewid and environment for the new package
12086
     --
12087
     viewid := get_package_view (pvid, rtagid);
12088
     envtab := pk_environment.get_package_area (pvid, rtagid);
12089
 
12090
     --
12091
     -- If changing pkgExt, then we need to delete the orig package, not just replace it
12092
     --
12093
     IF (clonefrompvid is NOT NULL) AND (vext <> ssv_ext)
1373 dpurdie 12094
     THEN
4585 dpurdie 12095
        clone_removal := 1;
12096
        clone_viewid := get_package_view (clonefrompvid, rtagid);
12097
        clone_envtab := pk_environment.get_package_area (clonefrompvid, rtagid);
1373 dpurdie 12098
     END IF;
12099
 
4585 dpurdie 12100
     --
1373 dpurdie 12101
     -- Make sure that package was in work-in-progress or pending before makeing it release
12102
     -- Exclude patches, ripple builds
4585 dpurdie 12103
     --
1373 dpurdie 12104
     IF (envtab < 0)
12105
     THEN
12106
       -- Not found in work-in-progress or pending
12107
       IF (ispatch IS NULL) AND (buildtype = 'M')
12108
       THEN
12109
         raise_application_error (-20000,
12110
                            'This package cannot be released here.'
12111
                           );
12112
       END IF;
12113
     END IF;
12114
 
6999 dpurdie 12115
     -- Log
12116
     --log_action (pvid, 'action', userid, 'Start of Make Package Release...');
12117
 
4585 dpurdie 12118
     --
12119
     -- Remove the package from the WIP or PENDING tab
6031 dpurdie 12120
     -- Do NOT remove from the release area.
4585 dpurdie 12121
     --     This will be handled later with a process that
12122
     --     will do a 'replace' so that meta data is not lost
12123
     --
12124
    IF envtab = 0
12125
    THEN
12126
        -- WORK IN PROGRESS --
12127
        pk_work_in_progress.remove_package (pvid, rtagid, userid);
12128
    ELSIF envtab = 1
12129
    THEN
12130
        -- PENDING --
12131
        pk_planned.remove_package (pvid, rtagid, userid);
12132
    END IF;
12133
 
12134
    --
12135
    --  If we are changing the pkgExt, then fully remove the base package
12136
    --  This includes removing it from the 'release' area.
12137
    --
12138
    IF clone_removal = 1
12139
    THEN
12140
        IF clone_envtab = 0
12141
        THEN
12142
            -- WORK IN PROGRESS --
12143
            pk_work_in_progress.remove_package (clonefrompvid, rtagid, userid);
12144
        ELSIF clone_envtab = 1
12145
        THEN
12146
            -- PENDING --
12147
            pk_planned.remove_package (clonefrompvid, rtagid, userid);
12148
        ELSIF clone_envtab = 2
12149
        THEN
12150
            -- RELEASED --
12151
            pk_release.remove_package (clonefrompvid, rtagid, userid);
1373 dpurdie 12152
       END IF;
4585 dpurdie 12153
    END IF;
1373 dpurdie 12154
 
12155
     -- Change package state
4585 dpurdie 12156
     -- Set dlocked state to mark the package a 'Released and Locked'
1373 dpurdie 12157
     pk_package.change_state (pvid, 'Y', userid);
12158
 
12159
     -- Make sure it is valid BASE VIEW
4585 dpurdie 12160
     -- If its not specified, give it a default (7) view
1373 dpurdie 12161
     IF viewid < 1
12162
     THEN
4585 dpurdie 12163
        IF clone_viewid >= 0
12164
        THEN
6031 dpurdie 12165
            viewid := clone_viewid;
4585 dpurdie 12166
        ELSE
12167
            viewid := 7;
12168
        END IF;
1373 dpurdie 12169
     END IF;
12170
 
12171
     IF (ispatch IS NULL)
12172
     THEN
4585 dpurdie 12173
       -- Add (Replace) package to new area
1373 dpurdie 12174
       pk_release.add_package (pvid, viewid, rtagid, userid);
12175
     END IF;
12176
 
12177
     -- Now do post Release Actions
12178
     pk_release.run_post_actions (pvid, rtagid);
12179
     -- Now update the Dash_Board Table (DEPRECATED)
12180
     pk_rmapi.update_dash_board (rtagid);
12181
 
12182
     -- The release has changed and there may now be invalid rtag_id/pv_id combinations in
12183
     -- the DO_NOT_RIPPLE and ADVISORY_RIPPLE Tables so perform a clean-up operation upon them.
12184
     clean_do_not_ripple(rtagid);
12185
     clean_advisory_ripple(rtagid);
12186
 
6999 dpurdie 12187
     -- Log
12188
     --log_action (pvid, 'action', userid, 'End of Make Package Release...');
1373 dpurdie 12189
   END;
12190
 
5172 dpurdie 12191
 
1373 dpurdie 12192
/*-------------------------------------------------------------------------------------------------------*/
12193
   PROCEDURE make_unrelease (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
12194
   IS
12195
     viewid   NUMBER;
12196
     envtab   NUMBER;
12197
   BEGIN
12198
     -- Get ViewId
12199
     --ViewId := PK_RELEASE.GET_PACKAGE_VIEW ( PvId, RtagId );
12200
     viewid := get_package_view (pvid, rtagid);
12201
     -- Remove from current area
12202
     envtab := pk_environment.get_package_area (pvid, rtagid);
6999 dpurdie 12203
     -- Log
12204
     -- log_action (pvid, 'action', userid, 'Start of Make Package UnRelease...' );
1373 dpurdie 12205
 
12206
     IF envtab = 2
12207
     THEN
12208
       -- RELEASE AREA --
12209
       pk_release.remove_package (pvid, rtagid, userid);
12210
     ELSIF envtab = 1
12211
     THEN
12212
       -- PENDING --
12213
       pk_planned.remove_package (pvid, rtagid, userid);
12214
     END IF;
12215
 
12216
     -- Change package state
12217
     pk_package.change_state (pvid, 'N', userid);
12218
 
12219
     -- Make sure it is valid BASE VIEW
12220
     IF viewid < 1
12221
     THEN
12222
       viewid := 7;                     -- This is default base view
12223
     END IF;
12224
 
12225
     -- Add package to new area
12226
     pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
12227
     -- Now do post Release Actions
12228
     pk_release.run_post_actions (pvid, rtagid);
6999 dpurdie 12229
 
12230
     -- Log
12231
     -- log_action (pvid, 'action', userid, 'End of Make Package UnRelease...');
1373 dpurdie 12232
   END;
12233
 
12234
/*-------------------------------------------------------------------------------------------------------*/
12235
   PROCEDURE make_pending (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
12236
   IS
12237
     viewid     NUMBER;
12238
     ispatch    CHAR (1) := NULL;
12239
     buildtype  CHAR (1) := NULL;
12240
   BEGIN
12241
     -- Check if package is patch
12242
     SELECT pv.is_patch, pv.build_type
12243
      INTO ispatch, buildtype
12244
      FROM package_versions pv
12245
      WHERE pv.pv_id = pvid;
12246
 
12247
     -- Get ViewId
12248
     viewid := get_package_view (pvid, rtagid);
12249
     --ViewId := PK_WORK_IN_PROGRESS.GET_PACKAGE_VIEW ( PvId, RtagId );
12250
 
6999 dpurdie 12251
     -- Log
12252
     --log_action (pvid, 'action', userid, 'Start of Make Package Pending...');
12253
 
1373 dpurdie 12254
     IF (ispatch IS NULL)
12255
     THEN
12256
       -- Remove from current area
12257
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
12258
       -- Change package state
12259
       pk_package.change_state (pvid, 'P', userid);
12260
       -- Add package to new area
12261
       pk_planned.add_package (pvid, viewid, rtagid, userid);
12262
     END IF;
6999 dpurdie 12263
 
12264
     -- Log
12265
     --log_action (pvid, 'action', userid, 'End of Make Package Pending...');
1373 dpurdie 12266
   END;
12267
 
12268
/*-------------------------------------------------------------------------------------------------------*/
12269
   PROCEDURE make_approved (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
12270
   IS
12271
   BEGIN
6999 dpurdie 12272
     -- Log
12273
     -- log_action (pvid, 'action', userid, 'Start of Package Pending Approval...' );
1373 dpurdie 12274
     -- Change package state
12275
     pk_package.change_state (pvid, 'A', userid);
6031 dpurdie 12276
 
5172 dpurdie 12277
     -- Flag Release has changed for the purposes of building
12278
     PK_RELEASE.SET_RELEASE_MODIFIED(rtagid);
6999 dpurdie 12279
 
12280
     -- Log
12281
     -- log_action (pvid, 'action', userid, 'End of Package Pending Approval...');
1373 dpurdie 12282
   END;
12283
 
12284
/*-------------------------------------------------------------------------------------------------------*/
12285
   PROCEDURE make_reject (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
12286
   IS
12287
     viewid   NUMBER;
12288
     operation CHAR;
12289
   BEGIN
12290
     -- Get ViewId
12291
     viewid := get_package_view (pvid, rtagid);
12292
     -- ViewId := PK_PLANNED.GET_PACKAGE_VIEW ( PvId, RtagId );
12293
 
12294
     -- DEVI-45275
12295
     -- If the package version is an official version that is to be rejected from a merge operation
12296
     -- then find out in order to prevent it being added back to work-in-progress table . This will
12297
     -- be denoted by the operation field in the planned table being A or S
12298
     operation := ' ';
12299
     SELECT
12300
     (CASE WHEN pl.operation IS NOT NULL THEN pl.operation ELSE ' ' END) INTO operation
12301
     FROM planned pl
12302
     WHERE pl.PV_ID = pvid
12303
     AND pl.RTAG_ID = rtagid;
12304
 
6999 dpurdie 12305
     -- Log
12306
     -- log_action (pvid, 'action', userid, 'Start of Reject Package...');
12307
 
1373 dpurdie 12308
     -- Remove from current area
12309
     pk_planned.remove_package (pvid, rtagid, userid);
12310
 
12311
     -- DEVI-45275 - Prevent merge candidate from being added back to work-in-progress table .
12312
     IF operation <> 'A' AND operation <> 'S'
12313
     THEN
12314
     -- Change package state
12315
     pk_package.change_state (pvid, 'R', userid);
12316
     -- Add package to new area
12317
     pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
12318
     ELSE
12319
      log_action (pvid, 'action', userid, 'Rejected Package Merge');
12320
     END IF;
6999 dpurdie 12321
 
12322
     -- Log
12323
     -- log_action (pvid, 'action', userid, 'End of Reject Package...');
1373 dpurdie 12324
   END;
12325
 
12326
/*-------------------------------------------------------------------------------------------------------*/
12327
   PROCEDURE change_package_view (
12328
     pvid       IN   NUMBER,
12329
     rtagid     IN   NUMBER,
12330
     newviewid  IN   NUMBER
12331
   )
12332
   IS
12333
     envtab   NUMBER;
12334
   BEGIN
12335
     envtab := pk_environment.get_package_area (pvid, rtagid);
12336
 
12337
     IF envtab = 0
12338
     THEN
12339
       -- WORK IN PROGRESS --
12340
       pk_work_in_progress.change_package_view (pvid, rtagid, newviewid);
12341
     ELSIF envtab = 1
12342
     THEN
12343
       -- PENDING --
12344
       pk_planned.change_package_view (pvid, rtagid, newviewid);
12345
     ELSIF envtab = 2
12346
     THEN
12347
       -- RELEASED --
12348
       pk_release.change_package_view (pvid, rtagid, newviewid);
12349
     END IF;
12350
   END;
12351
 
12352
/*-------------------------------------------------------------------------------------------------------*/
12353
   PROCEDURE find_package (
12354
     skeyword     IN      VARCHAR2,
12355
     nrtagid      IN      NUMBER,
12356
     nsearcharea  IN      NUMBER,
12357
     recordset    OUT     typecur
12358
   )
12359
   IS
12360
   BEGIN
12361
     IF nsearcharea = 0
12362
     THEN
12363
       /* Search Work In Progress */
12364
       OPEN recordset FOR
12365
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
12366
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
12367
                pv.modified_stamp, usr.full_name, usr.user_email
12368
           FROM views vi,
12369
                work_in_progress rc,
12370
                PACKAGES pkg,
12371
                package_versions pv,
12372
                users usr
12373
          WHERE rc.view_id = vi.view_id
12374
            AND rc.pv_id = pv.pv_id
12375
            AND pkg.pkg_id = pv.pkg_id
12376
            AND pv.modifier_id = usr.user_id
12377
            AND rc.rtag_id = nrtagid
12378
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
12379
       ORDER BY UPPER (pkg.pkg_name);
12380
     ELSIF nsearcharea = 1
12381
     THEN
12382
       /* Search Pending */
12383
       OPEN recordset FOR
12384
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
12385
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
12386
                pv.modified_stamp, usr.full_name, usr.user_email
12387
           FROM views vi,
12388
                planned rc,
12389
                PACKAGES pkg,
12390
                package_versions pv,
12391
                users usr
12392
          WHERE rc.view_id = vi.view_id
12393
            AND rc.pv_id = pv.pv_id
12394
            AND pkg.pkg_id = pv.pkg_id
12395
            AND pv.modifier_id = usr.user_id
12396
            AND rc.rtag_id = nrtagid
12397
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
12398
       ORDER BY UPPER (pkg.pkg_name);
12399
     ELSIF nsearcharea = 2
12400
     THEN
12401
       /* Search Released */
12402
       OPEN recordset FOR
12403
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
12404
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
12405
                pv.modified_stamp, usr.full_name, usr.user_email
12406
           FROM views vi,
12407
                release_content rc,
12408
                PACKAGES pkg,
12409
                package_versions pv,
12410
                users usr
12411
          WHERE rc.base_view_id = vi.view_id
12412
            AND rc.pv_id = pv.pv_id
12413
            AND pkg.pkg_id = pv.pkg_id
12414
            AND pv.modifier_id = usr.user_id
12415
            AND rc.rtag_id = nrtagid
12416
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
12417
         ORDER BY UPPER (pkg.pkg_name);
12418
     ELSIF nsearcharea = 3
12419
     THEN
12420
       /* Search ALL */
12421
       OPEN recordset FOR
12422
         SELECT rc.env_area, vi.view_name, pv.dlocked, pkg.pkg_name,
12423
                pv.pv_id, pv.pkg_version, pv.comments,
12424
                pv.modified_stamp, usr.full_name, usr.user_email
12425
           FROM views vi,
12426
                environment_view rc,
12427
                PACKAGES pkg,
12428
                package_versions pv,
12429
                users usr
12430
          WHERE rc.view_id = vi.view_id
12431
            AND rc.pv_id = pv.pv_id
12432
            AND pkg.pkg_id = pv.pkg_id
12433
            AND pv.modifier_id = usr.user_id
12434
            AND rc.rtag_id = nrtagid
12435
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
12436
         ORDER BY UPPER (pkg.pkg_name);
12437
     END IF;
12438
   END;
12439
 
12440
/*-------------------------------------------------------------------------------------------------------*/
12441
   PROCEDURE find_file (
12442
     skeyword     IN      VARCHAR2,
12443
     nrtagid      IN      NUMBER,
12444
     nsearcharea  IN      NUMBER,
12445
     npagesize    IN      NUMBER,
12446
     recordset    OUT     typecur
12447
   )
12448
   IS
12449
   BEGIN
12450
     IF nsearcharea = 0
12451
     THEN
12452
       /* Search Work In Progress */
12453
       OPEN recordset FOR
12454
         SELECT   qry.*
12455
            FROM (
12456
                 /* File search on Packages */
12457
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
12458
                        pv.pv_id, pv.pkg_version, art.crc_cksum
12459
                   FROM work_in_progress rc,
12460
                        PACKAGES pkg,
12461
                        package_versions pv,
12462
                        release_components art
12463
                  WHERE rc.pv_id = art.pv_id
12464
                    AND pv.pkg_id = pkg.pkg_id
12465
                    AND rc.pv_id = pv.pv_id
12466
                    AND rc.rtag_id = nrtagid
12467
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
12468
                 UNION ALL
12469
                 /* File search on Products */
12470
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
12471
                        pv.pv_id, pv.pkg_version, art.crc_cksum
12472
                   FROM work_in_progress rc,
12473
                        PACKAGES pkg,
12474
                        package_versions pv,
12475
                        product_components art
12476
                  WHERE rc.pv_id = art.pv_id
12477
                    AND pv.pkg_id = pkg.pkg_id
12478
                    AND rc.pv_id = pv.pv_id
12479
                    AND rc.rtag_id = nrtagid
12480
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
12481
            WHERE ROWNUM <= npagesize
12482
         ORDER BY UPPER (qry.pkg_name);
12483
     ELSIF nsearcharea = 1
12484
     THEN
12485
       /* Search Pending */
12486
       OPEN recordset FOR
12487
         SELECT   qry.*
12488
            FROM (
12489
                 /* File search on Packages */
12490
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
12491
                        pv.pv_id, pv.pkg_version, art.crc_cksum
12492
                   FROM planned rc,
12493
                        PACKAGES pkg,
12494
                        package_versions pv,
12495
                        release_components art
12496
                  WHERE rc.pv_id = art.pv_id
12497
                    AND pv.pkg_id = pkg.pkg_id
12498
                    AND rc.pv_id = pv.pv_id
12499
                    AND rc.rtag_id = nrtagid
12500
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
12501
                 UNION ALL
12502
                 /* File search on Products */
12503
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
12504
                        pv.pv_id, pv.pkg_version, art.crc_cksum
12505
                   FROM planned rc,
12506
                        PACKAGES pkg,
12507
                        package_versions pv,
12508
                        product_components art
12509
                  WHERE rc.pv_id = art.pv_id
12510
                    AND pv.pkg_id = pkg.pkg_id
12511
                    AND rc.pv_id = pv.pv_id
12512
                    AND rc.rtag_id = nrtagid
12513
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
12514
            WHERE ROWNUM <= npagesize
12515
         ORDER BY UPPER (qry.pkg_name);
12516
     ELSIF nsearcharea = 2
12517
     THEN
12518
       /* Search Released */
12519
       OPEN recordset FOR
12520
         SELECT   qry.*
12521
            FROM (
12522
                 /* File search on Packages */
12523
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
12524
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
12525
                        NULL AS patch_id
12526
                   FROM release_content rc,
12527
                        PACKAGES pkg,
12528
                        package_versions pv,
12529
                        release_components art
12530
                  WHERE rc.pv_id = art.pv_id
12531
                    AND pv.pkg_id = pkg.pkg_id
12532
                    AND rc.pv_id = pv.pv_id
12533
                    AND rc.rtag_id = nrtagid
12534
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
12535
                 UNION ALL
12536
                 /* File search on Products */
12537
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
12538
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
12539
                        NULL AS patch_id
12540
                   FROM release_content rc,
12541
                        PACKAGES pkg,
12542
                        package_versions pv,
12543
                        product_components art
12544
                  WHERE rc.pv_id = art.pv_id
12545
                    AND pv.pkg_id = pkg.pkg_id
12546
                    AND rc.pv_id = pv.pv_id
12547
                    AND rc.rtag_id = nrtagid
12548
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
12549
                 UNION ALL
12550
                 /* File search on Patches */
12551
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
12552
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
12553
                        DECODE (art.file_path,
12554
                                NULL, pp.patch_id,
12555
                                NULL
12556
                                ) AS patch_id
12557
                   FROM release_content rc,
12558
                        PACKAGES pkg,
12559
                        package_versions pv,
12560
                        release_components art,
12561
                        package_patches pp
12562
                  WHERE pv.pv_id = pp.pv_id
12563
                    AND pv.pkg_id = pkg.pkg_id
12564
                    AND rc.rtag_id = nrtagid
12565
                    AND art.pv_id = pp.patch_id
12566
                    AND rc.pv_id = pp.pv_id
12567
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
12568
            WHERE ROWNUM <= npagesize
12569
         ORDER BY UPPER (qry.pkg_name);
12570
     ELSIF nsearcharea = 3
12571
     THEN
12572
       /* Search ALL */
12573
       OPEN recordset FOR
12574
         SELECT   qry.*
12575
            FROM (
12576
                 /* File search on Packages */
12577
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
12578
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
12579
                        NULL AS patch_id
12580
                   FROM environment_view rc,
12581
                        PACKAGES pkg,
12582
                        package_versions pv,
12583
                        release_components art
12584
                  WHERE rc.pv_id = art.pv_id
12585
                    AND pv.pkg_id = pkg.pkg_id
12586
                    AND rc.pv_id = pv.pv_id
12587
                    AND rc.rtag_id = nrtagid
12588
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
12589
                 UNION ALL
12590
                 /* File search on Products */
12591
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
12592
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
12593
                        NULL AS patch_id
12594
                   FROM environment_view rc,
12595
                        PACKAGES pkg,
12596
                        package_versions pv,
12597
                        product_components art
12598
                  WHERE rc.pv_id = art.pv_id
12599
                    AND pv.pkg_id = pkg.pkg_id
12600
                    AND rc.pv_id = pv.pv_id
12601
                    AND rc.rtag_id = nrtagid
12602
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
12603
                 UNION ALL
12604
                 /* File search on Patches */
12605
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
12606
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
12607
                        DECODE (art.file_path,
12608
                                NULL, pp.patch_id,
12609
                                NULL
12610
                               ) AS patch_id
12611
                   FROM release_content rc,
12612
                        PACKAGES pkg,
12613
                        package_versions pv,
12614
                        release_components art,
12615
                        package_patches pp
12616
                  WHERE pv.pv_id = pp.pv_id
12617
                    AND pv.pkg_id = pkg.pkg_id
12618
                    AND rc.rtag_id = nrtagid
12619
                    AND art.pv_id = pp.patch_id
12620
                    AND rc.pv_id = pp.pv_id
12621
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
12622
            WHERE ROWNUM <= npagesize
12623
         ORDER BY UPPER (qry.pkg_name);
12624
     END IF;
12625
   END;
12626
 
12627
/*-------------------------------------------------------------------------------------------------------*/
12628
   PROCEDURE get_prodrelease_items (
12629
     rtagid           IN      NUMBER,
12630
     ntruerecordcount OUT     NUMBER,
12631
     recordset        OUT     typecur
12632
   )
12633
   IS
12634
   BEGIN
12635
     -- Get true record count n the number of integration products
12636
     SELECT COUNT (rc.pv_id)
12637
      INTO ntruerecordcount
12638
      FROM release_content rc
12639
      WHERE rc.rtag_id = rtagid;
12640
 
12641
     OPEN recordset FOR
12642
       SELECT vi.view_id, vi.view_name, rel.pkg_state,   --rel.pkg_state,
12643
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
12644
              pv.pkg_version, pv.dlocked, pv.pv_description
12645
         FROM release_content rel,
12646
              PACKAGES pkg,
12647
              package_versions pv,
12648
              views vi
12649
        WHERE pv.pkg_id = pkg.pkg_id
12650
          AND rel.pv_id = pv.pv_id
12651
          AND rel.base_view_id = vi.view_id
12652
          AND pv.is_deployable = 'Y'
12653
          AND rtag_id = rtagid
12654
          AND pv.pv_id NOT IN (SELECT DISTINCT prod_id
12655
                                 FROM deployment_manager.os_contents)
12656
          AND rel.product_state IS NULL
12657
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
12658
   END;
12659
 
12660
/*-------------------------------------------------------------------------------------------------------*/
12661
   PROCEDURE get_integration_items (
12662
     rtagid           IN      NUMBER,
12663
     ntruerecordcount OUT     NUMBER,
12664
     recordset        OUT     typecur
12665
   )
12666
   IS
12667
   BEGIN
12668
     -- Get true record count n the number of integration products
12669
     SELECT COUNT (rc.pv_id)
12670
      INTO ntruerecordcount
12671
      FROM release_content rc
12672
      WHERE rc.rtag_id = rtagid AND rc.product_state = 1;
12673
 
12674
     OPEN recordset FOR
12675
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
12676
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
12677
              pv.pkg_version, pv.dlocked, pv.pv_description
12678
         FROM release_content rel,
12679
              PACKAGES pkg,
12680
              package_versions pv,
12681
              views vi
12682
        WHERE pv.pkg_id = pkg.pkg_id
12683
          AND rel.pv_id = pv.pv_id
12684
          AND rel.base_view_id = vi.view_id
12685
          AND pv.is_deployable = 'Y'
12686
          AND rtag_id = rtagid
12687
          AND rel.product_state IN (1, 5)
12688
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
12689
   END;
12690
 
12691
/*-------------------------------------------------------------------------------------------------------*/
12692
   PROCEDURE get_test_items (
12693
     rtagid           IN      NUMBER,
12694
     ntruerecordcount OUT     NUMBER,
12695
     recordset        OUT     typecur
12696
   )
12697
   IS
12698
   BEGIN
12699
     -- Get true record count n the number of test products
12700
     SELECT COUNT (rc.pv_id)
12701
      INTO ntruerecordcount
12702
      FROM release_content rc
12703
      WHERE rc.rtag_id = rtagid AND rc.product_state = 2;
12704
 
12705
     OPEN recordset FOR
12706
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
12707
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
12708
              pv.pkg_version, pv.dlocked, pv.pv_description
12709
         FROM release_content rel,
12710
              PACKAGES pkg,
12711
              package_versions pv,
12712
              views vi
12713
        WHERE pv.pkg_id = pkg.pkg_id
12714
          AND rel.pv_id = pv.pv_id
12715
          AND rel.base_view_id = vi.view_id
12716
          AND pv.is_deployable = 'Y'
12717
          AND rtag_id = rtagid
12718
          AND rel.product_state = 2
12719
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
12720
   END;
12721
 
12722
/*-------------------------------------------------------------------------------------------------------*/
12723
   PROCEDURE get_deploy_items (
12724
     rtagid           IN      NUMBER,
12725
     ntruerecordcount OUT     NUMBER,
12726
     recordset        OUT     typecur
12727
   )
12728
   IS
12729
   BEGIN
12730
     -- Get true record count n the number of deploy products
12731
     SELECT COUNT (rc.pv_id)
12732
      INTO ntruerecordcount
12733
      FROM release_content rc
12734
      WHERE rc.rtag_id = rtagid AND rc.product_state = 3;
12735
 
12736
     OPEN recordset FOR
12737
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
12738
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
12739
              pv.pkg_version, pv.dlocked, pv.pv_description
12740
         FROM release_content rel,
12741
              PACKAGES pkg,
12742
              package_versions pv,
12743
              views vi
12744
        WHERE pv.pkg_id = pkg.pkg_id
12745
          AND rel.pv_id = pv.pv_id
12746
          AND rel.base_view_id = vi.view_id
12747
          AND pv.is_deployable = 'Y'
12748
          AND rtag_id = rtagid
12749
          AND rel.product_state IN (3, 5)
12750
          AND pv.pv_id NOT IN (SELECT DISTINCT prod_id
12751
                                 FROM deployment_manager.os_contents)
12752
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
12753
   END;
12754
 
12755
/*-------------------------------------------------------------------------------------------------------*/
12756
   PROCEDURE get_reject_items (
12757
     rtagid           IN      NUMBER,
12758
     ntruerecordcount OUT     NUMBER,
12759
     recordset        OUT     typecur
12760
   )
12761
   IS
12762
   BEGIN
12763
     -- Get true record count n the number of reject products
12764
     SELECT COUNT (rc.pv_id)
12765
       INTO ntruerecordcount
12766
       FROM release_content rc
12767
      WHERE rc.rtag_id = rtagid AND rc.product_state = 4;
12768
 
12769
     OPEN recordset FOR
12770
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
12771
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
12772
              pv.pkg_version, pv.dlocked, pv.pv_description
12773
         FROM release_content rel,
12774
              PACKAGES pkg,
12775
              package_versions pv,
12776
              views vi
12777
        WHERE pv.pkg_id = pkg.pkg_id
12778
          AND rel.pv_id = pv.pv_id
12779
          AND rel.base_view_id = vi.view_id
12780
          AND pv.is_deployable = 'Y'
12781
          AND rtag_id = rtagid
12782
          AND rel.product_state = 4
12783
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
12784
   END;
12785
/*-------------------------------------------------------------------------------------------------------*/
12786
   -- DEVI-45275 - this procedure performs the merge of an existing package version in the planned table
12787
   -- to the release_content table.
12788
 
12789
  PROCEDURE approve_merge (
12790
   PvId    IN NUMBER,
12791
   RtagId  IN NUMBER,
12792
   UserId  IN NUMBER
12793
  )
12794
  IS
12795
   viewid        NUMBER;
12796
   envtab        NUMBER;
12797
   oper         CHAR;
12798
  BEGIN
12799
      -- Get ViewId
12800
     viewid := get_package_view (pvid, rtagid);
12801
 
12802
     -- Get the view tab
12803
     envtab := pk_environment.get_package_area (pvid, rtagid);
12804
 
12805
     -- Make sure that package was in pending before merging it to released
12806
     IF (envtab <> 1)
12807
     THEN
12808
       -- Not found in pending
12809
       raise_application_error (-20000,
12810
                          'This package cannot be released here.'
12811
                         );
12812
     END IF;
12813
 
6999 dpurdie 12814
     -- Log
12815
     --log_action (pvid, 'action', userid, 'Start of Package Merge...');
12816
 
1373 dpurdie 12817
     -- Get the planned operation type A=Add, S=Subtract
12818
     SELECT ev.operation INTO oper
12819
       FROM environment_view ev
12820
      WHERE ev.rtag_id = RtagId
12821
        AND ev.pv_id = PvId
12822
        AND (ev.operation = 'A' OR ev.operation = 'S');
12823
 
12824
     -- Remove from Pending
12825
     pk_planned.remove_package (PvId, RtagId, UserId);
12826
 
12827
     -- Either add to the release, or remove from the release as the operation commands
12828
     IF oper = 'A'
12829
     THEN
12830
       pk_release.add_package(PvId, viewId, RtagId, UserId);
12831
 
12832
     ELSIF oper = 'S'
12833
     THEN
12834
       pk_release.remove_package(PvId, RtagId, UserId);
12835
 
12836
       -- Delete old package's pegging info
12837
       DELETE FROM PEGGED_VERSIONS pegv WHERE pegv.RTAG_ID = RtagId AND pegv.PV_ID = PvId;
12838
 
12839
       -- Delete old package's advisory ripple info
12840
       DELETE FROM ADVISORY_RIPPLE avr WHERE avr.RTAG_ID = RtagId AND avr.PV_ID = PvId;
12841
     END IF;
12842
 
12843
     touch_release(RtagId);
6999 dpurdie 12844
 
12845
     -- Log
12846
     --log_action (pvid, 'action', userid, 'End of Package Merge...');
1373 dpurdie 12847
  END;
12848
/*-------------------------------------------------------------------------------------------------------*/
12849
END pk_environment;
4040 dpurdie 12850
 
6999 dpurdie 12851
/
4040 dpurdie 12852
--------------------------------------------------------
12853
--  DDL for Package Body PK_LICENCING
12854
--------------------------------------------------------
12855
 
5172 dpurdie 12856
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_LICENCING" IS
1373 dpurdie 12857
 
12858
/*
12859
------------------------------
3959 dpurdie 12860
||  Last Modified:  G.Huddy
12861
||  Modified Date:  19/Aug/2008
1373 dpurdie 12862
||  Body Version:   1.0
12863
------------------------------
12864
*/
12865
 
3959 dpurdie 12866
   PROCEDURE ADD_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER ) IS
12867
   BEGIN
12868
      IF IS_LICENCED(PvId, licenceId) = 0 THEN
12869
         -- Add entry to licencing table
12870
         INSERT INTO licencing (pv_id, licence)
12871
         VALUES (PvId, licenceId);
1373 dpurdie 12872
 
3959 dpurdie 12873
         -- log action
12874
         -- TODO
12875
      END IF;
1373 dpurdie 12876
 
3959 dpurdie 12877
   END;
1373 dpurdie 12878
 
12879
/*-------------------------------------------------------------------------------------------------------*/
12880
 
3959 dpurdie 12881
   PROCEDURE REMOVE_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER ) IS
12882
   BEGIN
12883
      IF NOT IS_LICENCED(PvId, licenceId) = 0 THEN
12884
         -- Delete entry from licencing table
12885
         DELETE FROM licencing
12886
         WHERE pv_id = PvId
12887
         AND licence = licenceId;
1373 dpurdie 12888
 
3959 dpurdie 12889
         -- log action
12890
         -- TODO
12891
      END IF;
12892
   END;
1373 dpurdie 12893
 
12894
/*-------------------------------------------------------------------------------------------------------*/
12895
 
3959 dpurdie 12896
   PROCEDURE CLONE_LICENCING( fromPvId IN NUMBER, toPvId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 12897
 
3959 dpurdie 12898
      CURSOR licencing_cur
12899
      IS
12900
         SELECT *
12901
         FROM licencing
12902
         WHERE pv_id = fromPvId;
1373 dpurdie 12903
 
3959 dpurdie 12904
      licencing_rec licencing_cur%ROWTYPE;
1373 dpurdie 12905
 
12906
   BEGIN
3959 dpurdie 12907
      -- For each licence association that the Last PV_ID had, create a similar
12908
      -- arrangement for the new PV_ID
12909
      -- NOTE that any additional licencing associations the new PV_ID has that the old one
12910
      -- does not have, are retained. The assumption is that the user has made those and so we do not
12911
      -- have any right to destroy them without asking them.
12912
      OPEN licencing_cur;
1373 dpurdie 12913
 
3959 dpurdie 12914
      FETCH licencing_cur
12915
      INTO licencing_rec;
1373 dpurdie 12916
 
3959 dpurdie 12917
      WHILE licencing_cur%FOUND
1373 dpurdie 12918
      LOOP
3959 dpurdie 12919
         ADD_LICENCE ( toPvId, licencing_rec.licence, UserId );
1373 dpurdie 12920
 
3959 dpurdie 12921
         FETCH licencing_cur
12922
         INTO licencing_rec;
1373 dpurdie 12923
      END LOOP;
12924
   END;
12925
 
12926
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12927
 
12928
   FUNCTION IS_LICENCED( PvId IN NUMBER, licenceId IN NUMBER) RETURN NUMBER IS
12929
      found NUMBER;
1373 dpurdie 12930
   BEGIN
12931
 
3959 dpurdie 12932
      SELECT COUNT(*) INTO found
12933
      FROM licencing
12934
      WHERE pv_id = PvId
12935
      AND licence = LicenceId;
1373 dpurdie 12936
 
3959 dpurdie 12937
      RETURN found;
1373 dpurdie 12938
   END;
12939
 
12940
/*-------------------------------------------------------------------------------------------------------*/
12941
 
3959 dpurdie 12942
   PROCEDURE REMOVE_ALL_LICENCING( PvId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 12943
 
3959 dpurdie 12944
      CURSOR licencing_cur
12945
      IS
1373 dpurdie 12946
         SELECT *
3959 dpurdie 12947
         FROM licencing
12948
         WHERE pv_id = PvId;
1373 dpurdie 12949
 
3959 dpurdie 12950
      licencing_rec licencing_cur%ROWTYPE;
12951
   BEGIN
12952
      -- For each licence association that the PV_ID had, remove it
12953
      OPEN licencing_cur;
1373 dpurdie 12954
 
3959 dpurdie 12955
      FETCH licencing_cur
12956
      INTO licencing_rec;
1373 dpurdie 12957
 
3959 dpurdie 12958
      WHILE licencing_cur%FOUND
12959
      LOOP
12960
         REMOVE_LICENCE ( PvId, licencing_rec.licence, UserId );
1373 dpurdie 12961
 
3959 dpurdie 12962
         FETCH licencing_cur
12963
         INTO licencing_rec;
12964
      END LOOP;
1373 dpurdie 12965
   END;
12966
 
12967
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12968
END PK_LICENCING;
4040 dpurdie 12969
 
6999 dpurdie 12970
/
4040 dpurdie 12971
--------------------------------------------------------
12972
--  DDL for Package Body PK_PACKAGE
12973
--------------------------------------------------------
12974
 
5172 dpurdie 12975
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PACKAGE" 
1373 dpurdie 12976
IS
12977
   /*-------------------------------------------------------------------------------------------------------*/
12978
   PROCEDURE new_version (
12979
      nlastpvid                   IN       NUMBER,
12980
      snewpkgversion              IN       VARCHAR2 DEFAULT NULL,
12981
      cbuildtype                  IN       CHAR,
4211 dpurdie 12982
      cchangetype                 IN       CHAR,
1373 dpurdie 12983
      nsettopvid                  IN       NUMBER DEFAULT NULL,
12984
      nrtagid                     IN       NUMBER,
12985
      nuserid                     IN       NUMBER,
12986
      enumissues_state_imported   IN       NUMBER,
12987
      returnpvid                  OUT      NUMBER
12988
   )
12989
   IS
3959 dpurdie 12990
      origpkg_id                  package_versions.pkg_id%TYPE;
12991
      origdlocked                 package_versions.dlocked%TYPE;
12992
      ssv_mm                      package_versions.v_mm%TYPE;
12993
      ssv_nmm                     package_versions.v_nmm%TYPE;
12994
      ssv_ext                     package_versions.v_ext%TYPE;
12995
      spackageversion             VARCHAR2 (4000);
12996
      nissuestypes                NUMBER;
12997
      nviewid                     NUMBER;
12998
      reccount                    NUMBER;
12999
      isreleased                  package_versions.dlocked%TYPE := 'N';
13000
      slabel                      VARCHAR2 (4000)               := NULL;
4211 dpurdie 13001
      uchangetype                 CHAR := cchangetype;
1373 dpurdie 13002
 
13003
      CURSOR package_versions_cur
13004
      IS
13005
         SELECT pv.pv_id, pv.is_patch, pv.dlocked
13006
           FROM package_versions pv
13007
          WHERE pv.pkg_version = snewpkgversion
13008
            AND pv.pkg_id IN (SELECT DISTINCT origpv.pkg_id
13009
                                         FROM package_versions origpv
13010
                                        WHERE origpv.pv_id = nlastpvid);
13011
 
3959 dpurdie 13012
      package_versions_rec package_versions_cur%ROWTYPE;
1373 dpurdie 13013
 
13014
      CURSOR clone_package_versions_cur
13015
      IS
13016
         SELECT DISTINCT pkg_id, dlocked
13017
                    FROM package_versions
13018
                   WHERE pv_id = nlastpvid;
13019
 
3959 dpurdie 13020
      clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
1373 dpurdie 13021
   BEGIN
13022
      spackageversion := snewpkgversion;
13023
 
13024
      IF nsettopvid IS NULL
13025
      THEN
13026
         -- SetToPv_id is not supplied, hence proceed.
13027
 
13028
         /* ---------------------------------------------------- */
3959 dpurdie 13029
         /* Find id package_version exists                       */
13030
         /* ---------------------------------------------------- */
1373 dpurdie 13031
         OPEN package_versions_cur;
13032
 
13033
         FETCH package_versions_cur
13034
          INTO package_versions_rec;
13035
 
13036
         IF package_versions_cur%NOTFOUND
13037
         THEN
13038
            ---  Create brand new package ---
13039
            SELECT seq_pv_id.NEXTVAL
13040
              INTO returnpvid
13041
              FROM DUAL;
13042
 
13043
            -- Split Version to get extention + other
13044
            split_version (spackageversion, ssv_mm, ssv_nmm, ssv_ext);
13045
 
13046
            -- Get previous package to clone from
13047
            OPEN clone_package_versions_cur;
13048
 
13049
            FETCH clone_package_versions_cur
13050
             INTO clone_package_versions_rec;
13051
 
13052
            origpkg_id := clone_package_versions_rec.pkg_id;
13053
            origdlocked := clone_package_versions_rec.dlocked;
13054
 
13055
            CLOSE clone_package_versions_cur;
13056
 
13057
            -- Automated built config
4211 dpurdie 13058
            IF ( cbuildtype = 'M' ) THEN
13059
              uchangetype := 'F';
6031 dpurdie 13060
            END IF;
13061
 
4211 dpurdie 13062
            -- Automated version numbering
13063
            -- Make sure that version is still unique
13064
            IF (uchangetype != 'F') THEN
13065
              spackageversion := '(' || returnpvid || ')' || ssv_ext;
1373 dpurdie 13066
            END IF;
13067
 
6031 dpurdie 13068
 
1373 dpurdie 13069
            -- Clone Package Version Details --
3959 dpurdie 13070
            INSERT INTO package_versions(pv_id, pkg_id, pkg_version, dlocked, created_stamp,
13071
                                         creator_id, modified_stamp, modifier_id, v_mm, v_nmm,
13072
                                         v_ext, src_path, pv_description, pv_overview,
13073
                                         last_pv_id, owner_id, is_deployable,
6031 dpurdie 13074
                                         is_build_env_required, build_type, change_type,
5892 dpurdie 13075
                                         bs_id, is_autobuildable, ripple_field, build_time)
3959 dpurdie 13076
                 SELECT returnpvid AS pv_id, origpkg_id AS pkg_id,
13077
                        spackageversion AS pkg_version, 'N' AS dlocked,
7000 dpurdie 13078
                        ora_sysdatetime AS created_stamp, nuserid AS creator_id,
3959 dpurdie 13079
                        ora_sysdatetime AS modified_stamp,
13080
                        nuserid AS modifier_id, ssv_mm AS v_mm,
13081
                        ssv_nmm AS v_nmm, ssv_ext AS v_ext, pv.src_path,
13082
                        pv.pv_description, pv.pv_overview,
13083
                        nlastpvid AS last_pv_id, pv.owner_id, pv.is_deployable,
6031 dpurdie 13084
                        pv.is_build_env_required, cbuildtype, uchangetype,
5892 dpurdie 13085
                        pv.bs_id, pv.is_autobuildable, pv.ripple_field, pv.build_time
3959 dpurdie 13086
                   FROM package_versions pv
13087
                  WHERE pv.pv_id = nlastpvid;
1373 dpurdie 13088
 
13089
            -- Set Issues Type for cloning ---
13090
            IF origdlocked = 'Y'
13091
            THEN
13092
               nissuestypes := enumissues_state_imported;
13093
            ELSE
13094
               nissuestypes := NULL;
13095
            END IF;
13096
 
13097
            basic_clone (nlastpvid,
13098
                         returnpvid,
13099
                         nrtagid,
13100
                         nuserid,
13101
                         origpkg_id,
13102
                         nissuestypes
13103
                        );
6031 dpurdie 13104
 
4211 dpurdie 13105
            -- Update Label for versioning purposes
13106
            slabel := get_automated_label (returnpvid);
13107
            UPDATE package_versions pv
13108
            SET pv.pkg_label = slabel
13109
            WHERE pv.pv_id = returnpvid;
6031 dpurdie 13110
 
1373 dpurdie 13111
         ELSE
13112
            --- Package already exists, hence reuse ---
13113
            returnpvid := package_versions_rec.pv_id;
13114
            isreleased := package_versions_rec.dlocked;
13115
         END IF;
13116
 
13117
         CLOSE package_versions_cur;
13118
      ELSE
13119
         returnpvid := nsettopvid;
13120
      END IF;
13121
   END new_version;
13122
 
13123
/*-------------------------------------------------------------------------------------------------------*/
13124
   PROCEDURE change_state (
13125
      pvid       IN   NUMBER,
13126
      newstate   IN   package_versions.dlocked%TYPE,
13127
      userid     IN   NUMBER
13128
   )
13129
   IS
13130
   BEGIN
13131
      -- Set package in Released mode
13132
      UPDATE package_versions pv
13133
         SET pv.dlocked = newstate,
13134
             pv.modified_stamp = ora_sysdatetime,
13135
             pv.modifier_id = userid
13136
       WHERE pv.pv_id = pvid;
13137
 
13138
      -- Log action --
13139
      IF newstate = 'Y'
13140
      THEN
13141
         -- RELEASED --
6999 dpurdie 13142
         log_action (pvid,
13143
                     'makeofficial',
13144
                     userid,
13145
                     'Package state change to: Released'
13146
                    );
1373 dpurdie 13147
      ELSIF newstate = 'N'
13148
      THEN
13149
         -- UNLOCKED --
6999 dpurdie 13150
         log_action (pvid,
13151
                     'makeunofficial',
13152
                     userid,
13153
                     'Package state change to: Ulocked'
13154
                    );
1373 dpurdie 13155
      ELSIF newstate = 'P'
13156
      THEN
13157
         -- PENDING APPROVAL --
6999 dpurdie 13158
         log_action (pvid,
13159
                     'add_to_planned',
13160
                     userid,
13161
                     'Package state change to: Pending Approval'
13162
                    );
1373 dpurdie 13163
      ELSIF newstate = 'R'
13164
      THEN
13165
         -- REJECTED --
6999 dpurdie 13166
         log_action (pvid,
13167
                     'reject_package',
13168
                     userid,
13169
                     'Package state change to: Rejected'
13170
                    );
1373 dpurdie 13171
      ELSIF newstate = 'A'
13172
      THEN
13173
         -- APPROVED --
6999 dpurdie 13174
         log_action (pvid,
13175
                     'approve_package',
13176
                     userid,
13177
                     'Package state change to: Approved'
13178
                    );
1373 dpurdie 13179
      END IF;
13180
   END;
13181
 
13182
/*-------------------------------------------------------------------------------------------------------*/
6031 dpurdie 13183
-- This function has been deprecated and can be deleted
13184
-- Replaced with destroy_package_extended
1373 dpurdie 13185
   PROCEDURE destroy_package (
13186
      pvid               IN       NUMBER,
13187
      overridewarnings   IN       CHAR DEFAULT 'N',
13188
      problemstring      OUT      VARCHAR2
13189
   )
13190
   IS
13191
      LOCKED     CHAR;
13192
      pkgid      NUMBER;
13193
      ROWCOUNT   NUMBER;
6031 dpurdie 13194
      lastPvid   NUMBER;
1373 dpurdie 13195
   BEGIN
13196
      /*
13197
      || This will destroy all package details from database.
13198
      || It will only be used to remove unwanted work in progress packages,
6031 dpurdie 13199
      || or mistaken versions
1373 dpurdie 13200
      */
13201
 
13202
      /*--------------- Business Rules Here -------------------*/
13203
      problemstring := NULL;
13204
 
13205
      IF overridewarnings = 'N'
13206
      THEN
13207
         -- Package must not be official
13208
         SELECT pv.dlocked
13209
           INTO LOCKED
13210
           FROM package_versions pv
13211
          WHERE pv.pv_id = pvid;
13212
 
13213
         IF LOCKED = 'Y'
13214
         THEN
13215
            problemstring :=
13216
                  problemstring
13217
               || '- Package is locked and released.'
5892 dpurdie 13218
               ||PK_PACKAGE.crlf;
1373 dpurdie 13219
         END IF;
13220
 
13221
         -- Cannot remove if used in BOMs
13222
         SELECT COUNT (osc.prod_id)
13223
           INTO ROWCOUNT
13224
           FROM deployment_manager.os_contents osc
13225
          WHERE osc.prod_id = pvid;
13226
 
13227
         IF ROWCOUNT > 0
13228
         THEN
13229
            problemstring :=
13230
                  problemstring
13231
               || '- Package is part of Bill-Of-Material (BOM) in Deployment Manager.'
5892 dpurdie 13232
               ||PK_PACKAGE.crlf;
1373 dpurdie 13233
         END IF;
6031 dpurdie 13234
 
13235
         -- Cannot remove if used in an SDK
13236
         SELECT COUNT (sc.pv_id)
13237
           INTO ROWCOUNT
13238
           FROM sdk_content sc
13239
          WHERE sc.pv_id = pvid;
1373 dpurdie 13240
 
6031 dpurdie 13241
         IF ROWCOUNT > 0
13242
         THEN
13243
            problemstring :=
13244
                  problemstring
13245
               || '- Package is part of an SDK.'
13246
               ||PK_PACKAGE.crlf;
13247
         END IF;
13248
 
1373 dpurdie 13249
         -- Cannot remove if Referenced as build dependency
13250
         SELECT COUNT (dep.pv_id)
13251
           INTO ROWCOUNT
13252
           FROM package_dependencies dep
13253
          WHERE dep.dpv_id = pvid;
13254
 
13255
         IF ROWCOUNT > 0
13256
         THEN
13257
            problemstring :=
13258
                  problemstring
13259
               || '- Package is referenced by other package as build dependency.'
5892 dpurdie 13260
               ||PK_PACKAGE.crlf;
1373 dpurdie 13261
         END IF;
13262
 
13263
         -- Cannot remove if Referenced as runtime dependency
13264
         SELECT COUNT (rd.pv_id)
13265
           INTO ROWCOUNT
13266
           FROM runtime_dependencies rd
13267
          WHERE rd.rtd_id = pvid;
13268
 
13269
         IF ROWCOUNT > 0
13270
         THEN
13271
            problemstring :=
13272
                  problemstring
13273
               || '- Package is referenced by other package as runtime dependency.'
5892 dpurdie 13274
               ||PK_PACKAGE.crlf;
1373 dpurdie 13275
         END IF;
13276
 
13277
         -- Cannot remove if Referenced as patch
13278
         SELECT COUNT (pp.pv_id)
13279
           INTO ROWCOUNT
13280
           FROM package_patches pp
13281
          WHERE pp.patch_id = pvid;
13282
 
13283
         IF ROWCOUNT > 0
13284
         THEN
13285
            problemstring :=
13286
                  problemstring
13287
               || '- Package is used as patch by other package.'
5892 dpurdie 13288
               ||PK_PACKAGE.crlf;
1373 dpurdie 13289
         END IF;
6031 dpurdie 13290
 
13291
         -- Cannot remove if a Daemon Instruction
13292
         SELECT COUNT (di.pv_id)
13293
           INTO ROWCOUNT
13294
           FROM DAEMON_INSTRUCTIONS di
13295
          WHERE di.pv_id = pvid;
1373 dpurdie 13296
 
6031 dpurdie 13297
         IF ROWCOUNT > 0
13298
         THEN
13299
            problemstring :=
13300
                  problemstring
13301
               || '- Package is in use for a Daemon Instruction.'
13302
               ||PK_PACKAGE.crlf;
13303
         END IF;
13304
 
13305
 
13306
      END IF;      
13307
 
1373 dpurdie 13308
/*-------------------------------------------------------*/
13309
      IF (problemstring IS NULL)
13310
      THEN
13311
         --- Remove From Work in Progress
13312
         DELETE FROM work_in_progress wip
13313
               WHERE wip.pv_id = pvid;
13314
 
13315
         --- Remove From Pending
13316
         DELETE FROM planned pl
13317
               WHERE pl.pv_id = pvid;
13318
 
13319
         --- Remove From Released area
13320
         DELETE FROM release_content rc
13321
               WHERE rc.pv_id = pvid;
13322
 
13323
         ---Remove From Package Processes
13324
         DELETE FROM package_processes pp
13325
               WHERE pp.pv_id = pvid;
13326
 
13327
         --- Remove Dependencies
13328
         DELETE FROM package_dependencies dep
13329
               WHERE dep.pv_id = pvid;
13330
 
13331
         DELETE FROM package_dependencies dep
13332
               WHERE dep.dpv_id = pvid;
13333
 
13334
         --- Remove Runtime dependencies
13335
         DELETE FROM runtime_dependencies rtd
13336
               WHERE rtd.pv_id = pvid;
13337
 
13338
         DELETE FROM runtime_dependencies rtd
13339
               WHERE rtd.rtd_id = pvid;
13340
 
13341
         --- Remove components
13342
         DELETE FROM product_components pc
13343
               WHERE pc.pv_id = pvid;
13344
 
13345
         DELETE FROM release_components rc
13346
               WHERE rc.pv_id = pvid;
13347
 
13348
         --- Remove From Notification History
13349
         DELETE FROM notification_history nh
13350
               WHERE nh.pv_id = pvid;
13351
 
13352
         --- Remove From Ignore Warnings
13353
         DELETE FROM ignore_warnings iw
13354
               WHERE iw.pv_id = pvid;
13355
 
13356
         --- Remove From Additional Notes
13357
         DELETE FROM additional_notes an
13358
               WHERE an.pv_id = pvid;
13359
 
13360
         --- Remove From CQ Issues
13361
         DELETE FROM cq_issues cq
13362
               WHERE cq.pv_id = pvid;
13363
 
13364
         --- Remove from Package Patches
13365
         DELETE FROM package_patches pp
13366
               WHERE pp.pv_id = pvid;
13367
 
13368
         DELETE FROM package_patches pp
13369
               WHERE pp.patch_id = pvid;
13370
 
13371
         --- Remove From Package Documents
13372
         DELETE FROM package_documents pd
13373
               WHERE pd.pv_id = pvid;
13374
 
13375
         --- Remove from Code Review
13376
         DELETE FROM code_reviews cr
13377
               WHERE cr.pv_id = pvid;
13378
 
3959 dpurdie 13379
         --- Remove from Code Review URL
13380
         DELETE FROM code_review_url cru
13381
               WHERE cru.pv_id = pvid;
13382
 
1373 dpurdie 13383
         --- Remove from Unit Tests
13384
         DELETE FROM unit_tests ut
13385
               WHERE ut.pv_id = pvid;
13386
 
13387
         --- Remove from Package BuildEnv
13388
         DELETE FROM package_build_env pbe
13389
               WHERE pbe.pv_id = pvid;
13390
 
3959 dpurdie 13391
         --- Remove from Package Build Info
13392
         DELETE FROM package_build_info pbi
13393
               WHERE pbi.pv_id = pvid;
6031 dpurdie 13394
 
13395
        --- Remove from Build Plan
13396
         DELETE FROM BUILD_PLAN bp
13397
               WHERE bp.pv_id = pvid;
13398
 
13399
         --- Remove from Build Instances
13400
         DELETE FROM BUILD_INSTANCES bi
13401
               WHERE bi.pv_id = pvid;
3959 dpurdie 13402
 
1373 dpurdie 13403
         --- Remove from Build Order
13404
         DELETE FROM build_order bo
13405
               WHERE bo.pv_id = pvid;
13406
 
3959 dpurdie 13407
         --- Remove from Licencing
13408
         PK_LICENCING.REMOVE_ALL_LICENCING( pvid, 0 );
13409
 
1373 dpurdie 13410
         --- Remove from Note Manager
13411
         DELETE FROM note_manager nm
13412
               WHERE nm.nid = pvid;
13413
 
13414
         --- Remove from Action log
13415
         DELETE FROM action_log al
13416
               WHERE al.pv_id = pvid;
3959 dpurdie 13417
 
13418
         --- Remove from Do Not Ripple
13419
         DELETE FROM DO_NOT_RIPPLE dnr
13420
               WHERE dnr.PV_ID = pvid;
6031 dpurdie 13421
 
13422
        --- Remove from SDK
13423
        DELETE FROM SDK_CONTENT sc
13424
            WHERE sc.PV_ID = pvid;
13425
 
13426
        -- Remove from daemon Instruction
13427
        DELETE FROM DAEMON_INSTRUCTIONS di
13428
          WHERE di.PV_ID = pvid;
3959 dpurdie 13429
 
13430
         --- Remove from Advisory Ripple
13431
         DELETE FROM ADVISORY_RIPPLE ar
13432
               WHERE ar.PV_ID = pvid;
13433
 
13434
         --- Remove from Jira Issues
13435
         DELETE FROM JIRA_ISSUES jira
13436
               WHERE jira.PV_ID = pvid;
13437
 
13438
         --- Remove from Package Metrics
13439
         DELETE FROM package_metrics pm
13440
              WHERE pm.pv_id = pvid;
13441
 
13442
         -- Delete from Pegged Versions
13443
         DELETE FROM pegged_versions pegv
13444
              WHERE pegv.pv_id = pvid;
13445
 
1373 dpurdie 13446
         --- Finally Remove From Package Versions
13447
         --- Get Package name
6031 dpurdie 13448
         SELECT pv.pkg_id, pv.LAST_PV_ID
13449
           INTO pkgid, lastPvid
1373 dpurdie 13450
           FROM package_versions pv
13451
          WHERE pv.pv_id = pvid;
6031 dpurdie 13452
 
13453
          --- Relink packages last_pv_id
13454
          IF lastPvid is NOT NULL AND pvid !=  lastPvid THEN
13455
            UPDATE package_versions pv
13456
               SET pv.LAST_PV_ID = lastPvid
13457
             WHERE pv.LAST_PV_ID = pvid;
13458
          END IF;
13459
 
13460
         --- Delete the version
1373 dpurdie 13461
         DELETE FROM package_versions pv
13462
               WHERE pv.pv_id = pvid;
13463
 
13464
         --- Remove package name if not used any more
13465
         SELECT COUNT (pv.pv_id)
13466
           INTO ROWCOUNT
13467
           FROM package_versions pv
13468
          WHERE pv.pkg_id = pkgid;
13469
 
13470
         IF ROWCOUNT < 1
13471
         THEN
13472
            DELETE FROM PACKAGES pkg
13473
                  WHERE pkg.pkg_id = pkgid;
13474
         END IF;
13475
      END IF;
13476
   END;
13477
 
13478
/*-------------------------------------------------------------------------------------------------------*/
6031 dpurdie 13479
    PROCEDURE destroy_package_extended (
13480
      pvid               IN       NUMBER,
13481
      rtagid             IN       NUMBER,
13482
      overridewarnings   IN       NUMBER DEFAULT 0,
13483
      RESULTS            OUT      SYS_REFCURSOR
13484
      -- pvid - The pvid of the package to delete
13485
 
13486
      -- rtagid - Package is allowed to exist in this release
13487
 
13488
      -- overridewarnings
13489
      --    0   - Do not delete, just test
13490
      --    1   - Delete package if there are only advisory warnings
13491
      --    2   - Delete package even if there are FoolHardy warnings
13492
 
13493
      -- Results [OUTPUT]
13494
      --    Message Text, Error Level
13495
      --    Where error Level is
13496
      --        'A' - Advisory.
13497
      --        'F' - Foolhardy. Will damage releases, SBOMs and other packages
13498
   )
13499
   IS
13500
      LOCKED     CHAR;
13501
      pkgid      NUMBER;
13502
      ROWCOUNT   NUMBER;
13503
      lastPvid   NUMBER;
13504
 
13505
      vartbl RELMGR_PKG_DESTROY_ERR_TAB_T := RELMGR_PKG_DESTROY_ERR_TAB_T();
13506
      ii NUMBER;
13507
 
13508
      -- Add message to table that will be returned
13509
      PROCEDURE ADD_MESSAGE( p1 IN VARCHAR2, p2 IN CHAR)
13510
      IS
13511
      BEGIN
13512
        ii := ii + 1;
13513
        vartbl.extend;
13514
        vartbl(ii) := RELMGR_PKG_DESTROY_ERR_T(p1,UPPER(p2));
13515
      END; 
13516
 
13517
   BEGIN
13518
      /*
13519
      || This will destroy all package details from database.
13520
      || It will only be used to remove unwanted work in progress packages,
13521
      || or mistaken versions
13522
      */
13523
 
13524
      /*--------------- Business Rules Here -------------------*/
13525
      ii := 0;
13526
 
13527
      IF overridewarnings < 1
13528
      THEN
13529
         -- Package must not be official
13530
         SELECT pv.dlocked
13531
           INTO LOCKED
13532
           FROM package_versions pv
13533
          WHERE pv.pv_id = pvid;
13534
 
13535
         IF LOCKED = 'Y'
13536
         THEN
13537
            ADD_MESSAGE ('Package Version is locked and released.', 'A');
13538
         END IF;
13539
 
13540
         -- Cannot remove if a WIP
13541
         SELECT COUNT (pv_id)
13542
           INTO ROWCOUNT
13543
           FROM work_in_progress wip
13544
          WHERE wip.pv_id = pvid AND wip.RTAG_ID != rtagid;
13545
 
13546
         IF ROWCOUNT > 0
13547
         THEN
13548
            ADD_MESSAGE ('Version is in use as a WIP.', 'A');
13549
         END IF;
13550
 
13551
         -- Cannot remove if a PENDING
13552
         SELECT COUNT (pv_id)
13553
           INTO ROWCOUNT
13554
           FROM planned pl
13555
          WHERE pl.pv_id = pvid AND pl.RTAG_ID != rtagid;
13556
 
13557
         IF ROWCOUNT > 0
13558
         THEN
13559
            ADD_MESSAGE ('Version is Pending in a release.', 'A');
13560
         END IF;
13561
 
13562
         -- Cannot remove if in a Release
13563
         SELECT COUNT (pv_id)
13564
           INTO ROWCOUNT
13565
           FROM release_content rc
13566
          WHERE pv_id = pvid AND rc.RTAG_ID != rtagid;
13567
 
13568
         IF ROWCOUNT > 1
13569
         THEN
13570
            ADD_MESSAGE ('Version is a part of another Releases.', 'A');
13571
         END IF;
13572
 
13573
 
13574
         -- Cannot remove if a Daemon Instruction
13575
         SELECT COUNT (di.pv_id)
13576
           INTO ROWCOUNT
13577
           FROM DAEMON_INSTRUCTIONS di
13578
          WHERE di.pv_id = pvid;
13579
 
13580
         IF ROWCOUNT > 0
13581
         THEN
13582
            ADD_MESSAGE ('Version has outstanding Daemon Instruction.', 'A');
13583
         END IF;
13584
 
13585
      END IF;
13586
 
13587
      IF overridewarnings < 2
13588
      THEN
13589
         -- Cannot remove if used in BOMs
13590
         SELECT COUNT (osc.prod_id)
13591
           INTO ROWCOUNT
13592
           FROM deployment_manager.os_contents osc
13593
          WHERE osc.prod_id = pvid;
13594
 
13595
         IF ROWCOUNT > 0
13596
         THEN
13597
            ADD_MESSAGE ('Version is part of Bill-Of-Material (BOM) in Deployment Manager.', 'F');
13598
         END IF;
13599
 
13600
         -- Cannot remove if used in BOMs - Base Env
13601
         SELECT COUNT (bec.prod_id)
13602
           INTO ROWCOUNT
13603
           FROM deployment_manager.base_env_contents bec
13604
          WHERE bec.prod_id = pvid;
13605
 
13606
         IF ROWCOUNT > 0
13607
         THEN
13608
            ADD_MESSAGE ('Version is part of Base Environment in Deployment Manager.', 'F');
13609
         END IF;
13610
 
13611
         -- Cannot remove if used in an SDK
13612
         SELECT COUNT (sc.pv_id)
13613
           INTO ROWCOUNT
13614
           FROM sdk_content sc
13615
          WHERE sc.pv_id = pvid;
13616
 
13617
         IF ROWCOUNT > 0
13618
         THEN
13619
            ADD_MESSAGE ('Version is part of an SDK', 'F');
13620
         END IF;
13621
 
13622
         -- Cannot remove if Referenced as build dependency
13623
         SELECT COUNT (dep.pv_id)
13624
           INTO ROWCOUNT
13625
           FROM package_dependencies dep
13626
          WHERE dep.dpv_id = pvid;
13627
 
13628
         IF ROWCOUNT > 0
13629
         THEN
13630
            ADD_MESSAGE ('Version is referenced by a package as build dependency.', 'F');
13631
         END IF;
13632
 
13633
         -- Cannot remove if Referenced as runtime dependency
13634
         SELECT COUNT (rd.pv_id)
13635
           INTO ROWCOUNT
13636
           FROM runtime_dependencies rd
13637
          WHERE rd.rtd_id = pvid;
13638
 
13639
         IF ROWCOUNT > 0
13640
         THEN
13641
            ADD_MESSAGE ('Version is referenced by other package as a runtime dependency.', 'F');
13642
         END IF;
13643
 
13644
         -- Cannot remove if Referenced as patch
13645
         SELECT COUNT (pp.pv_id)
13646
           INTO ROWCOUNT
13647
           FROM package_patches pp
13648
          WHERE pp.patch_id = pvid;
13649
 
13650
         IF ROWCOUNT > 0
13651
         THEN
13652
            ADD_MESSAGE ('Version is used as a patch by other package.', 'F');
13653
         END IF;
13654
 
13655
      END IF;
13656
 
13657
/*-------------------------------------------------------*/
13658
      IF (ii = 0 AND overridewarnings > 0)
13659
      THEN
13660
         --- Remove From Work in Progress
13661
         DELETE FROM work_in_progress wip
13662
               WHERE wip.pv_id = pvid;
13663
 
13664
         --- Remove From Pending
13665
         DELETE FROM planned pl
13666
               WHERE pl.pv_id = pvid;
13667
 
13668
         --- Remove From Released area
13669
         DELETE FROM release_content rc
13670
               WHERE rc.pv_id = pvid;
13671
 
13672
         ---Remove From Package Processes
13673
         DELETE FROM package_processes pp
13674
               WHERE pp.pv_id = pvid;
13675
 
13676
         --- Remove Dependencies
13677
         DELETE FROM package_dependencies dep
13678
               WHERE dep.pv_id = pvid;
13679
 
13680
         DELETE FROM package_dependencies dep
13681
               WHERE dep.dpv_id = pvid;
13682
 
13683
         --- Remove Runtime dependencies
13684
         DELETE FROM runtime_dependencies rtd
13685
               WHERE rtd.pv_id = pvid;
13686
 
13687
         DELETE FROM runtime_dependencies rtd
13688
               WHERE rtd.rtd_id = pvid;
13689
 
13690
         --- Remove components
13691
         DELETE FROM product_components pc
13692
               WHERE pc.pv_id = pvid;
13693
 
13694
         DELETE FROM release_components rc
13695
               WHERE rc.pv_id = pvid;
13696
 
13697
         --- Remove From Notification History
13698
         DELETE FROM notification_history nh
13699
               WHERE nh.pv_id = pvid;
13700
 
13701
         --- Remove From Ignore Warnings
13702
         DELETE FROM ignore_warnings iw
13703
               WHERE iw.pv_id = pvid;
13704
 
13705
         --- Remove From Additional Notes
13706
         DELETE FROM additional_notes an
13707
               WHERE an.pv_id = pvid;
13708
 
13709
         --- Remove From CQ Issues
13710
         DELETE FROM cq_issues cq
13711
               WHERE cq.pv_id = pvid;
13712
 
13713
         --- Remove from Package Patches
13714
         DELETE FROM package_patches pp
13715
               WHERE pp.pv_id = pvid;
13716
 
13717
         DELETE FROM package_patches pp
13718
               WHERE pp.patch_id = pvid;
13719
 
13720
         --- Remove From Package Documents
13721
         DELETE FROM package_documents pd
13722
               WHERE pd.pv_id = pvid;
13723
 
13724
         --- Remove from Code Review
13725
         DELETE FROM code_reviews cr
13726
               WHERE cr.pv_id = pvid;
13727
 
13728
         --- Remove from Code Review URL
13729
         DELETE FROM code_review_url cru
13730
               WHERE cru.pv_id = pvid;
13731
 
13732
         --- Remove from Unit Tests
13733
         DELETE FROM unit_tests ut
13734
               WHERE ut.pv_id = pvid;
13735
 
13736
         --- Remove from Package BuildEnv
13737
         DELETE FROM package_build_env pbe
13738
               WHERE pbe.pv_id = pvid;
13739
 
13740
         --- Remove from Package Build Info
13741
         DELETE FROM package_build_info pbi
13742
               WHERE pbi.pv_id = pvid;
13743
 
13744
        --- Remove from Build Plan
13745
         DELETE FROM BUILD_PLAN bp
13746
               WHERE bp.pv_id = pvid;
13747
 
13748
         --- Remove from Build Instances
13749
         DELETE FROM BUILD_INSTANCES bi
13750
               WHERE bi.pv_id = pvid;
13751
 
13752
         --- Remove from Build Order
13753
         DELETE FROM build_order bo
13754
               WHERE bo.pv_id = pvid;
13755
 
13756
         --- Remove from Licencing
13757
         PK_LICENCING.REMOVE_ALL_LICENCING( pvid, 0 );
13758
 
13759
         --- Remove from Note Manager
13760
         DELETE FROM note_manager nm
13761
               WHERE nm.nid = pvid;
13762
 
13763
         --- Remove from Action log
13764
         DELETE FROM action_log al
13765
               WHERE al.pv_id = pvid;
13766
 
13767
         --- Remove from Do Not Ripple
13768
         DELETE FROM DO_NOT_RIPPLE dnr
13769
               WHERE dnr.PV_ID = pvid;
13770
 
13771
        --- Remove from SDK
13772
        DELETE FROM SDK_CONTENT sc
13773
            WHERE sc.PV_ID = pvid;
13774
 
13775
        -- Remove from daemon Instruction
13776
        DELETE FROM DAEMON_INSTRUCTIONS di
13777
          WHERE di.PV_ID = pvid;
13778
 
13779
         --- Remove from Advisory Ripple
13780
         DELETE FROM ADVISORY_RIPPLE ar
13781
               WHERE ar.PV_ID = pvid;
13782
 
13783
         --- Remove from Jira Issues
13784
         DELETE FROM JIRA_ISSUES jira
13785
               WHERE jira.PV_ID = pvid;
13786
 
13787
         --- Remove from Package Metrics
13788
         DELETE FROM package_metrics pm
13789
              WHERE pm.pv_id = pvid;
13790
 
13791
         -- Delete from Pegged Versions
13792
         DELETE FROM pegged_versions pegv
13793
              WHERE pegv.pv_id = pvid;
13794
 
13795
         --- Finally Remove From Package Versions
13796
         --- Get Package name
13797
         SELECT pv.pkg_id, pv.LAST_PV_ID
13798
           INTO pkgid, lastPvid
13799
           FROM package_versions pv
13800
          WHERE pv.pv_id = pvid;
13801
 
13802
          --- Relink packages last_pv_id
13803
          IF lastPvid is NOT NULL AND pvid !=  lastPvid THEN
13804
            UPDATE package_versions pv
13805
               SET pv.LAST_PV_ID = lastPvid
13806
             WHERE pv.LAST_PV_ID = pvid;
13807
          END IF;
13808
 
13809
         --- Delete the version
13810
         DELETE FROM package_versions pv
13811
               WHERE pv.pv_id = pvid;
13812
 
13813
         --- Remove package name if not used any more
13814
         SELECT COUNT (pv.pv_id)
13815
           INTO ROWCOUNT
13816
           FROM package_versions pv
13817
          WHERE pv.pkg_id = pkgid;
13818
 
13819
         IF ROWCOUNT < 1
13820
         THEN
13821
            DELETE FROM PACKAGES pkg
13822
                  WHERE pkg.pkg_id = pkgid;
13823
         END IF;
13824
      END IF;
13825
 
13826
      --- Return table of reasons the package shouldn't be destroyed
13827
       open RESULTS for select * from table(vartbl);
13828
 
13829
   END;
13830
 
13831
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 13832
   PROCEDURE new_patch (
13833
      snewpatchversion   IN       package_versions.pkg_version%TYPE,
13834
      nparentpvid        IN       NUMBER,
13835
      spatchidlist       IN       VARCHAR2,
13836
      nuserid            IN       NUMBER,
13837
      returnpatchid      OUT      NUMBER
13838
   )
13839
   IS
13840
      patchpv_id           NUMBER;
13841
      parpkg_id            NUMBER;
13842
      lastinstallorder     NUMBER;
13843
      ispatchdlocked       package_versions.dlocked%TYPE;
13844
      ssv_mm               package_versions.v_mm%TYPE;
13845
      ssv_nmm              package_versions.v_nmm%TYPE;
13846
      ssv_ext              package_versions.v_ext%TYPE;
3959 dpurdie 13847
      opatchdepcollector   relmgr_number_tab_t  := relmgr_number_tab_t ();
1373 dpurdie 13848
 
13849
      CURSOR parent_cur
13850
      IS
13851
         SELECT pv.*, pkg.pkg_name
13852
           FROM package_versions pv, PACKAGES pkg
13853
          WHERE pv.pv_id = nparentpvid AND pv.pkg_id = pkg.pkg_id;
13854
 
3959 dpurdie 13855
      parent_rec parent_cur%ROWTYPE;
1373 dpurdie 13856
 
13857
      CURSOR patch_cur
13858
      IS
13859
         SELECT pv.*, pg.pkg_name
13860
           FROM package_versions pv, PACKAGES pg
13861
          WHERE pv.pkg_id = parpkg_id
13862
            AND pv.pkg_version = snewpatchversion
13863
            AND pv.pkg_id = pg.pkg_id;
13864
 
3959 dpurdie 13865
      patch_rec  patch_cur%ROWTYPE;
1373 dpurdie 13866
 
13867
      CURSOR releases_cur
13868
      IS
13869
         SELECT rc.pv_id
13870
           FROM release_content rc
13871
          WHERE rc.pv_id = patch_rec.pv_id;
13872
 
3959 dpurdie 13873
      releases_rec releases_cur%ROWTYPE;
1373 dpurdie 13874
   BEGIN
13875
      -- Get Last Install Order
13876
      SELECT COUNT (*)
13877
        INTO lastinstallorder
13878
        FROM package_patches pp
13879
       WHERE pp.pv_id = nparentpvid;
13880
 
13881
      -- Get parent details
13882
      OPEN parent_cur;
13883
 
13884
      FETCH parent_cur
13885
       INTO parent_rec;
13886
 
13887
      parpkg_id := parent_rec.pkg_id;
13888
 
13889
      -- Find if patch exists in database
13890
      OPEN patch_cur;
13891
 
13892
      FETCH patch_cur
13893
       INTO patch_rec;
13894
 
13895
      -- Parent must be official
13896
      IF parent_rec.dlocked = 'Y'
13897
      THEN
13898
         IF patch_cur%NOTFOUND
13899
         THEN
13900
            ispatchdlocked := 'N';
13901
 
13902
            -- Create new patch version --
13903
            SELECT seq_pv_id.NEXTVAL
13904
              INTO patchpv_id
13905
              FROM DUAL;
13906
 
13907
            split_version (snewpatchversion, ssv_mm, ssv_nmm, ssv_ext);
13908
 
13909
            INSERT INTO package_versions
13910
                        (pv_id, pkg_id, pkg_version,
13911
                         dlocked, created_stamp, creator_id,
13912
                         modified_stamp, modifier_id, v_mm, v_nmm, v_ext,
13913
                         src_path,
13914
                         pv_description,
13915
                         owner_id, is_patch, last_pv_id, build_type, is_build_env_required, bs_id,
3959 dpurdie 13916
                         is_autobuildable, ripple_field
1373 dpurdie 13917
                        )
13918
                 VALUES (patchpv_id, parpkg_id, snewpatchversion,
7000 dpurdie 13919
                         ispatchdlocked, ora_sysdatetime, nuserid,
1373 dpurdie 13920
                         ora_sysdatetime, nuserid, ssv_mm, ssv_nmm, ssv_ext,
13921
                         parent_rec.src_path,
13922
                            'This is a patch to '
13923
                         || parent_rec.pkg_name
13924
                         || ' '
13925
                         || parent_rec.pkg_version,
3959 dpurdie 13926
                         nuserid, 'Y', patchpv_id, 'M', 'N', 3, 'N', parent_rec.ripple_field
1373 dpurdie 13927
                        );
13928
 
13929
            INSERT INTO package_patches
13930
                        (pv_id, patch_id, install_order)
3959 dpurdie 13931
                (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
13932
                        lastinstallorder + 1 AS install_order
13933
                   FROM package_versions pv
13934
                  WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
1373 dpurdie 13935
 
13936
            /* LOG ACTION */
6999 dpurdie 13937
            log_action (patchpv_id,
13938
                        'new_version',
13939
                        nuserid,
13940
                        'Patch version created: ' || snewpatchversion
13941
                       );
13942
            log_action (nparentpvid,
13943
                        'patch_add',
13944
                        nuserid,
13945
                        'New patch created and attached: ' || snewpatchversion
13946
                       );
1373 dpurdie 13947
         ELSE
13948
            patchpv_id := patch_rec.pv_id;
13949
            ispatchdlocked := patch_rec.dlocked;
13950
 
13951
            -- Find if pv_id exists in release content (i.e. it cannot be a patch)
13952
            OPEN releases_cur;
13953
 
13954
            FETCH releases_cur
13955
             INTO releases_rec;
13956
 
13957
            IF releases_cur%NOTFOUND
13958
            THEN
13959
               -- This pv_id is trully a patch, hence add Y to column IS_PATCH
13960
               UPDATE package_versions
13961
                  SET is_patch = 'Y'
13962
                WHERE pv_id = patchpv_id;
13963
 
13964
               INSERT INTO package_patches
13965
                           (pv_id, patch_id, install_order)
3959 dpurdie 13966
                   (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
13967
                           lastinstallorder + 1 AS install_order
13968
                      FROM package_versions pv
13969
                     WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
1373 dpurdie 13970
            END IF;
13971
 
13972
            CLOSE releases_cur;
13973
 
13974
            /* LOG ACTION */
6999 dpurdie 13975
            log_action (nparentpvid,
13976
                        'patch_add',
13977
                        nuserid,
13978
                           'Patch version was found and attached: '
13979
                        || snewpatchversion
13980
                       );
1373 dpurdie 13981
         END IF;
13982
      END IF;
13983
 
13984
      /* Create Patch Dependencies */
13985
      opatchdepcollector := in_list_number (spatchidlist);
13986
 
13987
      -- Make sure patch is unofficial before altering its dependencies
13988
      IF (opatchdepcollector.COUNT > 0) AND (ispatchdlocked = 'N')
13989
      THEN
13990
         -- Delete Existing Dependencies
13991
         DELETE FROM package_dependencies dep
13992
               WHERE dep.pv_id = patchpv_id;
13993
 
13994
         -- Insert new dependencies
13995
         INSERT INTO package_dependencies
13996
                     (pv_id, dpv_id, pkg_id, dpkg_id, build_type)
3959 dpurdie 13997
              SELECT patchpv_id AS pv_id, pv.pv_id AS dpv_id,
13998
                     parpkg_id AS pkg_id, pv.pkg_id AS dpkg_id,
13999
                     'L' AS build_type
14000
                FROM package_versions pv
14001
               WHERE pv.pv_id IN (
1373 dpurdie 14002
                      SELECT *
14003
                        FROM TABLE
14004
                                (CAST
14005
                                    (opatchdepcollector AS relmgr_number_tab_t)
14006
                                ));
14007
      END IF;
14008
 
14009
      -- Return patch_id
14010
      returnpatchid := patchpv_id;
14011
 
14012
      CLOSE parent_cur;
14013
 
14014
      CLOSE patch_cur;
14015
   EXCEPTION
14016
      WHEN DUP_VAL_ON_INDEX
14017
      THEN
14018
         raise_application_error (-20000,
14019
                                     'Patch version '
14020
                                  || snewpatchversion
14021
                                  || ' already exist.'
14022
                                 );
14023
   END;
14024
 
14025
/*-------------------------------------------------------------------------------------------------------*/
14026
   PROCEDURE obsolete_patch (
14027
      patchid            IN   NUMBER,
14028
      isobsolete         IN   CHAR,
14029
      obsoletecomments   IN   VARCHAR2,
14030
      userid             IN   NUMBER
14031
   )
14032
   IS
14033
   BEGIN
14034
      -- Update patch
14035
      UPDATE package_versions pv
14036
         SET pv.is_obsolete = isobsolete,
14037
             pv.obsolete_comments = obsoletecomments
14038
       WHERE pv.pv_id = patchid;
14039
 
14040
      /*
14041
      -- Update patch children
14042
      UPDATE PACKAGE_VERSIONS pv SET
14043
      pv.IS_OBSOLETE = IsObsolete,
14044
      pv.OBSOLETE_COMMENTS = ObsoleteComments
14045
      WHERE pv.PV_ID IN (
14046
                     SELECT DISTINCT dep.DPV_ID
14047
                       FROM PACKAGE_DEPENDENCIES dep
14048
                      WHERE dep.PV_ID = PatchId
14049
                     );
14050
 
14051
 
14052
      -- Update patch parent
14053
      UPDATE PACKAGE_VERSIONS pv SET
14054
      pv.IS_OBSOLETE = IsObsolete,
14055
      pv.OBSOLETE_COMMENTS = ObsoleteComments
14056
      WHERE pv.PV_ID IN (
14057
                     SELECT DISTINCT dep.PV_ID
14058
                       FROM PACKAGE_DEPENDENCIES dep
14059
                      WHERE dep.DPV_ID = PatchId
14060
                     );
14061
 
3959 dpurdie 14062
      */
1373 dpurdie 14063
 
14064
      /* LOG ACTION */
14065
      IF isobsolete IS NOT NULL
14066
      THEN
6999 dpurdie 14067
         log_action (patchid,
14068
                     'patch_obsolete',
14069
                     userid,
14070
                     'Obsolete patch. ' || obsoletecomments
14071
                    );
1373 dpurdie 14072
      ELSE
6999 dpurdie 14073
         log_action (patchid,
14074
                     'patch_obsolete',
14075
                     userid,
14076
                     'Undo patch obsolete.'
14077
                    );
1373 dpurdie 14078
      END IF;
14079
   END;
14080
 
14081
/*-------------------------------------------------------------------------------------------------------*/
14082
   PROCEDURE obsolete_patches (
14083
      spatchidlist       IN   VARCHAR2,
14084
      isobsolete         IN   CHAR,
14085
      obsoletecomments   IN   VARCHAR2,
14086
      userid             IN   NUMBER
14087
   )
14088
   IS
14089
   BEGIN
14090
      /*--------------- Business Rules Here -------------------*/
14091
      IF spatchidlist IS NULL
14092
      THEN
14093
         raise_application_error (-20000,
14094
                                  'Please select one or more Patches.'
14095
                                 );
14096
      END IF;
14097
 
14098
/*-------------------------------------------------------*/
14099
 
14100
      -- Update patch
14101
      UPDATE package_versions pv
14102
         SET pv.is_obsolete = isobsolete,
14103
             pv.obsolete_comments = obsoletecomments
14104
       WHERE pv.pv_id IN (
14105
                SELECT *
14106
                  FROM THE
14107
                          (SELECT CAST
14108
                                     (in_list_number (spatchidlist) AS relmgr_number_tab_t
14109
                                     )
14110
                             FROM DUAL
14111
                          ));
3959 dpurdie 14112
      /*
14113
      -- Update patch children
14114
      UPDATE PACKAGE_VERSIONS pv SET
14115
      pv.IS_OBSOLETE = IsObsolete,
14116
      pv.OBSOLETE_COMMENTS = ObsoleteComments
14117
      WHERE pv.PV_ID IN (
14118
                     SELECT DISTINCT dep.DPV_ID
14119
                       FROM PACKAGE_DEPENDENCIES dep
14120
                      WHERE dep.PV_ID = PatchId
14121
                     );
1373 dpurdie 14122
 
14123
 
3959 dpurdie 14124
      -- Update patch parent
14125
      UPDATE PACKAGE_VERSIONS pv SET
14126
      pv.IS_OBSOLETE = IsObsolete,
14127
      pv.OBSOLETE_COMMENTS = ObsoleteComments
14128
      WHERE pv.PV_ID IN (
14129
                     SELECT DISTINCT dep.PV_ID
14130
                       FROM PACKAGE_DEPENDENCIES dep
14131
                      WHERE dep.DPV_ID = PatchId
14132
                     );
1373 dpurdie 14133
 
14134
      */
14135
 
3959 dpurdie 14136
      /* LOG ACTION
14137
      IF IsObsolete IS NOT NULL THEN
6999 dpurdie 14138
         Log_Action ( PatchId, 'patch_obsolete', UserId,
14139
                     'Obsolete patch. '|| ObsoleteComments );
3959 dpurdie 14140
      ELSE
6999 dpurdie 14141
         Log_Action ( PatchId, 'patch_obsolete', UserId,
14142
                     'Undo patch obsolete.' );
3959 dpurdie 14143
      END IF;  */
1373 dpurdie 14144
   END;
14145
 
14146
/*-------------------------------------------------------------------------------------------------------*/
14147
   PROCEDURE add_process (
14148
      nprocid         IN   processes.proc_id%TYPE,
14149
      shealthtag      IN   processes.proc_name%TYPE,
14150
      sprocdesc       IN   processes.proc_description%TYPE,
14151
      scmdinterface   IN   processes.run_as%TYPE,
14152
      spkgowner       IN   processes.pkg_owner%TYPE,
14153
      sisinterface    IN   processes.is_interface%TYPE,
14154
      npvid           IN   package_processes.pv_id%TYPE,
14155
      nuserid         IN   NUMBER
14156
   )
14157
   IS
14158
      pkgname   VARCHAR2 (100);
3959 dpurdie 14159
 
1373 dpurdie 14160
   BEGIN
14161
      INSERT INTO processes
14162
                  (proc_id, proc_name, proc_description, run_as, pkg_owner,
14163
                   is_interface
14164
                  )
14165
           VALUES (nprocid, shealthtag, sprocdesc, scmdinterface, spkgowner,
14166
                   sisinterface
14167
                  );
14168
 
14169
      pk_package.add_package_process (nprocid, npvid, nuserid);
14170
   END;
14171
 
14172
/*-------------------------------------------------------------------------------------------------------*/
14173
   PROCEDURE add_package_process (
14174
      nprocidlist   IN   VARCHAR2,
14175
      npvid         IN   package_processes.pv_id%TYPE,
14176
      nuserid       IN   NUMBER
14177
   )
14178
   IS
14179
      processname   VARCHAR2 (4000);
14180
 
14181
      CURSOR proc_cur
14182
      IS
14183
         SELECT prc.proc_id
14184
           FROM processes prc
14185
          WHERE prc.proc_id IN (
14186
                   SELECT *
14187
                     FROM THE
14188
                             (SELECT CAST
14189
                                        (in_list_number (nprocidlist) AS relmgr_number_tab_t
14190
                                        )
14191
                                FROM DUAL
14192
                             ));
14193
 
3959 dpurdie 14194
      proc_rec  proc_cur%ROWTYPE;
1373 dpurdie 14195
   BEGIN
14196
      OPEN proc_cur;
14197
 
14198
      FETCH proc_cur
14199
       INTO proc_rec;
14200
 
14201
      WHILE proc_cur%FOUND
14202
      LOOP
3959 dpurdie 14203
         INSERT INTO package_processes (proc_id, pv_id)
14204
              VALUES (proc_rec.proc_id, npvid);
1373 dpurdie 14205
 
14206
         SELECT prc.proc_name
14207
           INTO processname
14208
           FROM processes prc
14209
          WHERE prc.proc_id = proc_rec.proc_id;
14210
 
14211
         -- Log Action --
6999 dpurdie 14212
         log_action (npvid,
14213
                     'process_add',
14214
                     nuserid,
14215
                     'Added process with health tag ' || processname
14216
                    );
1373 dpurdie 14217
 
14218
         FETCH proc_cur
14219
          INTO proc_rec;
14220
      END LOOP;
3959 dpurdie 14221
 
14222
      CLOSE proc_cur;
1373 dpurdie 14223
   END;
14224
 
14225
/*-------------------------------------------------------------------------------------------------------*/
14226
   PROCEDURE remove_process (
14227
      nprocid   IN   package_processes.proc_id%TYPE,
14228
      npvid     IN   package_processes.pv_id%TYPE,
14229
      nuserid   IN   NUMBER
14230
   )
14231
   IS
14232
      processname   VARCHAR2 (4000);
14233
   BEGIN
14234
      SELECT prc.proc_name
14235
        INTO processname
14236
        FROM processes prc
14237
       WHERE prc.proc_id = nprocid;
14238
 
14239
      DELETE FROM package_processes
14240
            WHERE proc_id = nprocid AND pv_id = npvid;
14241
 
14242
      -- Log Action --
6999 dpurdie 14243
      log_action (npvid,
14244
                  'process_remove',
14245
                  nuserid,
14246
                  'Removed process with health tag ' || processname
14247
                 );
1373 dpurdie 14248
   END;
14249
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14250
   /*
14251
   ** Author: Rupesh Solanki
14252
   ** Purpose: To move package versions from one release to another
14253
   ** Release: 4th September 2006
14254
   */
14255
   PROCEDURE move_package (
14256
      npvid        IN package_versions.pv_id%TYPE,
14257
      nrtagid      IN release_tags.rtag_id%TYPE,
14258
      nnewrtagid   IN release_tags.rtag_id%TYPE,
14259
      nuserid      IN NUMBER
14260
   )
14261
   IS
1373 dpurdie 14262
 
3959 dpurdie 14263
      oldrtag_name VARCHAR2(4000);newrtag_name VARCHAR2(4000);
14264
 
14265
   BEGIN
14266
      SELECT rtag_name into oldrtag_name
14267
      FROM RELEASE_TAGS
14268
      WHERE rtag_id = nrtagid;
14269
 
14270
      SELECT rtag_name into newrtag_name
14271
      FROM RELEASE_TAGS
14272
      WHERE rtag_id = nnewrtagid;
14273
 
14274
      /* Table Work In Progress*/
14275
      UPDATE WORK_IN_PROGRESS
14276
      SET RTAG_ID = nnewrtagid
14277
      WHERE RTAG_ID = nrtagid
14278
      AND PV_ID = npvid;
14279
 
14280
      /* Table PLANNED*/
14281
      UPDATE PLANNED
14282
      SET RTAG_ID = nnewrtagid
14283
      WHERE RTAG_ID = nrtagid
14284
      AND PV_ID = npvid;
14285
 
14286
      /* Table PEGGED_VERSIONS */
14287
      DELETE FROM PEGGED_VERSIONS pegv
14288
      WHERE pegv.RTAG_ID = nrtagid
14289
      AND pegv.PV_ID = npvid;
14290
 
14291
      /* Table ADVISORY_RIPPLE*/
14292
      DELETE FROM ADVISORY_RIPPLE
14293
      WHERE RTAG_ID = nrtagid
14294
      AND PV_ID = npvid;
14295
 
14296
 
1373 dpurdie 14297
      -- Log Action --
6999 dpurdie 14298
      log_action (npvid,
14299
                  'move_package_version',
14300
                  nuserid,
14301
                  'Moved package version from ' || oldrtag_name || ' to ' || newrtag_name
14302
                 );
3959 dpurdie 14303
   END;
14304
 
1373 dpurdie 14305
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14306
   /*
14307
   ** Author: Rupesh Solanki
14308
   ** Purpose: To modify the product state from integration to test to deployment
14309
   ** Release: 25th January 2006
14310
   */
14311
   PROCEDURE modify_product_state (
14312
      npvid    IN package_versions.pv_id%TYPE,
14313
      nrtagid  IN release_tags.rtag_id%TYPE,
14314
      nstateid IN product_states.state_id%TYPE,
14315
      nuserid  IN NUMBER
1373 dpurdie 14316
   ) IS
3959 dpurdie 14317
 
14318
      sStateName VARCHAR2(4000);
14319
      sRtagName VARCHAR2(4000);
14320
 
14321
   BEGIN
14322
 
14323
      UPDATE RELEASE_CONTENT
14324
      SET PRODUCT_STATE = nstateid
14325
      WHERE PV_ID = npvid
14326
      AND RTAG_ID = nrtagid;
14327
 
14328
 
14329
      SELECT STATE INTO sStateName
14330
      FROM PRODUCT_STATES
14331
      WHERE STATE_ID = nstateid;
14332
 
14333
      SELECT RTAG_NAME into sRtagName
14334
      FROM RELEASE_TAGS
14335
      WHERE RTAG_ID = nrtagid;
14336
 
14337
 
14338
      -- Log Action --
6999 dpurdie 14339
      log_action (npvid,
14340
                  'modify_product_state',
14341
                     nuserid,
14342
                     sStateName || ' in '|| sRtagName
14343
                  );
3959 dpurdie 14344
   END;
14345
/*-------------------------------------------------------------------------------------------------------*/
14346
   /*
14347
   ** Author: Jeremy Tweddle
14348
   ** Date: 24/Aug/2007
14349
   */
14350
   PROCEDURE add_code_review_url (
14351
      npvid           IN    NUMBER,
14352
      nprojid         IN    NUMBER,
14353
      surl            IN    VARCHAR2,
14354
      sreason         IN    VARCHAR2,
4553 dpurdie 14355
      ddateofreview   IN    VARCHAR2
3959 dpurdie 14356
   ) IS
14357
 
14358
      ncrid NUMBER;
14359
 
14360
   BEGIN
14361
 
14362
      SELECT seq_cr_id.NEXTVAL INTO ncrid FROM DUAL;
14363
 
4553 dpurdie 14364
      INSERT INTO code_review_url ( cr_id, pv_id, proj_id, url, reason, date_of_review, last_modified )
7000 dpurdie 14365
      VALUES ( ncrid, npvid, nprojid, surl, sreason, TO_DATE( ddateofreview,'DD/MM/YYYY' ), ora_sysdatetime );
3959 dpurdie 14366
 
14367
   END;
14368
/*-------------------------------------------------------------------------------------------------------*/
14369
   /*
14370
   ** Author: Jeremy Tweddle
14371
   ** Date: 22/Aug/2007
14372
   */
14373
   PROCEDURE update_code_review_url (
14374
      ncrid           IN    NUMBER,
14375
      nprojid         IN    NUMBER,
14376
      surl            IN    VARCHAR2,
4553 dpurdie 14377
      sreason         IN    VARCHAR2,
14378
      ddateofreview   IN    VARCHAR2
3959 dpurdie 14379
   ) IS
14380
 
14381
   BEGIN
14382
 
14383
      UPDATE code_review_url
14384
      SET url = surl,
14385
          proj_id = nprojid,
14386
          reason = sreason,
6031 dpurdie 14387
          date_of_review = TO_DATE( ddateofreview,'DD/MM/YYYY' ),
7000 dpurdie 14388
          last_modified = ora_sysdatetime
3959 dpurdie 14389
      WHERE cr_id = ncrid;
14390
 
14391
   END;
4553 dpurdie 14392
 
3959 dpurdie 14393
/*-------------------------------------------------------------------------------------------------------*/
14394
   /*
14395
   ** Author: Jeremy Tweddle
14396
   ** Date: 22/Aug/2007
14397
   */
14398
   PROCEDURE remove_code_review_url (
14399
      ncrid  IN    NUMBER
14400
   ) IS
14401
 
14402
   BEGIN
14403
      DELETE FROM code_review_url
14404
      WHERE cr_id = ncrid;
14405
   END;
14406
/*-------------------------------------------------------------------------------------------------------*/
6600 dpurdie 14407
 
14408
PROCEDURE
14409
        SET_RIPPLE_STOP (
14410
        nPVID IN RELEASE_CONTENT.PV_ID%TYPE,
14411
        nRtagId IN RELEASE_CONTENT.RTAG_ID%TYPE,
14412
        nUserId IN NUMBER,
14413
        cMode IN CHAR
14414
    ) IS
14415
    ReleaseLocation VARCHAR2(4000);
14416
    sMode VARCHAR(100);
14417
    cData CHAR;
14418
 
14419
 
14420
BEGIN
14421
 
14422
    IF (nPVID IS NULL) THEN
14423
        RAISE_APPLICATION_ERROR (-20000, 'PvId not set' );
14424
    END IF;
14425
 
14426
    IF (nRtagId IS NULL) THEN
14427
        RAISE_APPLICATION_ERROR (-20001, 'rTagId not set' );
14428
    END IF;
14429
 
14430
    cData := cMode;
14431
    If cMode = 's' THEN
14432
        sMode := 'ripple_stop';
14433
 
14434
    ELSIF cMode = 'w' THEN
14435
        sMode := 'ripple_wait';
14436
 
14437
    ELSIF cMode = 'r' THEN
14438
        sMode := 'ripple_removed';
14439
        cData := NULL;
14440
 
14441
    ELSIF cMode = 'g' THEN
14442
        sMode := 'ripple_resume';
14443
 
14444
    ELSE
14445
       RAISE_APPLICATION_ERROR (-20002, 'Unknown mode:' || cMode );
14446
 
14447
    END IF;
14448
 
14449
    -- Update the value
14450
    UPDATE RELEASE_CONTENT 
14451
    SET RIPPLE_STOP = cData
14452
    WHERE RTAG_ID = nRtagId
14453
    AND PV_ID = nPVID;
14454
 
14455
    -- Mark Release Changed for build
14456
    PK_RELEASE.SET_RELEASE_MODIFIED(nRtagId);
14457
 
14458
    /* LOG ACTION */
14459
    SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
14460
    FROM PROJECTS proj,RELEASE_TAGS rt
14461
    WHERE rt.PROJ_ID = proj.PROJ_ID
14462
    AND rt.RTAG_ID = nRtagId;
14463
 
14464
    Log_Action ( nPVID, sMode, nUserId, 'Location: '|| ReleaseLocation);
14465
 
14466
END SET_RIPPLE_STOP;
14467
 
3959 dpurdie 14468
END pk_package;
4040 dpurdie 14469
 
1374 dpurdie 14470
/
5892 dpurdie 14471
 
6031 dpurdie 14472
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 14473
  GRANT DEBUG ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 14474
--------------------------------------------------------
14475
--  DDL for Package Body PK_PLANNED
14476
--------------------------------------------------------
14477
 
5172 dpurdie 14478
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PLANNED" IS
3959 dpurdie 14479
 
1373 dpurdie 14480
/*
14481
------------------------------
3959 dpurdie 14482
||  Last Modified:  G.Huddy
14483
||  Modified Date:  05/Aug/2008
14484
||  Body Version:   1.2
1373 dpurdie 14485
------------------------------
14486
*/
14487
 
14488
 
14489
/*-------------------------------------------------------------------------------------------------------*/
5384 dpurdie 14490
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, OPR IN CHAR DEFAULT 'R' ) IS
1373 dpurdie 14491
 
3959 dpurdie 14492
    oldPvId NUMBER;
14493
    ReleaseLocation VARCHAR2(4000);
14494
    IsPatch CHAR(1) := NULL;
14495
    sLocation VARCHAR2(4000) := NULL;
14496
    nRtagIdLocation NUMBER;
1373 dpurdie 14497
 
14498
 
14499
 
3959 dpurdie 14500
BEGIN
14501
    /*--------------- Business Rules Here -------------------*/
14502
    /*-------------------------------------------------------*/
6031 dpurdie 14503
 
5384 dpurdie 14504
    IF OPR = 'R' THEN
14505
      BEGIN
14506
          -- Check if Exists in "Work in progress" anywhere in the world, except "Closed mode" releases
14507
          SELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME, rt.RTAG_ID  INTO sLocation, nRtagIdLocation
14508
            FROM PLANNED pl,
14509
                 RELEASE_TAGS rt,
14510
                 PROJECTS proj
14511
           WHERE pl.PV_ID = newPvId
14512
             AND pl.RTAG_ID = rt.RTAG_ID
14513
             AND rt.OFFICIAL != 'Y'
14514
             AND rt.PROJ_ID = proj.PROJ_ID;
6031 dpurdie 14515
 
5384 dpurdie 14516
          EXCEPTION
14517
              WHEN NO_DATA_FOUND THEN
14518
                  sLocation := NULL;
14519
      END;
6031 dpurdie 14520
 
5384 dpurdie 14521
      IF (sLocation IS NULL) OR (nRtagIdLocation = RtagId) THEN
6031 dpurdie 14522
 
5384 dpurdie 14523
          -- Add to "Pending" area
14524
          INSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID, OPERATION )
14525
          VALUES( RtagId, newPvId, ViewId, OPR );
6031 dpurdie 14526
 
5384 dpurdie 14527
          /* LOG ACTION */
14528
          SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
14529
            FROM PROJECTS proj,
14530
                 RELEASE_TAGS rt
14531
           WHERE rt.PROJ_ID = proj.PROJ_ID
14532
             AND rt.RTAG_ID = RtagId;
6031 dpurdie 14533
 
5384 dpurdie 14534
          Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );
6031 dpurdie 14535
 
5384 dpurdie 14536
      ELSE
14537
            RAISE_APPLICATION_ERROR (-20000, 'This version is already in Pending Area at '|| sLocation ||'.' );
14538
        END IF;
6031 dpurdie 14539
 
3959 dpurdie 14540
    ELSE
6031 dpurdie 14541
      -- Not adding a WIP. Merging a package version
5384 dpurdie 14542
      MERGE_PACKAGE ( newPvId, ViewId, RtagId, UserId, OPR );
3959 dpurdie 14543
    END IF;
14544
 
14545
END;
1373 dpurdie 14546
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14547
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 14548
 
3959 dpurdie 14549
    ReleaseLocation VARCHAR2(4000);
1373 dpurdie 14550
 
3959 dpurdie 14551
BEGIN
1373 dpurdie 14552
 
3959 dpurdie 14553
    /*--------------- Business Rules Here -------------------*/
14554
    /*-------------------------------------------------------*/
1373 dpurdie 14555
 
14556
 
3959 dpurdie 14557
    -- Get release location for logging pusposes
14558
    SELECT proj.PROJ_NAME  ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
14559
      FROM PROJECTS proj,
14560
           RELEASE_TAGS rt
14561
     WHERE rt.PROJ_ID = proj.PROJ_ID
14562
       AND rt.RTAG_ID = RtagId;
1373 dpurdie 14563
 
6031 dpurdie 14564
    -- Ensure that package is not marked as Pending any more
14565
    UPDATE package_versions
14566
       SET DLOCKED  = 'N'
14567
     WHERE PV_ID  = PvId
14568
       AND DLOCKED != 'Y';
1373 dpurdie 14569
 
3959 dpurdie 14570
    -- Delete from Work In Progress
14571
    DELETE
14572
      FROM PLANNED pl
14573
     WHERE pl.RTAG_ID = RtagId
14574
       AND pl.PV_ID = PvId;
1373 dpurdie 14575
 
3959 dpurdie 14576
    Log_Action ( PvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );
14577
 
14578
 
14579
 
14580
 
14581
END;
1373 dpurdie 14582
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14583
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
1373 dpurdie 14584
 
3959 dpurdie 14585
    ReturnValue NUMBER;
1373 dpurdie 14586
 
3959 dpurdie 14587
BEGIN
14588
    SELECT pl.VIEW_ID INTO ReturnValue
14589
      FROM PLANNED pl
14590
     WHERE pl.RTAG_ID = RtagId
14591
       AND pl.PV_ID = PvId;
14592
 
14593
    RETURN ReturnValue;
14594
END;
14595
/*-------------------------------------------------------------------------------------------------------*/
14596
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
14597
 
14598
    IsBaseView CHAR(1);
14599
 
14600
BEGIN
14601
 
14602
    -- Check if the view is BASE VIEW
14603
    SELECT vi.BASE_VIEW INTO IsBaseView
14604
      FROM VIEWS vi
14605
     WHERE vi.VIEW_ID = ViewId;
14606
 
14607
 
5172 dpurdie 14608
    IF (IsBaseView IN ('Y', 'S')) THEN
3959 dpurdie 14609
        -- Get Base view content
14610
        OPEN RecordSet FOR
14611
        SELECT 0 AS PKG_STATE,
14612
               NULL AS DEPRECATED_STATE,
14613
               pv.pv_id,
14614
               pkg.pkg_name,
14615
               pv.pkg_version,
14616
               pv.dlocked,
14617
               pv.pv_description,
14618
               pv.BUILD_TYPE,
14619
               rel.operation
14620
          FROM PLANNED rel,
14621
               packages pkg,
14622
               package_versions pv
14623
         WHERE pv.pkg_id = pkg.pkg_id
14624
           AND rel.pv_id = pv.pv_id
14625
           AND rel.VIEW_ID = ViewId
14626
           AND rel.RTAG_ID = RtagId
14627
         ORDER BY UPPER(pkg.PKG_NAME);
14628
 
14629
    ELSE
14630
 
14631
        -- Get non base view content
14632
        OPEN RecordSet FOR
14633
        SELECT 0 AS PKG_STATE,
14634
               NULL AS DEPRECATED_STATE,
14635
               pv.pv_id,
14636
               pkg.pkg_name,
14637
               pv.pkg_version,
14638
               pv.dlocked,
14639
               pv.pv_description,
14640
               pv.BUILD_TYPE,
14641
               rel.operation
14642
          FROM PLANNED rel,
14643
               packages pkg,
14644
               package_versions pv,
14645
               VIEW_DEF vd
14646
         WHERE pv.pkg_id = pkg.pkg_id
14647
           AND rel.pv_id = pv.pv_id
14648
           AND rel.RTAG_ID = RtagId
14649
           AND vd.VIEW_ID = ViewId
14650
           AND vd.PKG_ID = pv.PKG_ID
14651
         ORDER BY UPPER(pkg.PKG_NAME);
14652
 
14653
    END IF;
14654
 
14655
 
14656
END;
14657
/*-------------------------------------------------------------------------------------------------------*/
14658
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
14659
 
14660
BEGIN
14661
 
14662
    UPDATE PLANNED pl SET
14663
    pl.VIEW_ID = NewViewId
14664
    WHERE pl.PV_ID = PvId
14665
      AND pl.RTAG_ID = RtagId;
14666
 
14667
END;
14668
/*-------------------------------------------------------------------------------------------------------*/
14669
-- DEVI-45275 This new function supports the ability to insert into the planned table, and existing
14670
-- version of a package as part of a release-to-release merge operation carried out within release manager.
14671
-- DEVI-49594 This function has subsequently been changed to allow a merge operation to cancel its
14672
-- opposite operation, if the opposite already exists in the planned table. This supports user activity
14673
-- via the Release Manager merge manager display
14674
 
14675
PROCEDURE MERGE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, mergeOperation IN CHAR ) IS
14676
 
14677
    ReleaseLocation VARCHAR2(4000);
14678
 
14679
        entryExists NUMBER;
14680
        existingOperation CHAR;
14681
BEGIN
14682
    /*--------------- Business Rules Here -------------------*/
14683
    /*-------------------------------------------------------*/
14684
 
14685
      -- Determine if the specified PV_ID already exists in the planned table....
14686
      SELECT COUNT (pl.pv_id) INTO entryExists
14687
      FROM PLANNED pl
14688
      WHERE pl.pv_id = newPvId
14689
      AND pl.rtag_id = RtagId
14690
      AND pl.view_id = ViewId;
14691
 
14692
      -- If the specified PV_ID already exists in the planned table....
14693
      IF entryExists = 1 THEN
14694
 
14695
         -- Get the operation for the existing entry
14696
         SELECT pl.operation INTO existingOperation
14697
         FROM PLANNED pl
14698
         WHERE pl.pv_id = newPvId
14699
         AND pl.rtag_id = RtagId
14700
         AND pl.view_id = ViewId;
14701
 
14702
         -- Is the specified merge operation the opposite of the existing entry?
14703
         -- If it is not, then there is nothing to do, otherwise...
14704
         -- NOTE: A = Add, S = Subtract
14705
         IF (mergeOperation = 'S' AND existingOperation = 'A')
14706
            OR (mergeOperation = 'A' AND existingOperation = 'S') THEN
14707
 
14708
           -- It is the opposite, so effectively it cancels the existing entry
14709
           -- Remove the entry from the planned table
14710
           DELETE
14711
            FROM PLANNED pl
14712
           WHERE pl.pv_id = newPvId
14713
             AND pl.rtag_id = RtagId
14714
             AND pl.view_id = ViewId;
14715
 
14716
           -- Log action
14717
           SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
14718
             FROM PROJECTS proj,
14719
                  RELEASE_TAGS rt
14720
            WHERE rt.PROJ_ID = proj.PROJ_ID
14721
              AND rt.RTAG_ID = RtagId;
14722
 
14723
           Log_Action ( newPvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 14724
         END IF;
3959 dpurdie 14725
      ELSE
14726
         -- Add to Planned tabled
14727
         INSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID, OPERATION )
14728
         VALUES( RtagId, newPvId, ViewId, mergeOperation );
1373 dpurdie 14729
 
3959 dpurdie 14730
         -- Log Action
14731
         SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
14732
          FROM PROJECTS proj,
14733
               RELEASE_TAGS rt
14734
         WHERE rt.PROJ_ID = proj.PROJ_ID
14735
         AND   rt.RTAG_ID = RtagId;
14736
 
14737
         Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 14738
      END IF;
14739
 
3959 dpurdie 14740
END;
1373 dpurdie 14741
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14742
END PK_PLANNED;
4040 dpurdie 14743
 
6999 dpurdie 14744
/
4040 dpurdie 14745
--------------------------------------------------------
14746
--  DDL for Package Body PK_PROJECT
14747
--------------------------------------------------------
14748
 
5172 dpurdie 14749
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PROJECT" IS
1373 dpurdie 14750
 
3959 dpurdie 14751
    /*------------------------------------------------------------------------*/
14752
    PROCEDURE update_base_url (
14753
    nprojid   IN  projects.proj_id%TYPE,
14754
    sbaseurl  IN  VARCHAR2
14755
    ) IS
14756
    BEGIN
1373 dpurdie 14757
 
3959 dpurdie 14758
    UPDATE projects
14759
    SET base_url = sbaseurl
14760
    WHERE proj_id = nprojid;
14761
 
14762
    END update_base_url;
14763
 
14764
/*------------------------------------------------------------------------*/
14765
    PROCEDURE update_project_config (
14766
    nprojid   IN  projects.proj_id%TYPE,
14767
    sbaseurl  IN  VARCHAR2,
14768
    sjirakey  IN  VARCHAR2
14769
    ) IS
14770
    BEGIN
14771
 
14772
    UPDATE projects
14773
    SET base_url = sbaseurl,
14774
        jira_key = sjirakey
14775
    WHERE proj_id = nprojid;
14776
 
14777
    END update_project_config;
14778
    /*------------------------------------------------------------------------*/
14779
 
14780
    END pk_project;
4040 dpurdie 14781
 
6999 dpurdie 14782
/
4040 dpurdie 14783
--------------------------------------------------------
14784
--  DDL for Package Body PK_RELEASE
14785
--------------------------------------------------------
14786
 
5172 dpurdie 14787
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_RELEASE" IS
3959 dpurdie 14788
 
1373 dpurdie 14789
/*-------------------------------------------------------------------------------------------------------*/
6031 dpurdie 14790
PROCEDURE New_Release ( sReleaseName IN VARCHAR2,
14791
                        sReleaseComments IN VARCHAR2,
14792
                        nProjId IN NUMBER,
14793
                        nSourceRtagId IN NUMBER,
14794
                        sIsBranched IN CHAR,
5502 dpurdie 14795
                        nUserId IN NUMBER,
14796
                        cOfficial IN CHAR DEFAULT 'N'
14797
                        ) IS
1373 dpurdie 14798
 
3959 dpurdie 14799
RtagId NUMBER;
14800
ParentRtagId NUMBER;
14801
RecCount NUMBER := 0;
14802
VtreeId NUMBER;
1373 dpurdie 14803
 
3959 dpurdie 14804
BEGIN
14805
   /*--------------- Business Rules Here -------------------*/
14806
   -- Check for missing parameters
14807
   IF (sReleaseName IS NULL) OR (nUserId IS NULL)
14808
   THEN
14809
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId );
1373 dpurdie 14810
 
3959 dpurdie 14811
   END IF;
1373 dpurdie 14812
 
3959 dpurdie 14813
 
14814
   -- Check for duplicate Release Names
14815
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
14816
     FROM RELEASE_TAGS rt
14817
    WHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )
14818
      AND rt.PROJ_ID = nProjId;
14819
 
14820
   IF (RecCount > 0) THEN
14821
      RAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');
14822
   END IF;
14823
   /*-------------------------------------------------------*/
14824
 
14825
 
14826
   -- Get rtag_id
14827
   SELECT SEQ_RTAG_ID.NEXTVAL INTO RtagId FROM DUAL;
14828
 
14829
   SELECT SEQ_VTREE_ID.NEXTVAL INTO VtreeId FROM DUAL;
14830
 
14831
 
14832
 
14833
   -- Get Parent RtagId
14834
   ParentRtagId := GET_PARENT_RTAG ( RtagId, nSourceRtagId, sIsBranched );
14835
 
14836
   -- If the parent RTAG is NOT in this project then we cannot use it.
14837
   -- We must re-assign the parent to be the new release's RTAG_ID instead
14838
   -- else it will not show up in the projects release tree (DEVI-55480)
14839
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
14840
     FROM RELEASE_TAGS rt
14841
    WHERE rt.RTAG_ID = ParentRtagId
14842
      AND rt.PROJ_ID = nProjId;
14843
 
14844
   IF (RecCount = 0) THEN
14845
     ParentRtagId := RtagId;
14846
   END IF;
14847
 
14848
   -- Create new release
14849
   INSERT INTO RELEASE_TAGS ( RTAG_ID, RTAG_NAME, DESCRIPTION, CREATED_STAMP, CREATOR_ID,
14850
                        OFFICIAL, REBUILD_ENV, REBUILD_STAMP,
14851
                        PARENT_RTAG_ID, PROJ_ID, VTREE_ID )
14852
   VALUES ( RtagId,
14853
          sReleaseName,
14854
          sReleaseComments,
7000 dpurdie 14855
          ora_sysdatetime,
3959 dpurdie 14856
          nUserId,
5502 dpurdie 14857
          cOfficial,
3959 dpurdie 14858
          'N',
14859
          0,
14860
          ParentRtagId,
14861
          nProjId,
14862
          VtreeId );
14863
 
14864
   -- If a source release is provided, clone its config spec branch information into the new release (DEVI-56650)
14865
   IF (NOT nSourceRtagId IS NULL)
14866
   THEN
14867
      UPDATE RELEASE_TAGS rtd
14868
      SET rtd.config_spec_branch = (SELECT rts.CONFIG_SPEC_BRANCH FROM RELEASE_TAGS rts WHERE rts.RTAG_ID = nSourceRtagId)
14869
      WHERE rtd.RTAG_ID = RtagId;
14870
   END IF;
14871
 
14872
   -- Update display Order
14873
   UPDATE_DISPLAY_ORDER ( nProjId );
14874
 
14875
   /* Log Project Action */
14876
   Log_Project_Action ( nProjId, 'new_release', nUserId, sReleaseName, RtagId );
14877
 
14878
 
14879
   -- Import Release Contents
14880
   IF (NOT nSourceRtagId IS NULL) THEN
5502 dpurdie 14881
      Import_Release_Contents ( nSourceRtagId, RtagId, nUserId, 1 );
3959 dpurdie 14882
   END IF;
14883
 
14884
END;
14885
/*-------------------------------------------------------------------------------------------------------*/
14886
PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER ) IS
14887
 
14888
 
14889
BEGIN
14890
 
14891
 
14892
   /*--------------- Business Rules Here -------------------*/
14893
   /*-------------------------------------------------------*/
14894
 
14895
   UPDATE RELEASE_TAGS urt SET
14896
   urt.DISPLAY_ORDER = (
14897
                  SELECT qry.REC_NUM
14898
                    FROM (
14899
                        SELECT rel.*, ROWNUM AS REC_NUM
14900
                          FROM (
14901
 
14902
                                SELECT rt.RTAG_ID,
14903
                                    rt.DISPLAY_ORDER,
14904
                                     DECODE( rt.PARENT_RTAG_ID,
14905
                                             rt.RTAG_ID, 0, rt.PARENT_RTAG_ID ) AS PARENT_RTAG_ID
14906
                                FROM RELEASE_TAGS rt
14907
                               WHERE rt.PROJ_ID = nProjId
14908
 
14909
                                ) rel
14910
                        START WITH rel.PARENT_RTAG_ID = 0
14911
                        CONNECT BY PRIOR rel.RTAG_ID = rel.PARENT_RTAG_ID
14912
                        ORDER SIBLINGS BY rel.DISPLAY_ORDER
14913
                        ) qry
14914
                     WHERE qry.RTAG_ID = urt.RTAG_ID
14915
                  )
14916
   WHERE urt.PROJ_ID = nProjId;
14917
 
14918
END;
14919
/*-------------------------------------------------------------------------------------------------------*/
14920
PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER  ) IS
14921
 
14922
   nIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
14923
   SeqNum NUMBER;
14924
 
14925
BEGIN
14926
 
14927
 
14928
   /*--------------- Business Rules Here -------------------*/
14929
   /*-------------------------------------------------------*/
14930
 
14931
   nIdCollector := IN_LIST_NUMBER ( sRtagIdList );
14932
 
14933
   -- Set start sequence number
14934
   SeqNum := 1;
14935
 
14936
   FOR i IN 1..nIdCollector.COUNT
14937
   LOOP
14938
 
14939
      -- Update new display order
14940
      UPDATE RELEASE_TAGS rt SET
14941
         rt.DISPLAY_ORDER = SeqNum
14942
       WHERE rt.PROJ_ID = nProjId
14943
         AND rt.RTAG_ID = nIdCollector(i);
14944
 
14945
      SeqNum := SeqNum + 1;
14946
 
14947
   END LOOP;
14948
 
14949
END;
14950
/*-------------------------------------------------------------------------------------------------------*/
5502 dpurdie 14951
PROCEDURE Update_Release ( nRtagId IN NUMBER,
14952
                           sReleaseName IN VARCHAR2,
14953
                           sReleaseComments IN VARCHAR2,
14954
                           nParentRtagId IN NUMBER,
14955
                           nMASSRtagId IN NUMBER,
14956
                           nConfigSpecBranch IN VARCHAR2,
14957
                           sOwnerEmail IN VARCHAR2,
14958
                           nUserId IN NUMBER,
14959
                           cState IN VARCHAR,
5384 dpurdie 14960
                           nBuildAge in NUMBER,
14961
                           cLxr in CHAR) IS
3959 dpurdie 14962
 
14963
RecCount NUMBER := 0;
14964
ProjId NUMBER;
14965
 
14966
BEGIN
14967
 
14968
 
14969
   /*--------------- Business Rules Here -------------------*/
14970
   -- Check for missing parameters
14971
   IF (sReleaseName IS NULL) OR (nUserId IS NULL) OR (nRtagId IS NULL)
14972
   THEN
14973
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId ||', nRtagId='|| nRtagId);
14974
 
14975
   END IF;
14976
 
14977
 
14978
   -- Check for duplicate Release Names
14979
   SELECT rt.PROJ_ID INTO ProjId
14980
     FROM RELEASE_TAGS rt
14981
    WHERE rt.RTAG_ID = nRtagId;
14982
 
14983
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
14984
     FROM RELEASE_TAGS rt
14985
    WHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )
14986
      AND rt.RTAG_ID != nRtagId
14987
      AND rt.PROJ_ID = ProjId;
14988
 
14989
 
14990
   IF (RecCount > 0) THEN
14991
      RAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');
14992
   END IF;
14993
   /*-------------------------------------------------------*/
14994
 
14995
 
14996
 
14997
   -- Update release details
14998
   UPDATE RELEASE_TAGS rt SET
14999
   rt.RTAG_NAME = sReleaseName,
15000
   rt.DESCRIPTION = sReleaseComments,
15001
   rt.PARENT_RTAG_ID = nParentRtagId,
15002
   rt.ASSOC_MASS_REF = nMASSRtagId,
15003
   rt.CONFIG_SPEC_BRANCH = nConfigSpecBranch,
15004
   rt.OWNER_EMAIL = sOwnerEmail,
5172 dpurdie 15005
   rt.PRODUCT_STATE_USED = cState,
5384 dpurdie 15006
   rt.BUILD_AGE = nBuildAge,
15007
   rt.LXR = cLxr
3959 dpurdie 15008
   WHERE rt.RTAG_ID = nRtagId;
15009
 
15010
   -- Update display Order
15011
   UPDATE_DISPLAY_ORDER ( ProjId );
15012
 
15013
   /* Log Project Action */
15014
   Log_Project_Action ( ProjId, 'update_release', nUserId, 'Release Name: <br>Release Comments:', nRtagId );
15015
 
15016
 
15017
 
15018
 
15019
END;
15020
/*-------------------------------------------------------------------------------------------------------*/
15021
PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER ) IS
15022
 
15023
   RecCount NUMBER := 0;
15024
   sReleaseId VARCHAR2(4000);
15025
   ProjId NUMBER;
15026
 
15027
BEGIN
15028
   /*--------------- Business Rules Here -------------------*/
15029
   IF (nRtagId IS NULL)
15030
   THEN
15031
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId  );
15032
   END IF;
15033
 
15034
 
15035
 
15036
   -- Check for any kids
15037
   SELECT COUNT( rt.RTAG_ID ) INTO RecCount
15038
     FROM RELEASE_TAGS rt
15039
    WHERE rt.PARENT_RTAG_ID = nRtagId
15040
      AND rt.RTAG_ID != rt.PARENT_RTAG_ID;
15041
 
15042
   IF (RecCount > 0) THEN
15043
      RAISE_APPLICATION_ERROR (-20000, 'Cannot destroy this release. You need to destroy its children releases first.'  );
15044
   END IF;
15045
   /*-------------------------------------------------------*/
15046
 
15047
   -- Clear the release contents
15048
   Clean_Release_Contents ( nRtagId, nUserId );
15049
 
15050
   /* Log Project Action */
15051
   SELECT rt.PROJ_ID, rt.RTAG_NAME ||'['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']' INTO ProjId, sReleaseId
15052
     FROM RELEASE_TAGS rt
15053
    WHERE rt.RTAG_ID = nRtagId;
15054
 
15055
   Log_Project_Action ( ProjId, 'destroy_release', nUserId, sReleaseId, nRtagId );
15056
 
15057
 
15058
   -- Remove Release
15059
   DELETE
15060
     FROM RELEASE_TAGS rt
15061
    WHERE rt.RTAG_ID = nRtagId;
15062
 
15063
 
15064
 
15065
END;
15066
/*-------------------------------------------------------------------------------------------------------*/
5502 dpurdie 15067
PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER, nMode IN NUMBER default 0 ) IS
3959 dpurdie 15068
 
15069
   sSourceLocation VARCHAR2(4000);
15070
   sTargetLocation VARCHAR2(4000);
15071
   ProjId NUMBER;
6999 dpurdie 15072
   nIsOpen NUMBER;
3959 dpurdie 15073
   RconId NUMBER;
15074
 
15075
   -- this cursor gets the source release daemon configurations, ensuring that the
15076
   -- first record will be the master daemon, and subsequent records will be the slaves.
15077
   CURSOR curSrcReleaseConfigs IS
4308 dpurdie 15078
    SELECT daemon_hostname, gbe_id, gbe_buildfilter, bmcon_id, daemon_mode
3959 dpurdie 15079
     FROM RELEASE_CONFIG rc
15080
    WHERE rc.RTAG_ID = nSourceRtagId
15081
    ORDER BY rc.daemon_mode;
15082
    recSrcReleaseConfigs curSrcReleaseConfigs%ROWTYPE;
15083
 
15084
    -- this cursor looks for target release daemons
15085
   CURSOR curTgtReleaseConfigs IS
15086
    SELECT rcon_id
15087
     FROM RELEASE_CONFIG rc
15088
    WHERE rc.RTAG_ID = nTargetRtagId;
15089
    recTgtReleaseConfigs curTgtReleaseConfigs%ROWTYPE;
15090
 
15091
    -- this cursor looks for target release daemon run level entries
15092
   CURSOR curTgtReleaseConfigRunLevel IS
6999 dpurdie 15093
    SELECT pause
3959 dpurdie 15094
     FROM RUN_LEVEL rl
15095
    WHERE rl.RCON_ID = recTgtReleaseConfigs.rcon_id;
15096
    recTgtReleaseConfigRunLevel curTgtReleaseConfigRunLevel%ROWTYPE;
15097
 
15098
BEGIN
15099
   /*--------------- Business Rules Here -------------------*/
15100
   IF (nSourceRtagId IS NULL) OR (nTargetRtagId IS NULL)
15101
   THEN
15102
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nSourceRtagId= '|| nSourceRtagId ||', nTargetRtagId='|| nTargetRtagId );
15103
   END IF;
15104
 
15105
   IF (nSourceRtagId = nTargetRtagId) THEN
15106
      RAISE_APPLICATION_ERROR (-20000, 'Cannot import release contents from same release.' );
15107
   END IF;
15108
 
15109
 
6999 dpurdie 15110
   -- Check if Target release is in OPEN-ish mode
5502 dpurdie 15111
   IF nMode = 0 THEN
6999 dpurdie 15112
     SELECT count(*)  INTO  nIsOpen
5502 dpurdie 15113
       FROM RELEASE_TAGS rt
6999 dpurdie 15114
      WHERE rt.RTAG_ID = nTargetRtagId
15115
      AND rt.OFFICIAL in ('N', 'R', 'C');
6031 dpurdie 15116
 
6999 dpurdie 15117
     IF (nIsOpen > 1) THEN
5502 dpurdie 15118
        RAISE_APPLICATION_ERROR (-20000, 'Release must be in OPEN mode to import the contents.' );
15119
     END IF;
15120
  END IF;
3959 dpurdie 15121
 
15122
   -- check that the target release's daemons are all paused before we allow an import operation
15123
   OPEN curTgtReleaseConfigs;
15124
   FETCH curtgtReleaseConfigs INTO recTgtReleaseConfigs;
6999 dpurdie 15125
 
3959 dpurdie 15126
 
15127
   WHILE curTgtReleaseConfigs%FOUND
15128
   LOOP
15129
      OPEN curTgtReleaseConfigRunLevel;
15130
      FETCH curTgtReleaseConfigRunLevel INTO recTgtReleaseConfigRunLevel;
15131
      IF curTgtReleaseConfigRunLevel%FOUND THEN
6999 dpurdie 15132
         IF (recTgtReleaseConfigRunLevel.pause IS NULL) OR
15133
            (recTgtReleaseConfigRunLevel.pause <> 2) THEN
3959 dpurdie 15134
            RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
15135
         END IF;
1373 dpurdie 15136
      ELSE
3959 dpurdie 15137
         -- we don't know what the daemon run level is so err on the side of caution
15138
         RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
1373 dpurdie 15139
      END IF;
3959 dpurdie 15140
      CLOSE curTgtReleaseConfigRunLevel;
1373 dpurdie 15141
 
3959 dpurdie 15142
      FETCH curTgtReleaseConfigs INTO recTgtReleaseConfigs;
15143
   END LOOP;
1373 dpurdie 15144
 
3959 dpurdie 15145
   CLOSE curTgtReleaseConfigs;
1373 dpurdie 15146
 
15147
 
3959 dpurdie 15148
   /*-------------------------------------------------------*/
1373 dpurdie 15149
 
3959 dpurdie 15150
   -- Clean target contents
15151
   Clean_Release_Contents ( nTargetRtagId, nUserId );
1373 dpurdie 15152
 
3959 dpurdie 15153
   -- Import Released Area Contents
5502 dpurdie 15154
   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 15155
   SELECT nTargetRtagId AS RTAG_ID,
15156
         rc.PV_ID,
15157
         rc.BASE_VIEW_ID,
15158
         rc.INSERT_STAMP,
15159
         rc.INSERTOR_ID,
15160
         rc.PKG_STATE,
15161
         rc.PKG_ID,
5384 dpurdie 15162
         rc.DEPRECATED_STATE,
15163
         rc.PRODUCT_STATE,
15164
         rc.SDKTAG_ID
3959 dpurdie 15165
     FROM RELEASE_CONTENT rc
15166
    WHERE rc.RTAG_ID = nSourceRtagId;
15167
 
15168
 
15169
   -- Import any Pegged Version settings from the source release
15170
   INSERT INTO PEGGED_VERSIONS ( RTAG_ID, PV_ID )
15171
   SELECT nTargetRtagId AS RTAG_ID,
15172
          pegv.PV_ID
15173
     FROM PEGGED_VERSIONS pegv
15174
    WHERE pegv.RTAG_ID = nSourceRtagId;
15175
 
15176
   -- Import any Advisory Ripple settings from the source release
15177
   INSERT INTO ADVISORY_RIPPLE ( RTAG_ID, PV_ID )
15178
   SELECT nTargetRtagId AS RTAG_ID,
15179
          avr.PV_ID
15180
     FROM ADVISORY_RIPPLE avr
15181
    WHERE avr.RTAG_ID = nSourceRtagId;
15182
 
6999 dpurdie 15183
   -- Import Ignore Warning states
15184
   INSERT INTO IGNORE_WARNINGS ( RTAG_ID, PV_ID, DPV_ID )
15185
   SELECT nTargetRtagId AS RTAG_ID,
15186
          igw.PV_ID,
15187
          igw.DPV_ID
15188
     FROM IGNORE_WARNINGS igw
15189
    WHERE igw.rtag_id = nSourceRtagId;
3959 dpurdie 15190
 
6999 dpurdie 15191
 
3959 dpurdie 15192
   --Import Release Configuration Information
15193
   OPEN curSrcReleaseConfigs;
15194
   FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
15195
 
6999 dpurdie 15196
   WHILE curSrcReleaseConfigs%FOUND
3959 dpurdie 15197
   LOOP
15198
      -- add a daemon to the target release
5502 dpurdie 15199
      PK_BUILDAPI.duplicate_daemon_config( nTargetRtagId,
15200
                                     recSrcReleaseConfigs.bmcon_id,
15201
                                     recSrcReleaseConfigs.daemon_hostname,
15202
                                     recSrcReleaseConfigs.gbe_id,
4308 dpurdie 15203
                                     recSrcReleaseConfigs.daemon_mode ,
15204
                                     recSrcReleaseConfigs.gbe_buildfilter );
3959 dpurdie 15205
 
15206
      FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
15207
   END LOOP;
15208
   CLOSE curSrcReleaseConfigs;
15209
 
15210
   /* Log Project Action */
15211
   -- Get Source Location
15212
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sSourceLocation
15213
     FROM RELEASE_TAGS rt,
15214
           PROJECTS pr
15215
    WHERE rt.PROJ_ID = pr.PROJ_ID
15216
      AND rt.RTAG_ID = nSourceRtagId;
15217
 
15218
   -- Get Target Location
15219
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sTargetLocation
15220
     FROM RELEASE_TAGS rt,
15221
           PROJECTS pr
15222
    WHERE rt.PROJ_ID = pr.PROJ_ID
15223
      AND rt.RTAG_ID = nTargetRtagId;
15224
 
15225
   -- Get project id
15226
   SELECT rt.PROJ_ID  INTO  ProjId
15227
     FROM RELEASE_TAGS rt
15228
    WHERE rt.RTAG_ID = nTargetRtagId;
15229
 
15230
   Log_Project_Action ( ProjId, 'import_release_contents', nUserId, 'SOURCE: '|| sSourceLocation ||'   TARGET: '|| sTargetLocation, nTargetRtagId );
15231
END;
15232
 
15233
 
15234
 
1373 dpurdie 15235
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 15236
PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER ) IS
1373 dpurdie 15237
 
3959 dpurdie 15238
   RecCount NUMBER;
15239
        rconIdList VARCHAR2(4000);
1373 dpurdie 15240
 
3959 dpurdie 15241
BEGIN
15242
   /*--------------- Business Rules Here -------------------*/
15243
   IF (nRtagId IS NULL)
15244
   THEN
15245
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId  );
15246
   END IF;
1373 dpurdie 15247
 
15248
 
3959 dpurdie 15249
   -- Check if other release references this release
15250
   SELECT COUNT( rl.RTAG_ID ) INTO RecCount
15251
     FROM RELEASE_LINKS rl
15252
    WHERE rl.REF_RTAG_ID = nRtagId;
1373 dpurdie 15253
 
3959 dpurdie 15254
   IF (RecCount > 0) THEN
15255
      RAISE_APPLICATION_ERROR (-20000, 'This release is referenced by other release and cannot be destroyed.'  );
15256
   END IF;
15257
   /*-------------------------------------------------------*/
1373 dpurdie 15258
 
3959 dpurdie 15259
   -- Delete Release links
15260
   DELETE
15261
     FROM RELEASE_LINKS rl
15262
    WHERE rl.RTAG_ID = nRtagId;
15263
 
15264
   -- Delete ignore warning
15265
   DELETE
15266
     FROM IGNORE_WARNINGS iw
15267
    WHERE iw.RTAG_ID = nRtagId;
15268
 
15269
 
15270
   -- Delete Build Order cached calculations
15271
   DELETE
15272
     FROM BUILD_ORDER bo
15273
    WHERE bo.RTAG_ID = nRtagId;
15274
 
15275
 
15276
   -- Delete Notification History
15277
   DELETE
15278
     FROM NOTIFICATION_HISTORY nh
15279
    WHERE nh.RTAG_ID = nRtagId;
15280
 
15281
 
15282
   -- Delete Released Area Contents
15283
   DELETE
15284
     FROM RELEASE_CONTENT rc
15285
    WHERE rc.RTAG_ID = nRtagId;
15286
 
15287
 
15288
   -- Delete Work In Progress Area Contents
15289
   DELETE
15290
     FROM WORK_IN_PROGRESS wip
15291
    WHERE wip.RTAG_ID = nRtagId;
15292
 
15293
 
15294
   -- Delete Pending Area Contents
15295
   DELETE
15296
     FROM PLANNED pl
15297
    WHERE pl.RTAG_ID = nRtagId;
15298
 
15299
   -- Delete Deprecated Packages
15300
   DELETE
15301
     FROM DEPRECATED_PACKAGES dp
15302
    WHERE dp.RTAG_ID = nRtagId;
15303
 
15304
   -- Delete Project Action Log
15305
   DELETE
15306
     FROM PROJECT_ACTION_LOG pal
15307
    WHERE pal.RTAG_ID = nRtagId;
15308
 
15309
   -- Delete Do Not Ripple Contents
15310
   DELETE
15311
     FROM DO_NOT_RIPPLE dnr
15312
    WHERE dnr.RTAG_ID = nRtagId;
15313
 
15314
   -- Delete Dash Board Contents
15315
   DELETE
15316
     FROM DASH_BOARD db
15317
    WHERE db.RTAG_ID = nRtagId;
15318
 
15319
   -- Delete Advisory Ripple Contents
15320
   DELETE
15321
     FROM ADVISORY_RIPPLE adr
15322
    WHERE adr.RTAG_ID = nRtagId;
15323
 
15324
   -- Delete Archive Action Log
15325
   DELETE
15326
     FROM ARCHIVE_ACTION_LOG aal
15327
    WHERE aal.RTAG_ID = nRtagId;
15328
 
15329
   -- Delete Daemons For This Release
15330
   FOR rcon IN (SELECT rc.RCON_ID FROM RELEASE_CONFIG rc WHERE rc.RTAG_ID = nRtagId )
15331
   LOOP
15332
      rconIdList := rconIdList || rcon.RCON_ID || ',';
15333
   END LOOP;
15334
 
15335
   pk_buildapi.DELETE_DAEMON(rconIdList);
15336
 
15337
   -- Delete Release Metrics Contents
15338
   DELETE
15339
     FROM RELEASE_METRICS rm
15340
    WHERE rm.RTAG_ID = nRtagId;
15341
 
15342
   -- Delete Release Configuration Contents
15343
   DELETE
15344
     FROM RELEASE_CONFIG rc
15345
    WHERE rc.RTAG_ID = nRtagId;
15346
 
15347
   -- Delete Pegged Version Contents
15348
   DELETE
15349
     FROM PEGGED_VERSIONS pegv
15350
    WHERE pegv.RTAG_ID = nRtagId;
15351
 
15352
END;
15353
/*-------------------------------------------------------------------------------------------------------*/
15354
FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR )  RETURN NUMBER IS
15355
 
15356
   nSourceParentRtagId NUMBER;
15357
 
15358
BEGIN
15359
   /*--------------- Business Rules Here -------------------*/
15360
   IF (nRtagId IS NULL) OR (cIsBranch IS NULL)
15361
   THEN
15362
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId ||', cIsBranch= '|| cIsBranch );
15363
   END IF;
15364
   /*-------------------------------------------------------*/
15365
 
15366
 
15367
   IF ( nSourceRtagId IS NULL ) THEN
15368
      -- Create new on main branch
15369
      RETURN nRtagId;
15370
 
15371
   ELSE
15372
      -- Create from source rtag_id
15373
 
15374
      -- Find parent of Source RtagId
15375
      SELECT rt.PARENT_RTAG_ID INTO nSourceParentRtagId
15376
        FROM RELEASE_TAGS rt
15377
       WHERE rt.RTAG_ID = nSourceRtagId;
15378
 
15379
      IF (UPPER(cIsBranch) = 'Y') THEN
15380
         RETURN nSourceRtagId;
15381
      ELSE
15382
         IF (nSourceRtagId = nSourceParentRtagId) THEN
15383
            RETURN nRtagId;
15384
         ELSE
15385
            RETURN nSourceParentRtagId;
1373 dpurdie 15386
         END IF;
15387
      END IF;
15388
 
3959 dpurdie 15389
 
15390
   END IF;
15391
 
15392
 
15393
END;
1373 dpurdie 15394
/*-------------------------------------------------------------------------------------------------------*/
15395
 
3959 dpurdie 15396
-- PROCEDURE Get_Next_Version ( nSourceRtagId IN NUMBER,
15397
--                       sNextVersion OUT VARCHAR2,
15398
--                       nNextLifeCycle OUT NUMBER,
15399
--                       nParentRtagId OUT NUMBER,
15400
--                       nProjId IN NUMBER ) IS
15401
--
15402
-- SourceBranchCount NUMBER;
15403
-- ProjRootVersion VARCHAR2(4000);
15404
-- LastLifeCycle NUMBER;
15405
-- ROOT_VERSION_NOT_FOUND NUMBER := -1;
15406
-- SET_PARENT_AS_YOURSELF NUMBER := -1;
15407
--
15408
-- SourceProjId NUMBER;
15409
-- SourceVersion RELEASE_TAGS.RTAG_VERSION%TYPE;
15410
-- SourceLifeCycle RELEASE_TAGS.RTAG_LIFE_CYCLE%TYPE;
15411
--
15412
-- BEGIN
15413
--    /*--------------- Business Rules Here -------------------*/
15414
--    /*-------------------------------------------------------*/
15415
--
15416
--
15417
--    BEGIN
15418
--       -- Get Project root version
15419
--       SELECT rt.RTAG_VERSION INTO ProjRootVersion
15420
--         FROM RELEASE_TAGS rt
15421
--        WHERE rt.PROJ_ID = nProjId
15422
--          AND rt.RTAG_ID = rt.PARENT_RTAG_ID;
15423
--
15424
--       EXCEPTION
15425
--       WHEN NO_DATA_FOUND THEN
15426
--       ProjRootVersion := ROOT_VERSION_NOT_FOUND;
15427
--    END;
15428
--
15429
--
15430
--
15431
--
15432
--    BEGIN
15433
--       -- Get info for source rtagid
15434
--       SELECT rt.PROJ_ID, rt.RTAG_VERSION, rt.RTAG_LIFE_CYCLE  INTO  SourceProjId, SourceVersion, SourceLifeCycle
15435
--         FROM RELEASE_TAGS rt
15436
--        WHERE rt.RTAG_ID = nSourceRtagId;
15437
--
15438
--       EXCEPTION
15439
--       WHEN NO_DATA_FOUND THEN
15440
--       SourceProjId := NULL;
15441
--       SourceVersion := NULL;
15442
--       SourceLifeCycle := NULL;
15443
--    END;
15444
--
15445
--
15446
--    IF (nSourceRtagId IS NULL)  OR  ( SourceProjId != nProjId ) THEN
15447
--
15448
--       /* Blank Release Required  OR  Release imported from other project */
15449
--
15450
--       IF (ProjRootVersion = ROOT_VERSION_NOT_FOUND) THEN
15451
--          /* No Releases found in the project, hence calculate next version available.  */
15452
--
15453
--          -- Set parent rtag
15454
--          nParentRtagId := SET_PARENT_AS_YOURSELF;
15455
--
15456
--
15457
--          BEGIN
15458
--             -- Get Next Available Global Root Version
15459
--             SELECT MAX( TO_NUMBER( rt.RTAG_VERSION ) )  INTO  ProjRootVersion
15460
--               FROM RELEASE_TAGS rt
15461
--              WHERE rt.RTAG_ID = rt.PARENT_RTAG_ID;
15462
--
15463
--             -- Set Next Rtag Version
15464
--             sNextVersion := CAST( ProjRootVersion + 1 AS VARCHAR2 );
15465
--
15466
--             -- Restart Lifecycle
15467
--             nNextLifeCycle := 0;
15468
--
15469
--
15470
--             EXCEPTION
15471
--             WHEN NO_DATA_FOUND THEN
15472
--             -- Release Manager has no releases, hence start from 1
15473
--             sNextVersion := '1';
15474
--             nNextLifeCycle := 0;
15475
--
15476
--          END;
15477
--
15478
--
15479
--
15480
--       ELSE
15481
--          /* Releases found in this project. */
15482
--
15483
--          SELECT qry.RTAG_ID, qry.RTAG_LIFE_CYCLE  INTO nParentRtagId, LastLifeCycle
15484
--            FROM (
15485
--                SELECT rt.RTAG_ID, rt.RTAG_LIFE_CYCLE
15486
--                  FROM RELEASE_TAGS rt
15487
--                 WHERE rt.PROJ_ID = nProjId
15488
--                   AND rt.RTAG_VERSION = ProjRootVersion
15489
--                 ORDER BY rt.RTAG_LIFE_CYCLE DESC
15490
--                  ) qry
15491
--           WHERE ROWNUM = 1;
15492
--
15493
--
15494
--          -- Set same Rtag Version
15495
--          sNextVersion := ProjRootVersion;
15496
--
15497
--          -- Increase Lifecycle
15498
--          nNextLifeCycle := LastLifeCycle + 1;
15499
--
15500
--       END IF;
15501
--
15502
--
15503
--
15504
--    ELSE
15505
--       /* Create Release From other release within this project */
15506
--
15507
--       -- Set parent id
15508
--       nParentRtagId := nSourceRtagId;
15509
--
15510
--
15511
--       -- Get number of source branches
15512
--       SELECT COUNT(rt.RTAG_ID) INTO SourceBranchCount
15513
--         FROM RELEASE_TAGS rt
15514
--        WHERE rt.PROJ_ID = nProjId
15515
--          AND rt.PARENT_RTAG_ID = nSourceRtagId;
15516
--
15517
--
15518
--       IF SourceBranchCount = 0 THEN
15519
--          /* Release is Head (i.e. Tip on its branch ) */
15520
--
15521
--          -- Set Next Rtag Version
15522
--          sNextVersion := SourceVersion;
15523
--
15524
--          -- Increase Lifecycle
15525
--          nNextLifeCycle := SourceLifeCycle + 1;
15526
--
15527
--
15528
--       ELSIF SourceBranchCount = 1 THEN
15529
--          /* Release IS NOT Head, but can be branched */
15530
--
15531
--          -- Set Next Rtag Version
15532
--          sNextVersion := SourceVersion ||'.'|| SourceLifeCycle;
15533
--
15534
--          -- Reset Lifecycle to 1
15535
--          nNextLifeCycle := 1;
15536
--
15537
--
15538
--       ELSE
15539
--          -- Limit of two branches is reached
15540
--          RAISE_APPLICATION_ERROR (-20000, 'This release is already branched and cannot be branched again. ');
15541
--
15542
--       END IF;
15543
--
15544
--
15545
--
15546
--
15547
--
15548
--
15549
--    END IF;
15550
--
15551
--
15552
-- END;
15553
 
15554
/*-------------------------------------------------------------------------------------------------------*/
15555
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
15556
 
15557
   IsBaseView CHAR(1);
15558
 
15559
BEGIN
15560
 
15561
   -- Check if the view is BASE VIEW
15562
   SELECT vi.BASE_VIEW INTO IsBaseView
15563
     FROM VIEWS vi
15564
    WHERE vi.VIEW_ID = ViewId;
15565
 
5172 dpurdie 15566
   IF (IsBaseView IN ('Y', 'S')) THEN
3959 dpurdie 15567
      -- Get Base view content
15568
      OPEN RecordSet FOR
15569
      SELECT DECODE ( rel.pkg_state, NULL, 0, rel.pkg_state ) AS PKG_STATE,
15570
            rel.deprecated_state,
15571
            pv.pv_id,
15572
            pkg.pkg_name,
15573
            pv.pkg_version,
15574
            pv.dlocked,
15575
            pv.pv_description,
15576
            pv.BUILD_TYPE
15577
        FROM release_content rel,
15578
             packages pkg,
15579
             package_versions pv
15580
       WHERE pv.pkg_id = pkg.pkg_id
15581
         AND rel.pv_id = pv.pv_id
15582
         AND rel.BASE_VIEW_ID = ViewId
15583
         AND rel.RTAG_ID = RtagId
15584
       ORDER BY UPPER(pkg.PKG_NAME);
15585
 
15586
   ELSE
15587
 
15588
       -- Get non base view content
15589
      OPEN RecordSet FOR
15590
      SELECT DECODE ( rel.pkg_state, NULL, 0, rel.pkg_state ) AS PKG_STATE,
15591
            rel.deprecated_state,
15592
            pv.pv_id,
15593
            pkg.pkg_name,
15594
            pv.pkg_version,
15595
            pv.dlocked,
15596
            pv.pv_description,
15597
            pv.BUILD_TYPE
15598
        FROM release_content rel,
15599
             packages pkg,
15600
             package_versions pv,
15601
            VIEW_DEF vd
15602
       WHERE pv.pkg_id = pkg.pkg_id
15603
         AND rel.pv_id = pv.pv_id
15604
         AND vd.VIEW_ID = ViewId
15605
         AND vd.PKG_ID = pv.PKG_ID
15606
         AND rel.RTAG_ID = RtagId
15607
       ORDER BY UPPER(pkg.PKG_NAME);
15608
 
15609
   END IF;
15610
 
15611
 
15612
 
15613
 
15614
END;
15615
/*-------------------------------------------------------------------------------------------------------*/
4585 dpurdie 15616
  -- Add or Replace a package to the specified release
3959 dpurdie 15617
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
15618
   ReleaseLocation VARCHAR2(4000);
15619
   nPkgId NUMBER;
15620
   sVExt VARCHAR2(4000);
15621
   IsPatch PACKAGE_VERSIONS.IS_PATCH%TYPE := 'N';
5172 dpurdie 15622
   default_pegged CHAR := 'N';
15623
   default_advisory_ripple CHAR := 'N';
3959 dpurdie 15624
 
15625
   -- Find package for replacement
15626
   CURSOR curReplacePkg IS
15627
    SELECT pv.PV_ID
15628
     FROM RELEASE_CONTENT rc,
15629
           PACKAGE_VERSIONS pv
15630
    WHERE rc.PV_ID = pv.PV_ID
15631
      AND rc.RTAG_ID = RtagId
15632
      AND pv.PKG_ID = nPkgId
15633
      AND NVL( pv.V_EXT, 'LINK_A_NULL' ) = NVL( sVExt, 'LINK_A_NULL' );
15634
    recReplacePkg curReplacePkg%ROWTYPE;
15635
 
15636
BEGIN
15637
   -- Get is_patch, pkg_id and v_ext
5502 dpurdie 15638
   SELECT pv.IS_PATCH, pv.PKG_ID, pv.V_EXT
5172 dpurdie 15639
     INTO IsPatch, nPkgId, sVExt
3959 dpurdie 15640
     FROM PACKAGE_VERSIONS pv
15641
    WHERE pv.PV_ID = newPvId;
15642
 
15643
   -- Never put patch in relesed area
15644
   IF (IsPatch != 'Y') OR (IsPatch IS NULL) THEN
15645
 
15646
      -- Try to get a package to be replaced with this new one.
15647
      -- Use unique constraint of PKG_ID and V_EXT
15648
      OPEN curReplacePkg;
15649
       FETCH curReplacePkg INTO recReplacePkg;
15650
 
15651
       IF curReplacePkg%FOUND THEN
15652
         -- Replace package
15653
         REPLACE_PACKAGE ( newPvId, recReplacePkg.PV_ID, RtagId, UserId );
15654
 
15655
      ELSE
15656
         -- Add new package
15657
         INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )
7000 dpurdie 15658
         VALUES( RtagId, newPvId, ViewId, ora_sysdatetime, UserId, 0);
5502 dpurdie 15659
 
5172 dpurdie 15660
        -- Insert default package flags
15661
        -- Get Package Level defaults
5502 dpurdie 15662
 
15663
        SELECT pkg.default_pegged, pkg.DEFAULT_ADVISORY_RIPPLE
5172 dpurdie 15664
         INTO  default_pegged, default_advisory_ripple
15665
         FROM  PACKAGES pkg
5502 dpurdie 15666
        WHERE  pkg.PKG_ID = nPkgId;
3959 dpurdie 15667
 
5172 dpurdie 15668
        -- Apply to the newly inserted package
15669
        IF default_pegged = 'Y' THEN
15670
          INSERT INTO PEGGED_VERSIONS ( RTAG_ID, PV_ID ) VALUES (RtagId, newPvId);
15671
          -- Log_Action ( newPvId, 'action', UserId, 'Set default package peg' );
15672
        END IF;
5502 dpurdie 15673
 
5172 dpurdie 15674
        IF default_advisory_ripple = 'Y' THEN
15675
          INSERT INTO ADVISORY_RIPPLE ( RTAG_ID, PV_ID ) VALUES (RtagId, newPvId);
15676
          -- Log_Action ( newPvId, 'action', UserId, 'Set default advisory ripple' );
15677
        END IF;
3959 dpurdie 15678
 
6600 dpurdie 15679
        -- Mark Release as changed
5172 dpurdie 15680
        SET_RELEASE_MODIFIED(RtagId);
15681
        RUN_POST_ACTIONS(newPvId, RtagId);
5502 dpurdie 15682
 
3959 dpurdie 15683
          /* LOG ACTION */
15684
         SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
15685
           FROM PROJECTS proj,
15686
                 RELEASE_TAGS rt
15687
          WHERE rt.PROJ_ID = proj.PROJ_ID
15688
            AND rt.RTAG_ID = RtagId;
15689
 
15690
         Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );
15691
 
1373 dpurdie 15692
      END IF;
3959 dpurdie 15693
      CLOSE curReplacePkg;
15694
   END IF;
5172 dpurdie 15695
END;
3959 dpurdie 15696
 
1373 dpurdie 15697
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 15698
PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 15699
 
3959 dpurdie 15700
   ReleaseLocation VARCHAR2(4000);
15701
   sPkgVersion VARCHAR2(4000);
5172 dpurdie 15702
   nSdkTag NUMBER;
6600 dpurdie 15703
   cPersistRippleStop CHAR;
15704
   cRippleStop CHAR;
3959 dpurdie 15705
BEGIN
6600 dpurdie 15706
   -- Extract essential information
15707
      SELECT SDKTAG_ID, PERSIST_RIPPLE_STOP INTO nSdkTag, cPersistRippleStop FROM RELEASE_CONTENT
5172 dpurdie 15708
      WHERE rtag_id = RtagId
15709
       AND pv_id = oldPvId;
5502 dpurdie 15710
 
6600 dpurdie 15711
   -- Trap SDK Replacement
15712
   -- This is a last ditch check. The application should not allow this condition to happen
5172 dpurdie 15713
     If nSdkTag IS NOT NULL  THEN
15714
       raise_application_error (-20000, 'Attempt to replace a package provided by an SDK.');
15715
     END IF;
6600 dpurdie 15716
 
15717
   -- Determine new value for ripple_stop
15718
   cRippleStop := NULL;
15719
   IF cPersistRippleStop is NOT NULL THEN
15720
      cRippleStop := 's';
15721
   END IF;
3959 dpurdie 15722
 
15723
   -- Replace Package
15724
    UPDATE RELEASE_CONTENT
15725
       SET pv_id = newPvId,
7000 dpurdie 15726
           insert_stamp = ora_sysdatetime,
3959 dpurdie 15727
           insertor_id = UserId,
6600 dpurdie 15728
           product_state = NULL,
15729
           ripple_stop = cRippleStop
3959 dpurdie 15730
     WHERE rtag_id = RtagId
15731
       AND pv_id = oldPvId;
15732
 
15733
   -- update the pegging table
15734
   UPDATE PEGGED_VERSIONS
15735
      SET pv_id = newPvId
15736
     WHERE rtag_id = RtagId
15737
       AND pv_id = oldPvId;
15738
 
15739
   -- update the advisory_ripple table
15740
   UPDATE ADVISORY_RIPPLE
15741
      SET pv_id = newPvId
15742
     WHERE rtag_id = RtagId
15743
       AND pv_id = oldPvId;
15744
 
15745
    /* LOG ACTION */
15746
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
15747
     FROM PROJECTS proj,
15748
           RELEASE_TAGS rt
15749
    WHERE rt.PROJ_ID = proj.PROJ_ID
15750
      AND rt.RTAG_ID = RtagId;
15751
 
15752
   SELECT pv.PKG_VERSION INTO sPkgVersion
15753
     FROM PACKAGE_VERSIONS pv
15754
    WHERE pv.PV_ID = newPvId;
15755
 
5172 dpurdie 15756
   SET_RELEASE_MODIFIED(RtagId);
3959 dpurdie 15757
   Log_Action ( oldPvId, 'replaced_with', UserId, 'Replacing with: '|| sPkgVersion ||' at '|| ReleaseLocation );
15758
   Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );
15759
 
15760
END;
15761
/*-------------------------------------------------------------------------------------------------------*/
15762
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
15763
   ReleaseLocation VARCHAR2(4000);
5172 dpurdie 15764
   nSdkTag NUMBER;
3959 dpurdie 15765
BEGIN
5172 dpurdie 15766
   -- Trap SDK Package Deletion
15767
   -- This is a last ditch check. The application should not allow this condition to happen
15768
      SELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENT
15769
      WHERE rtag_id = RtagId
15770
       AND pv_id = PvId;
5502 dpurdie 15771
 
5172 dpurdie 15772
     If nSdkTag IS NOT NULL  THEN
15773
       raise_application_error (-20000, 'Attempt to delete a package provided by an SDK.');
15774
     END IF;
3959 dpurdie 15775
 
15776
   -- Delete old package
15777
   DELETE
15778
     FROM RELEASE_CONTENT rc
15779
    WHERE rc.PV_ID = PvId
15780
      AND rc.RTAG_ID = RtagId;
15781
 
15782
 
15783
   /* LOG ACTION */
15784
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
15785
     FROM PROJECTS proj,
15786
          RELEASE_TAGS rt
15787
    WHERE rt.PROJ_ID = proj.PROJ_ID
15788
      AND rt.RTAG_ID = RtagId;
15789
 
15790
   Log_Action ( PvId, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );
15791
 
15792
 
15793
END;
15794
/*-------------------------------------------------------------------------------------------------------*/
15795
PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
15796
   ReleaseLocation VARCHAR2(4000);
15797
 
15798
   CURSOR curMatchingPackage IS
15799
    SELECT mpv.PV_ID
15800
     FROM RELEASE_CONTENT rc,
15801
           PACKAGE_VERSIONS mpv,
15802
         PACKAGE_VERSIONS pv
15803
    WHERE rc.PV_ID = mpv.PV_ID
15804
      AND rc.RTAG_ID = RtagId
15805
      AND pv.PV_ID = PvId
15806
      AND pv.PKG_ID = mpv.PKG_ID
15807
      AND NVL( pv.V_EXT, '|LINK_A_NULL|' ) = NVL( mpv.V_EXT, '|LINK_A_NULL|' );
15808
    recMatchingPackage curMatchingPackage%ROWTYPE;
15809
 
15810
BEGIN
15811
 
15812
   OPEN curMatchingPackage;
15813
    FETCH curMatchingPackage INTO recMatchingPackage;
15814
 
15815
    IF curMatchingPackage%FOUND THEN
15816
      -- Delete old package
15817
      DELETE
15818
        FROM RELEASE_CONTENT rc
15819
       WHERE rc.PV_ID = recMatchingPackage.PV_ID
15820
         AND rc.RTAG_ID = RtagId;
15821
 
15822
 
15823
      /* LOG ACTION */
15824
      SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
15825
        FROM PROJECTS proj,
15826
              RELEASE_TAGS rt
15827
       WHERE rt.PROJ_ID = proj.PROJ_ID
15828
         AND rt.RTAG_ID = RtagId;
15829
 
15830
      Log_Action ( recMatchingPackage.PV_ID, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );
15831
 
15832
   END IF;
15833
 
15834
 
15835
   CLOSE curMatchingPackage;
15836
 
15837
 
15838
 
15839
 
15840
END;
15841
/*-------------------------------------------------------------------------------------------------------*/
15842
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
15843
 
15844
   ReturnValue NUMBER;
15845
 
15846
BEGIN
15847
   SELECT rc.BASE_VIEW_ID INTO ReturnValue
15848
     FROM RELEASE_CONTENT rc
15849
    WHERE rc.RTAG_ID = RtagId
15850
      AND rc.PV_ID = PvId;
15851
 
15852
   RETURN ReturnValue;
15853
END;
15854
/*-------------------------------------------------------------------------------------------------------*/
15855
PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER ) IS
15856
 
15857
BEGIN
15858
   -- Reset Ignore warnings up-the-tree
15859
   RESET_IGNORE_WARNINGS ( TO_CHAR(PvId), RtagId );
15860
 
15861
   -- Refresh Package states
15862
   TOUCH_RELEASE ( RtagId );
15863
 
15864
END;
15865
/*-------------------------------------------------------------------------------------------------------*/
15866
PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER ) IS
15867
   CURSOR curReleases IS
15868
    SELECT rc.RTAG_ID
15869
     FROM RELEASE_CONTENT rc
15870
    WHERE rc.PV_ID = PvId;
15871
    recReleases curReleases%ROWTYPE;
15872
 
15873
BEGIN
15874
 
15875
   OPEN curReleases;
15876
    FETCH curReleases INTO recReleases;
15877
 
15878
   WHILE curReleases%FOUND
15879
   LOOP
15880
 
15881
      RUN_POST_ACTIONS ( PvId, recReleases.RTAG_ID );
15882
 
15883
      FETCH curReleases INTO recReleases;
15884
   END LOOP;
15885
 
15886
   CLOSE curReleases;
15887
 
15888
END;
15889
/*-------------------------------------------------------------------------------------------------------*/
15890
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
15891
 
15892
BEGIN
15893
 
15894
   UPDATE RELEASE_CONTENT rc SET
15895
   rc.BASE_VIEW_ID = NewViewId
15896
   WHERE rc.PV_ID = PvId
15897
     AND rc.RTAG_ID = RtagId;
15898
 
15899
END;
15900
/*-------------------------------------------------------------------------------------------------------*/
15901
PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 ) IS
15902
 
15903
   RowCount NUMBER;
15904
 
15905
 
15906
   CURSOR curPackageClash IS
15907
   SELECT pkg.PKG_NAME,
15908
         er.*
15909
     FROM (
15910
 
15911
           /* Get existing referenced packages */
15912
         SELECT pv.PKG_ID,
15913
                pv.V_EXT
15914
           FROM RELEASE_LINKS rl,
15915
                 RELEASE_CONTENT rc,
15916
                 PACKAGE_VERSIONS pv
15917
          WHERE rl.RTAG_ID = nRtagId
15918
            AND rl.REF_RTAG_ID = rc.RTAG_ID
15919
            AND rc.PV_ID = pv.PV_ID
15920
 
15921
            ) er,
15922
         (
15923
 
15924
         /* Get current reference packages */
15925
         SELECT pv.PKG_ID,
15926
                pv.V_EXT
15927
           FROM RELEASE_CONTENT rc,
15928
                 PACKAGE_VERSIONS pv
15929
          WHERE rc.RTAG_ID = nRefRtagId
15930
            AND rc.PV_ID = pv.PV_ID
15931
 
15932
         ) cr,
15933
         PACKAGES PKG
15934
    WHERE er.PKG_ID = cr.PKG_ID
15935
      AND NVL(er.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
15936
      AND er.PKG_ID = pkg.PKG_ID;
15937
 
15938
   recPackageClash curPackageClash%ROWTYPE;
15939
 
15940
BEGIN
15941
   /*--------------- Business Rules Here -------------------*/
15942
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
15943
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
15944
   END IF;
15945
 
15946
   IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THEN
15947
      RAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );
15948
   END IF;
15949
   /*-------------------------------------------------------*/
15950
   ProblemString := NULL;
15951
 
15952
 
15953
   -- Check if release already has references
15954
   SELECT COUNT(rl.RTAG_ID)  INTO  RowCount
15955
     FROM RELEASE_LINKS rl
15956
    WHERE rl.RTAG_ID = nRtagId;
15957
 
15958
 
15959
   IF RowCount > 0 THEN
15960
      -- Found existing references
15961
 
15962
      -- Make sure there is no package clashes
15963
      OPEN curPackageClash;
15964
       FETCH curPackageClash INTO recPackageClash;
15965
 
15966
      IF curPackageClash%FOUND THEN
15967
 
5502 dpurdie 15968
         ProblemString := ProblemString ||'Following is partial list of package already referenced from other release:'|| PK_PACKAGE.CRLF;
3959 dpurdie 15969
 
15970
         WHILE curPackageClash%FOUND
15971
         LOOP
5502 dpurdie 15972
            EXIT WHEN LENGTH( ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT  || PK_PACKAGE.CRLF ) > 200;   -- Do not allow variable overflow
3959 dpurdie 15973
 
5502 dpurdie 15974
            ProblemString := ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT  || PK_PACKAGE.CRLF;
3959 dpurdie 15975
 
15976
            FETCH curPackageClash INTO recPackageClash;
15977
         END LOOP;
15978
 
1373 dpurdie 15979
      END IF;
15980
 
3959 dpurdie 15981
      CLOSE curPackageClash;
15982
 
15983
 
15984
   ELSE
15985
      -- No references found, hence reference a release
15986
 
15987
 
15988
      -- Remove exising package from this release to be referenced
15989
      REMOVE_RELEASE_REFERENCE ( nRtagId, nRefRtagId);
15990
 
15991
 
15992
      -- Add new linked packages to release
15993
      INSERT INTO RELEASE_CONTENT rc (RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE)
15994
      SELECT nRtagId,
15995
            rc.PV_ID,
15996
            rc.BASE_VIEW_ID,
15997
            rc.INSERT_STAMP,
15998
            rc.INSERTOR_ID,
15999
            rc.PKG_STATE
16000
        FROM RELEASE_CONTENT rc
16001
       WHERE rc.RTAG_ID = nRefRtagId;
16002
 
16003
 
16004
 
16005
      -- Copy ignore warnings for referenced packages
16006
      INSERT INTO IGNORE_WARNINGS iw (RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE)
16007
      SELECT nRtagId,
16008
            iw.PV_ID,
16009
            iw.DPV_ID,
16010
            iw.IS_PATCH_IGNORE
16011
        FROM IGNORE_WARNINGS iw,
16012
              RELEASE_CONTENT rc
16013
       WHERE iw.RTAG_ID = rc.RTAG_ID
16014
         AND iw.PV_ID = rc.PV_ID
16015
         AND rc.RTAG_ID = nRefRtagId;
16016
 
16017
 
16018
 
16019
      -- Reference release
16020
      INSERT INTO RELEASE_LINKS (RTAG_ID, REF_RTAG_ID)
16021
      VALUES ( nRtagId, nRefRtagId );
16022
 
16023
 
16024
      -- Refresh Package states
16025
      TOUCH_RELEASE ( nRtagId );
16026
 
16027
   END IF;
16028
 
16029
 
16030
END;
1373 dpurdie 16031
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 16032
PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER ) IS
1373 dpurdie 16033
 
3959 dpurdie 16034
 
16035
BEGIN
16036
   /*--------------- Business Rules Here -------------------*/
16037
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
16038
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
16039
   END IF;
16040
 
16041
   IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THEN
16042
      RAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );
16043
   END IF;
16044
 
16045
   /*-------------------------------------------------------*/
16046
 
16047
 
16048
   -- Remove ignore warnings for those packages who use referenced packages
16049
   DELETE FROM IGNORE_WARNINGS iw
16050
    WHERE iw.RTAG_ID = nRtagId
16051
      AND iw.DPV_ID IN (
16052
                        SELECT dep.DPV_ID
16053
                       FROM (
16054
 
16055
                           /* Get referenced packages */
16056
                           SELECT pv.PKG_ID,
16057
                                  pv.V_EXT
16058
                             FROM RELEASE_CONTENT rc,
16059
                                   PACKAGE_VERSIONS pv
16060
                            WHERE rc.RTAG_ID = nRefRtagId
16061
                              AND rc.PV_ID = pv.PV_ID
16062
 
16063
                           ) cr,
16064
                           (
16065
 
16066
                           /* Get all dependencies for current release */
16067
                           SELECT DISTINCT
16068
                                 pv.PKG_ID,
16069
                                 pv.V_EXT,
16070
                                 dep.DPV_ID
16071
                             FROM RELEASE_CONTENT rc,
16072
                                 PACKAGE_DEPENDENCIES dep,
16073
                                 PACKAGE_VERSIONS pv
16074
                            WHERE rc.RTAG_ID = nRtagId
16075
                              AND rc.PV_ID = dep.PV_ID
16076
                              AND dep.PV_ID = pv.PV_ID
16077
 
16078
                           ) dep
16079
                      WHERE dep.PKG_ID = cr.PKG_ID
16080
                        AND NVL(dep.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
16081
                     );
16082
 
16083
 
16084
 
16085
 
16086
   -- Remove ignore warnings for those package which are going to be replaced with the reference
16087
   DELETE FROM IGNORE_WARNINGS iw
16088
    WHERE iw.RTAG_ID = nRtagId
16089
      AND iw.PV_ID IN (
16090
                  SELECT pv.PV_ID
16091
                    FROM (
16092
 
16093
                        /* Get referenced packages */
16094
                        SELECT pv.PKG_ID,
16095
                               pv.V_EXT
16096
                          FROM RELEASE_CONTENT rc,
16097
                                PACKAGE_VERSIONS pv
16098
                         WHERE rc.RTAG_ID = nRefRtagId
16099
                           AND rc.PV_ID = pv.PV_ID
16100
 
16101
                        ) cr,
16102
                        RELEASE_CONTENT rc,
16103
                        PACKAGE_VERSIONS pv
16104
                   WHERE pv.PKG_ID = cr.PKG_ID
16105
                     AND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
16106
                     AND rc.RTAG_ID = nRtagId
16107
                     AND rc.PV_ID = pv.PV_ID
16108
                  );
16109
 
16110
 
16111
 
16112
 
16113
 
16114
   -- Remove matching packages from release
16115
   DELETE FROM RELEASE_CONTENT rc
16116
    WHERE rc.RTAG_ID = nRtagId
16117
      AND rc.PV_ID IN (
16118
                  SELECT pv.PV_ID
16119
                    FROM (
16120
 
16121
                        /* Get referenced packages */
16122
                        SELECT pv.PKG_ID,
16123
                               pv.V_EXT
16124
                          FROM RELEASE_CONTENT rc,
16125
                                PACKAGE_VERSIONS pv
16126
                         WHERE rc.RTAG_ID = nRefRtagId
16127
                           AND rc.PV_ID = pv.PV_ID
16128
 
16129
                        ) cr,
16130
                        RELEASE_CONTENT rc,
16131
                        PACKAGE_VERSIONS pv
16132
                   WHERE pv.PKG_ID = cr.PKG_ID
16133
                     AND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
16134
                     AND rc.RTAG_ID = nRtagId
16135
                     AND rc.PV_ID = pv.PV_ID
16136
                  );
16137
 
16138
 
16139
 
16140
 
16141
 
16142
   -- Remove Reference release
16143
   DELETE
16144
     FROM RELEASE_LINKS rl
16145
    WHERE rl.RTAG_ID = nRtagId
16146
      AND rl.REF_RTAG_ID = nRefRtagId;
16147
 
16148
 
16149
   -- Refresh Package states
16150
   TOUCH_RELEASE ( nRtagId );
16151
 
16152
 
16153
END;
16154
/*-------------------------------------------------------------------------------------------------------*/
16155
PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR ) IS
16156
 
16157
   cReleaseMode CHAR(1);
16158
   cPvMode CHAR(1);
16159
 
16160
BEGIN
16161
 
16162
   -- Get Release Mode
16163
   SELECT rt.OFFICIAL INTO cReleaseMode
16164
     FROM RELEASE_TAGS rt
16165
    WHERE rt.RTAG_ID = RtagId;
16166
 
16167
 
16168
   -- Get Package Mode
16169
   SELECT pv.DLOCKED INTO cPvMode
16170
     FROM PACKAGE_VERSIONS pv
16171
    WHERE pv.PV_ID = PvId;
16172
 
16173
   -- Only check if package is locked
16174
   IF (cPvMode = 'Y') THEN
16175
 
16176
      IF (cReleaseMode != 'N') AND (Permission != 'Y')
1373 dpurdie 16177
      THEN
3959 dpurdie 16178
         RAISE_APPLICATION_ERROR (-20000, 'Cannot add package to this release. Release needs to be in Open Mode.' );
16179
 
1373 dpurdie 16180
      END IF;
16181
 
3959 dpurdie 16182
   END IF;
5172 dpurdie 16183
END;
3959 dpurdie 16184
 
5172 dpurdie 16185
/*-----------------------------------------------------------------------------*/
16186
PROCEDURE SET_RELEASE_MODIFIED (nRtagId IN NUMBER ) IS
16187
--
16188
--  Set flags to indicate that the specified release has changed for the
16189
--  purposes of building. (Not every single change)
16190
--
16191
--  Used by Build System to streamline build decisions
16192
--    Bump a sequence number
16193
--    Set a TimeStamp
16194
--
16195
--  Care must be taken to avoid concuency issues
16196
--  Must Insert or Update in a safe manner
16197
--
16198
--  This should be called whenever the package_versions in the release have changed in such
16199
--  a manner that the build daemons should examine the release. This includes:
16200
--   - Packages added, removed and version updated
16201
--   - Packages build status changed (re-included in the release)
16202
--   - Packages made Pending Build
16203
--   - Daemon instruction add/updated (Test Build)
16204
--
16205
--  Note: Not yet used (10-Oct-2014)
16206
--        Uses SEQ_RELEASE_MOD and Table: RELEASE_MODIFIED
16207
BEGIN
16208
 LOOP
16209
  BEGIN
16210
    MERGE INTO RELEASE_MODIFIED USING dual ON ( RTAG_ID=nRtagId )
5502 dpurdie 16211
      WHEN MATCHED THEN UPDATE SET SEQNUM=SEQ_RELEASE_MOD.NEXTVAL,TIMESTAMP=CURRENT_TIMESTAMP
16212
      WHEN NOT MATCHED THEN INSERT (RTAG_ID,TIMESTAMP,SEQNUM)
5172 dpurdie 16213
        VALUES (nRtagId, CURRENT_TIMESTAMP,SEQ_RELEASE_MOD.NEXTVAL );
16214
    EXIT; -- success? -> exit loop
16215
  EXCEPTION
16216
    WHEN NO_DATA_FOUND THEN -- the entry was concurrently deleted
16217
      NULL; -- exception? -> no op, i.e. continue looping
16218
    WHEN DUP_VAL_ON_INDEX THEN -- an entry was concurrently inserted
16219
      NULL; -- exception? -> no op, i.e. continue looping
16220
  END;
16221
 END LOOP;
16222
END;
3959 dpurdie 16223
 
5172 dpurdie 16224
/*-------------------------------------------------------------------------------------------------------*/
16225
--  ADD_RELEASE_SDK
16226
--  ADD an SDK Reference to a Release
16227
--  Args: nRtagId           - RTAG_ID of Release to Process
16228
--        nSdktagId         - SDKTAG_ID of SDK to add to Release
16229
--        nUserId           - User IF of user performing the action
16230
--        bDelete           - Delete conflicting (non sdk) packages from the release 0:False
16231
--        nInsertCount      - Returns: Number of Packages inserted: -1 is an error
16232
--        curReturn         - Returns: On error a table of PV_IDs of packages causing the conflict
16233
--
16234
PROCEDURE ADD_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER, nUserId IN NUMBER, bDelete IN NUMBER, nInsertCount OUT NUMBER, curReturn OUT typeCur )IS
16235
 
16236
  vartbl RELMGR_NUMBER_TAB_T := RELMGR_NUMBER_TAB_T();
16237
  ii NUMBER;
16238
  view_id NUMBER;
16239
 
16240
    -- Detect clashing packages
16241
    -- Packages provided by the SDK that are present in the Release
16242
    CURSOR curPackageClash
16243
    IS
16244
      SELECT release.pvid
16245
      FROM
16246
        -- Alias and pvid from SDK
16247
        (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
16248
          pv.PV_ID                  AS pvid
16249
        FROM SDK_CONTENT sc, PACKAGE_VERSIONS pv
16250
        WHERE sc.SDKTAG_ID  = nSdktagId
16251
        AND sc.SDKPKG_STATE = 'E'
16252
        AND pv.PV_ID        = sc.PV_ID
16253
        ) sdk,
16254
      -- Alias and pvid from Release
16255
      (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
16256
        pv.PV_ID                  AS pvid
16257
      FROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pv
16258
      WHERE rc.rtag_id = nRtagId
16259
      AND rc.PV_ID    = pv.PV_ID
16260
      ) RELEASE
16261
    WHERE sdk.pkgAlias = release.pkgAlias;
5502 dpurdie 16262
 
5172 dpurdie 16263
   -- Detect packages in the release that are provided by the SDK
16264
   -- Do not include packages provided by an SDK - these cannot be replaced
16265
       CURSOR curPackageReplacable
16266
    IS
16267
      SELECT release.pvid
16268
      FROM
16269
        -- Alias and pvid from SDK
16270
        (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
16271
                pv.PV_ID                            AS pvid
16272
        FROM SDK_CONTENT sc, PACKAGE_VERSIONS pv
16273
        WHERE sc.SDKTAG_ID    = nSdktagId
16274
          AND sc.SDKPKG_STATE = 'E'
16275
          AND pv.PV_ID        = sc.PV_ID
16276
        ) sdk,
16277
      -- Alias and pvid from Release
16278
      --  Excluding those import by any SDK
16279
      (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
16280
              pv.PV_ID                            AS pvid
16281
       FROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pv
16282
       WHERE rc.rtag_id = nRtagId
16283
         AND rc.PV_ID   = pv.PV_ID
16284
         AND rc.SDKTAG_ID is NULL
16285
      ) RELEASE
16286
    WHERE sdk.pkgAlias = release.pkgAlias;
16287
 
16288
BEGIN
16289
   /*--------------- Business Rules Here -------------------*/
16290
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
16291
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
16292
   END IF;
16293
 
16294
   IF (nSdktagId = 0) OR ( nSdktagId IS NULL ) THEN
16295
      RAISE_APPLICATION_ERROR (-20000, 'nSdktagId is not supplied. [nSdktagId='|| nSdktagId ||']' );
16296
   END IF;
16297
   /*-------------------------------------------------------*/
5502 dpurdie 16298
 
5172 dpurdie 16299
   -- Delete packages from the release if they are provided by the SDK
5502 dpurdie 16300
   -- provided they are not provided by another SDK
5172 dpurdie 16301
    IF bDelete != 0 THEN
16302
      FOR rdata IN curPackageClash LOOP
16303
        DELETE FROM RELEASE_CONTENT rc
16304
          WHERE rc.RTAG_ID = nRtagId
16305
          AND rc.PV_ID = rdata.pvid;
16306
      END LOOP;
16307
 
16308
      -- Remove exising package from this release to be referenced
16309
      REMOVE_RELEASE_SDK ( nRtagId, nSdktagId);
16310
    END IF;
16311
 
16312
    -- Detect and report package clashes
16313
    -- Packages provided by the SDK that are (still) in the release
16314
    ii := 1;
16315
    FOR rdata IN curPackageClash LOOP
16316
      vartbl.extend;
16317
      --vartbl(ii) := TABLE_PVID(rdata.pvid);
16318
      vartbl(ii) := rdata.pvid;
16319
      ii := ii + 1;
16320
    END LOOP;
16321
    -- Make sure there is no package clashes
5502 dpurdie 16322
 
5172 dpurdie 16323
    IF ii != 1 THEN
16324
      nInsertCount := -1;
16325
      open curReturn for select * from table(vartbl);
16326
      --curReturn := vartbl;
16327
      RETURN;
16328
    END IF;
16329
 
16330
    -- Determine the target view_id
16331
    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 16332
 
5172 dpurdie 16333
    -- Add SDK exported packages to release
16334
    INSERT INTO RELEASE_CONTENT rc (RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE, SDKTAG_ID)
5502 dpurdie 16335
    SELECT nRtagId, sc.PV_ID, view_id, sysdate, nUserId, 11, nSdktagId
5172 dpurdie 16336
        FROM SDK_CONTENT sc
16337
        WHERE sc.SDKTAG_ID = nSdktagId
16338
        AND sc.SDKPKG_STATE = 'E';
16339
    nInsertCount := sql%ROWCOUNT;
16340
 
16341
    -- Refresh Package states
16342
    TOUCH_RELEASE ( nRtagId );
16343
    SET_RELEASE_MODIFIED(nRtagId);
16344
 
3959 dpurdie 16345
END;
16346
 
1373 dpurdie 16347
/*-------------------------------------------------------------------------------------------------------*/
5172 dpurdie 16348
--  Name:   REMOVE_RELEASE_SDK
16349
--  Desc:   Remove an SDK from the specified Release
16350
--          It is not an error to remove an SDK that is not attached to the release
16351
--  Args:   nRtagId         - RTAG_ID of the Release to Process
16352
--          nSdktagId       - SDKTAG_ID to remove
16353
--
16354
PROCEDURE REMOVE_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER ) IS
16355
 
16356
BEGIN
16357
   /*--------------- Business Rules Here -------------------*/
16358
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
16359
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
16360
   END IF;
16361
 
16362
   IF (nSdktagId = 0) OR ( nSdktagId IS NULL ) THEN
16363
      RAISE_APPLICATION_ERROR (-20000, 'nSdktagId is not supplied. [nSdktagId='|| nSdktagId ||']' );
16364
   END IF;
16365
 
16366
   /*-------------------------------------------------------*/
16367
 
16368
   -- Remove matching packages from release
16369
   DELETE FROM RELEASE_CONTENT rc
16370
    WHERE rc.RTAG_ID = nRtagId
16371
      AND rc.SDKTAG_ID = nSdktagId;
16372
 
16373
   -- Refresh Package states
16374
   TOUCH_RELEASE ( nRtagId );
16375
   SET_RELEASE_MODIFIED(nRtagId);
16376
END;
16377
 
16378
--------------------------------------------------------------------------------
16379
--  CAN_ADD_PKG_TO_RELEASE
16380
--  Test if a Package (pvid) can be added to a given release
16381
--  The test will not allwo an exiting package to be replaced IF it is imported via an
16382
--  SDK
16383
--
16384
--  Returns:  0 - Package cannot be replaced
16385
--            1 - Package can be replaced
16386
--            2 - Package will be added
5502 dpurdie 16387
--
5172 dpurdie 16388
FUNCTION CAN_ADD_PKG_TO_RELEASE ( nRtagId IN NUMBER, nPvid in NUMBER ) RETURN NUMBER IS
16389
 
16390
   sAlias VARCHAR2(4000);
5502 dpurdie 16391
 
5172 dpurdie 16392
    -- Find package for proccessing
16393
    -- Use unique constraint of PKG_ID and V_EXT
16394
   CURSOR curReplacePkg IS
16395
    SELECT pv.PV_ID
16396
     FROM RELEASE_CONTENT rc,
16397
           PACKAGE_VERSIONS pv
16398
    WHERE rc.PV_ID = pv.PV_ID
16399
      AND rc.RTAG_ID = nRtagId
16400
      AND pv.PKG_ID || NVL( pv.V_EXT, 'LINK_A_NULL' ) = sAlias;
5502 dpurdie 16401
 
5172 dpurdie 16402
    recReplacePkg curReplacePkg%ROWTYPE;
16403
    nSdkTag NUMBER;
5502 dpurdie 16404
 
5172 dpurdie 16405
BEGIN
16406
   /*--------------- Business Rules Here -------------------*/
16407
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
16408
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
16409
   END IF;
16410
 
16411
   IF (nPvid = 0) OR ( nPvid IS NULL ) THEN
16412
      RAISE_APPLICATION_ERROR (-20000, 'nPvid is not supplied. [nPvid='|| nPvid ||']' );
16413
   END IF;
16414
 
16415
    -- Find pkg Alias for provided package
5502 dpurdie 16416
   SELECT pv.PKG_ID || NVL( pv.V_EXT, 'LINK_A_NULL' )
5172 dpurdie 16417
     INTO sAlias
16418
     FROM PACKAGE_VERSIONS pv
16419
    WHERE pv.PV_ID = nPvid;
16420
 
16421
      -- Find Package that may be replaced
16422
      OPEN curReplacePkg;
16423
       FETCH curReplacePkg INTO recReplacePkg;
16424
 
16425
       IF curReplacePkg%FOUND THEN
16426
        SELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENT
16427
         WHERE rtag_id = nRtagId
16428
         AND pv_id = recReplacePkg.PV_ID;
5502 dpurdie 16429
 
5172 dpurdie 16430
        If nSdkTag IS NOT NULL  THEN
16431
          RETURN 0;
16432
        ELSE
16433
          RETURN 1;
16434
        END IF;
16435
      END IF;
16436
 
16437
  -- No package found, so it can be added
16438
  RETURN 2;
5502 dpurdie 16439
 
5172 dpurdie 16440
  EXCEPTION
16441
  WHEN NO_DATA_FOUND THEN
16442
    RAISE_APPLICATION_ERROR (-20000, 'nPvid is not valid. [nPvid='|| nPvid ||']' );
16443
END;
16444
 
16445
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 16446
END PK_RELEASE;
4040 dpurdie 16447
 
6999 dpurdie 16448
/
4040 dpurdie 16449
--------------------------------------------------------
16450
--  DDL for Package Body PK_RMAPI
16451
--------------------------------------------------------
16452
 
5172 dpurdie 16453
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_RMAPI" 
3959 dpurdie 16454
IS
16455
 
16456
   /*-------------------------------------------------------------------------------------------------------*/
16457
   FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)
16458
      RETURN typecur
1373 dpurdie 16459
   IS
3959 dpurdie 16460
      npvid     NUMBER  := 0;
16461
      RECORDS   typecur;
1373 dpurdie 16462
   BEGIN
3959 dpurdie 16463
      BEGIN
16464
         -- Get PV_ID --
16465
         SELECT pv.pv_id
16466
           INTO npvid
16467
           FROM PACKAGES pkg, package_versions pv
16468
          WHERE pv.pkg_id = pkg.pkg_id
16469
            AND pkg.pkg_name = pkgname
16470
            AND pv.pkg_version = pkgversion;
16471
      EXCEPTION
16472
         WHEN NO_DATA_FOUND
16473
         THEN
16474
            raise_application_error (-20000, 'Package Not Found!');
16475
            --WHEN OTHERS THEN
16476
                  -- Consider logging the error and then re-raise
16477
            RAISE;
16478
      END;
1373 dpurdie 16479
 
3959 dpurdie 16480
      -- Finally get package dependencies --
16481
      OPEN RECORDS FOR
16482
         SELECT dpv.pv_id, dpkg.pkg_name, dpv.pkg_version
16483
           FROM package_dependencies dep, PACKAGES dpkg, package_versions dpv
16484
          WHERE dep.pv_id = npvid
16485
            AND dpv.pkg_id = dpkg.pkg_id
16486
            AND dpv.pv_id = dep.dpv_id;
16487
 
16488
      RETURN RECORDS;
1373 dpurdie 16489
   END;
16490
 
16491
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 16492
   FUNCTION wip_iteration_package (
16493
      projname        VARCHAR2,
16494
      iterationname   VARCHAR2,
16495
      pkgname         VARCHAR2
1373 dpurdie 16496
   )
3959 dpurdie 16497
      RETURN typecur
1373 dpurdie 16498
   IS
3959 dpurdie 16499
      nrtagid   NUMBER  := 0;
16500
      RECORDS   typecur;
1373 dpurdie 16501
   BEGIN
3959 dpurdie 16502
      BEGIN
16503
         -- Get latest rtag_id --
16504
         SELECT rt.rtag_id
16505
           INTO nrtagid
16506
           FROM projects proj, release_tags rt
16507
          WHERE rt.proj_id = proj.proj_id
16508
            AND UPPER (proj.proj_name) = UPPER (projname)
16509
            AND UPPER (rt.rtag_name) = UPPER (iterationname);
1373 dpurdie 16510
 
3959 dpurdie 16511
         IF (nrtagid IS NULL)
16512
         THEN
16513
            raise_application_error (-20000,
16514
                                     'Work In Progress is Not Found!');
16515
         END IF;
16516
      EXCEPTION
16517
         WHEN NO_DATA_FOUND
16518
         THEN
16519
            raise_application_error (-20000,
16520
                                     'Work In Progress is Not Found!');
16521
            RAISE;
16522
      END;
16523
 
16524
      -- Finally get package dependencies --
16525
      OPEN RECORDS FOR
16526
         SELECT pv.pkg_version, pv.dlocked AS is_official, pv.pkg_label,
16527
                pv.src_path
16528
           FROM PACKAGES pkg, package_versions pv, work_in_progress wip
16529
          WHERE pv.pkg_id = pkg.pkg_id
16530
            AND wip.pv_id = pv.pv_id
16531
            AND wip.rtag_id = nrtagid
16532
            AND pkg.pkg_name = pkgname;
16533
 
16534
      RETURN RECORDS;
1373 dpurdie 16535
   END;
16536
 
16537
/*-------------------------------------------------------------------------------------------------------*/
4553 dpurdie 16538
-- Use:
16539
--   Used by the Automated Build System to release a new package
16540
-- Returns:
16541
--    Use application errors to indicate programming errors
16542
--    Use negative return codes to indicate correctable user problems
16543
--    Positive return code is the new PVID of the package
6600 dpurdie 16544
--
16545
-- Note: Being deprecated in favor of auto_make_vcsrelease2
4553 dpurdie 16546
  FUNCTION auto_make_vcsrelease (
3959 dpurdie 16547
      rtagid                   IN   NUMBER,
16548
      pkgname                  IN   VARCHAR2,
16549
      vext                     IN   VARCHAR2,
16550
      newpkgversion            IN   VARCHAR2,
16551
      vcstag                   IN   VARCHAR2,
16552
      dependenciesimportlist   IN   VARCHAR2,
16553
      isrippled                IN   NUMBER,
16554
      username                 IN   VARCHAR2
16555
   )
1373 dpurdie 16556
      RETURN NUMBER
16557
   IS
3959 dpurdie 16558
      pkgid                           NUMBER;
16559
      pvid                            NUMBER                        := 0;
16560
      userid                          NUMBER;
16561
      dlocked                         VARCHAR2 (20)                 := NULL;
16562
      clonefrompvid                   NUMBER;
16563
      ssv_mm                          package_versions.v_mm%TYPE;
16564
      ssv_nmm                         package_versions.v_nmm%TYPE;
16565
      ssv_ext                         package_versions.v_ext%TYPE;
16566
      return_package_not_found        NUMBER                        := -1;
16567
      return_package_already_exists   NUMBER                        := -2;
16568
      return_not_approved             NUMBER                        := -3;
16569
      return_migrated_pkg             NUMBER                        := -4;
4553 dpurdie 16570
      return_svn_path_changed         NUMBER                        := -5;
1373 dpurdie 16571
 
16572
 
3959 dpurdie 16573
      x_vcstypeid                     NUMBER;
16574
      x_tag                           VARCHAR2(32);
16575
      x_label                         VARCHAR2(60);
16576
      x_srcpath                       VARCHAR2(2000);
16577
      p_srcpath                       VARCHAR2(2000);
1373 dpurdie 16578
 
3959 dpurdie 16579
      -- Regular expression constituents
16580
      Token         VARCHAR2(16) := '([^:]+)';  -- a token is anything except a ':' character
16581
      Seperator     VARCHAR2(4)  := '::';       -- tokens will be seperated by '::'
16582
      BOL           VARCHAR2(4)  := '^';
16583
      Anything      VARCHAR2(4)  := '.*';
16584
      ReplaceToken1 VARCHAR2(4)  := '\1';
16585
      ReplaceToken2 VARCHAR2(4)  := '\2';
16586
      ReplaceToken3 VARCHAR2(4)  := '\3';
16587
      iprev_modifier_id               NUMBER;
16588
 
1373 dpurdie 16589
   BEGIN
3959 dpurdie 16590
      /*--------------- Business Rules Here -------------------*/
16591
      IF (rtagid IS NULL)
16592
      THEN
16593
         raise_application_error (-20000, 'RtagId must be supplied.');
16594
      END IF;
1373 dpurdie 16595
 
3959 dpurdie 16596
      IF (pkgname IS NULL)
16597
      THEN
16598
         raise_application_error (-20000, 'PkgName must be supplied.');
16599
      END IF;
1373 dpurdie 16600
 
3959 dpurdie 16601
      IF (newpkgversion IS NULL)
1373 dpurdie 16602
      THEN
3959 dpurdie 16603
         raise_application_error (-20000, 'PkgVersion must be supplied.');
1373 dpurdie 16604
      END IF;
16605
 
3959 dpurdie 16606
      IF (vcstag IS NULL)
1373 dpurdie 16607
      THEN
3959 dpurdie 16608
         raise_application_error (-20000, 'PkgVcsTag must be supplied.');
1373 dpurdie 16609
      END IF;
16610
 
3959 dpurdie 16611
      IF (isrippled IS NULL) OR (isrippled < 0) OR (isrippled > 1)
1373 dpurdie 16612
      THEN
4553 dpurdie 16613
         raise_application_error (-20000, 'IsRippled must be set to 1 (Is rippled build) or 0 (Is planned build).');
1373 dpurdie 16614
      END IF;
16615
 
3959 dpurdie 16616
      IF (username IS NULL)
1373 dpurdie 16617
      THEN
3959 dpurdie 16618
         raise_application_error (-20000, 'UserName must be supplied.');
1373 dpurdie 16619
      END IF;
16620
 
3959 dpurdie 16621
      -- Parse the PkgVcsTag
16622
      -- Sets up
16623
      --   x_tag, x_label, x_srcpath
1373 dpurdie 16624
 
3959 dpurdie 16625
       BEGIN
16626
          -- Extract the first token - this will be the short tag name for the VCS (eg. 'CC', 'SVN', etc)
16627
          x_tag := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Anything, ReplaceToken1);
1373 dpurdie 16628
 
3959 dpurdie 16629
          -- Decode the short tag
16630
          CASE x_tag
16631
             WHEN 'CC' THEN
16632
                -- extract the 2nd and 3rd tokens, those being the source path and label respectively
16633
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
16634
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
1373 dpurdie 16635
 
3959 dpurdie 16636
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
16637
                -- check for that error as well as the obvious zero-length string conditions.
16638
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
16639
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
16640
                END IF;
6031 dpurdie 16641
 
3959 dpurdie 16642
                IF isSVNbyName(pkgname) > 0 THEN
16643
                    -- Don't allow migrated packages to be released from a CC label
16644
                    return return_migrated_pkg;
16645
                END IF;
1373 dpurdie 16646
 
16647
 
3959 dpurdie 16648
             WHEN 'SVN' THEN
16649
                -- extract the 2nd token, that being the subversion tag
16650
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
16651
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
1373 dpurdie 16652
 
3959 dpurdie 16653
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
16654
                -- check for that error as well as the obvious zero-length string conditions.
16655
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
16656
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
16657
                END IF;
16658
 
16659
             WHEN 'UC' THEN
16660
                -- nothing to extract, just assign defaults
16661
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
16662
                x_label   := 'N/A';
16663
             ELSE
16664
                raise_application_error (-20000, 'Unrecognised VCS Tag!');
16665
          END CASE;
16666
       END;
16667
 
16668
      -- Get the VCS_TYPE_ID for the version control system.
16669
      BEGIN
16670
         SELECT vt.vcs_type_id
16671
         INTO x_vcstypeid
16672
         FROM VCS_TYPE vt
16673
         WHERE vt.tag = x_tag;
16674
         EXCEPTION
16675
            WHEN NO_DATA_FOUND THEN
16676
               raise_application_error (-20000, 'Database is missing a version control system tag (' || x_tag || ')!' );
16677
      END;
16678
 
16679
 
16680
      -- Get user_id
16681
      BEGIN
16682
         SELECT usr.user_id
16683
           INTO userid
16684
           FROM users usr
16685
          WHERE UPPER (usr.user_name) = UPPER (username)
16686
            AND usr.is_disabled IS NULL;
16687
      EXCEPTION
16688
         WHEN NO_DATA_FOUND
1373 dpurdie 16689
         THEN
4585 dpurdie 16690
            raise_application_error (-20000, 'UserName: ' || username || ' is not valid or disabled.' );
3959 dpurdie 16691
      END;
1373 dpurdie 16692
 
3959 dpurdie 16693
/*-------------------------------------------------------*/
1373 dpurdie 16694
 
3959 dpurdie 16695
      -- Create package if necessary
16696
      IF isrippled = 1
1373 dpurdie 16697
      THEN
3959 dpurdie 16698
         /* Ripple Build */
16699
         BEGIN
16700
            -- Make sure that package does not exist
16701
            SELECT pv.pv_id
16702
              INTO pvid
16703
              FROM package_versions pv, PACKAGES pkg
16704
             WHERE pv.pkg_id = pkg.pkg_id
16705
               AND pkg.pkg_name = pkgname
16706
               AND pv.pkg_version = newpkgversion;
16707
         EXCEPTION
16708
            WHEN NO_DATA_FOUND
16709
            THEN
16710
               pvid := 0;
16711
         END;
16712
 
16713
         IF (pvid = 0)
1373 dpurdie 16714
         THEN
3959 dpurdie 16715
            -- Split current version in parts
16716
            split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
16717
 
16718
            BEGIN
16719
               -- Find package to be replaced with the ripple package
16720
               IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
16721
               THEN
16722
                  SELECT pv.pv_id, pv.src_path
16723
                    INTO clonefrompvid, p_srcpath
16724
                    FROM PACKAGES pkg, package_versions pv,
16725
                         release_content rc
16726
                   WHERE rc.pv_id = pv.pv_id
16727
                     AND pv.pkg_id = pkg.pkg_id
16728
                     AND rc.rtag_id = rtagid
16729
                     AND pkg.pkg_name = pkgname
16730
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|');
16731
               ELSE
16732
                  SELECT pv.pv_id, pv.src_path
16733
                    INTO clonefrompvid, p_srcpath
16734
                    FROM PACKAGES pkg, package_versions pv,
16735
                         release_content rc
16736
                   WHERE rc.pv_id = pv.pv_id
16737
                     AND pv.pkg_id = pkg.pkg_id
16738
                     AND rc.rtag_id = rtagid
16739
                     AND pkg.pkg_name = pkgname
16740
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
16741
               END IF;
16742
            EXCEPTION
16743
               WHEN NO_DATA_FOUND
16744
               THEN
16745
                  raise_application_error
16746
                                        (-20000,
16747
                                            'Cannot get CloneFromPvId. VExt='
16748
                                         || vext
16749
                                         || ', RtagId='
16750
                                         || rtagid
16751
                                         || ', PkgName='
16752
                                         || pkgname
16753
                                         || ', SSV_EXT='
16754
                                         || ssv_ext
16755
                                        );
16756
            END;
16757
 
16758
            IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
16759
            THEN
16760
               -- Create package
16761
               seed_package_names_versions (pkgname,
16762
                                            newpkgversion,
16763
                                            userid,
16764
                                            pvid,
16765
                                            clonefrompvid
16766
                                           );
16767
            ELSE
4585 dpurdie 16768
               -- Create package (now both the same)
16769
               seed_package_names_versions (pkgname,
3959 dpurdie 16770
                                             newpkgversion,
16771
                                             userid,
16772
                                             pvid,
16773
                                             clonefrompvid
16774
                                            );
16775
            END IF;
16776
 
16777
            -- Update Package reason for release
16778
            UPDATE package_versions pv
16779
               SET pv.comments = 'Rippled Build.',
16780
                   pv.build_type = 'Y'
16781
             WHERE pv.pv_id = pvid;
16782
         ELSE
16783
            -- Package already exists, it was built previously, and has just been re-built again probably due to the
16784
            -- fact that the archive was cleaned of the original build artifacts at some point, and those artifacts
16785
            -- are now needed once more. As such, we need to ensure that a new release note generation occurs so
16786
            -- reset the package_versions[pvid].release_notes_info field to enable that to happen.
16787
            UPDATE package_versions pv
16788
               SET pv.release_notes_info = null,
16789
                   pv.modified_stamp = ora_sysdatetime
16790
             WHERE pv.pv_id = pvid;
16791
 
16792
            --DEVI-066151
16793
            log_action (pvid, 'package_rebuilt', userid, 'Package Re-built...');
16794
 
16795
            RETURN return_package_already_exists;
1373 dpurdie 16796
         END IF;
16797
      ELSE
3959 dpurdie 16798
         /* Auto build from Pending area */
16799
 
16800
         -- Find package in pending area
16801
         BEGIN
16802
            SELECT pv.pv_id, pv.dlocked, pv.src_path
16803
              INTO pvid, dlocked, p_srcpath
16804
              FROM planned pl, package_versions pv, PACKAGES pkg
16805
             WHERE pl.pv_id = pv.pv_id
16806
               AND pv.pkg_id = pkg.pkg_id
16807
               AND pl.rtag_id = rtagid
16808
               AND pkg.pkg_name = pkgname
16809
               AND pv.dlocked = 'A'
16810
               AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|')
16811
               AND rownum = 1
16812
             ORDER BY pv.modified_stamp;
16813
         EXCEPTION
16814
            WHEN NO_DATA_FOUND
16815
            THEN
16816
               pvid := 0;
16817
         END;
16818
 
16819
         IF (pvid = 0)
1373 dpurdie 16820
         THEN
3959 dpurdie 16821
            -- Package does not exist in pending area, hence report it
16822
            RETURN return_package_not_found;
16823
         ELSIF (dlocked != 'A')
1373 dpurdie 16824
         THEN
3959 dpurdie 16825
            -- Package is not approved for autobuild
16826
            RETURN return_not_approved;
1373 dpurdie 16827
         END IF;
16828
 
16829
      END IF;
16830
 
3959 dpurdie 16831
      -- Ensure Source Path does not change
16832
      -- Do not expect the SVN development branch to change
16833
      -- From the previous package
16834
      IF ( x_tag = 'SVN' AND p_srcpath != x_srcpath )
1373 dpurdie 16835
      THEN
4553 dpurdie 16836
        return return_svn_path_changed;
1373 dpurdie 16837
      END IF;
16838
 
3959 dpurdie 16839
      BEGIN
16840
         -- Import Dependencies
16841
         import_dependencies (pvid, dependenciesimportlist, userid);
16842
      END;
1373 dpurdie 16843
 
16844
 
3959 dpurdie 16845
      BEGIN
16846
         -- Split current version in parts
16847
         split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
1373 dpurdie 16848
 
3959 dpurdie 16849
         -- Update Package Details
16850
         UPDATE package_versions pv
16851
            SET pv.pkg_version = newpkgversion,
16852
                pv.v_ext = ssv_ext,
16853
                pv.v_mm = ssv_mm,
16854
                pv.v_nmm = ssv_nmm,
16855
                pv.src_path = x_srcpath,
16856
                pv.pkg_label = x_label,
16857
                pv.vcs_type_id = x_vcstypeid
16858
          WHERE pv.pv_id = pvid;
16859
      EXCEPTION
16860
         WHEN DUP_VAL_ON_INDEX
16861
         THEN
16862
            -- Package already exists, hence cannot be used for ripple build
16863
            RETURN return_package_already_exists;
16864
      END;
16865
 
16866
      -- Update the is_autobuildable
16867
      UPDATE package_versions
16868
         SET is_autobuildable = 'Y'
16869
       WHERE pv_id = pvid;
16870
 
16871
      -- DEVI-063601
16872
      -- For planned builds the modifier_id shouldn't be set to buildadm.
16873
      -- To ensure this the modifier_id is obtained so it can be restored after
16874
      -- the function pk_environment.auto_make_release is called.
16875
      -- This function calls, change_state, which sets the modifier_id to the
16876
      -- specified userid, which for auto builds is buildadm.
16877
      SELECT pv.modifier_id INTO iprev_modifier_id
16878
      FROM package_versions pv WHERE pv.pv_id = pvid;
16879
 
16880
      -- Now release package
16881
      pk_environment.auto_make_release (pvid,
16882
                                        rtagid,
16883
                                        userid,
16884
                                        vext,
16885
                                        ssv_ext,
16886
                                        clonefrompvid
16887
                                       );
16888
 
16889
      -- DEVI-063601
16890
      -- if it is a planned build then restore the modifier_id to the previous modifier
16891
      UPDATE package_versions pv SET pv.modifier_id = iprev_modifier_id
16892
      WHERE pv.pv_id = pvid;
16893
 
16894
      --Now clean the PLANNED_VERSIONS table
16895
      SELECT pkg_id
16896
        INTO pkgid
16897
        FROM PACKAGES
16898
       WHERE pkg_name = pkgname;
16899
 
16900
      DELETE FROM planned_versions
16901
            WHERE pkg_id = pkgid AND pkg_version = newpkgversion;
16902
 
16903
      RETURN pvid;
1373 dpurdie 16904
   END;
16905
 
16906
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 16907
   PROCEDURE import_dependencies (
16908
      pvid                     IN   NUMBER,
16909
      dependenciesimportlist   IN   VARCHAR2,
16910
      userid                   IN   NUMBER
16911
   )
1373 dpurdie 16912
   IS
3959 dpurdie 16913
/*
16914
|| DependenciesImportList Format:
16915
|| "pkgA","1.0.0";"pkgB","2.0.0";
16916
||  OR 'pkgA','1.0.0';'pkgB','2.0.0';
16917
*/
16918
      TYPE tdictionary IS TABLE OF VARCHAR2 (4000)
16919
         INDEX BY VARCHAR2 (4000);
16920
 
16921
      seperator         VARCHAR2 (2)           := '||';
16922
      pkgname           VARCHAR2 (4000);
16923
      pkgversion        VARCHAR2 (4000);
16924
      buildtype         VARCHAR2 (50);
16925
      pkgid             NUMBER;
16926
      vext              VARCHAR2 (4000);
16927
      dpvid             NUMBER;
16928
      slist             VARCHAR2 (4000);
16929
      cbuildtypes       tdictionary;
16930
      dependencyrow     NUMBER;
16931
      sdependency       VARCHAR2 (4000);
16932
      first_pos         VARCHAR2 (4000);
16933
      second_pos        VARCHAR2 (4000);
16934
      third_pos         VARCHAR2 (4000);
16935
      forth_pos         VARCHAR2 (4000);
16936
      citemcollection   relmgr_varchar2_tab_t  := relmgr_varchar2_tab_t ();
16937
 
16938
      CURSOR curbuildtype
16939
      IS
16940
         SELECT dpv.pkg_id || seperator || dpv.v_ext AS pkgid_ext,
16941
                dep.build_type
16942
           FROM package_dependencies dep, package_versions dpv
16943
          WHERE dep.pv_id = pvid AND dep.dpv_id = dpv.pv_id;
16944
 
16945
      recbuildtype      curbuildtype%ROWTYPE;
1373 dpurdie 16946
   BEGIN
3959 dpurdie 16947
      slist := dependenciesimportlist;
1373 dpurdie 16948
 
3959 dpurdie 16949
      -- Preformat String
16950
      IF NOT slist IS NULL
1373 dpurdie 16951
      THEN
3959 dpurdie 16952
         slist := REPLACE (slist, ' ');                      -- Remove spaces
16953
         slist := REPLACE (slist, UTL_TCP.crlf);
16954
         -- Remove new line and carriage-return characters
16955
         slist := REPLACE (slist, '''', '"');             -- Replace ' with "
1373 dpurdie 16956
      END IF;
16957
 
3959 dpurdie 16958
      -- Get Current Dependencies
16959
      OPEN curbuildtype;
1373 dpurdie 16960
 
3959 dpurdie 16961
      FETCH curbuildtype
16962
       INTO recbuildtype;
1373 dpurdie 16963
 
3959 dpurdie 16964
      WHILE curbuildtype%FOUND
16965
      LOOP
16966
         cbuildtypes (recbuildtype.pkgid_ext) := recbuildtype.build_type;
1373 dpurdie 16967
 
3959 dpurdie 16968
         FETCH curbuildtype
16969
          INTO recbuildtype;
16970
      END LOOP;
1373 dpurdie 16971
 
3959 dpurdie 16972
      CLOSE curbuildtype;
1373 dpurdie 16973
 
3959 dpurdie 16974
      -- Separate dependencies with ; separator
16975
      citemcollection := in_list_varchar2 (slist, ';');
1373 dpurdie 16976
 
3959 dpurdie 16977
      BEGIN
16978
         -- Remove old dependencies
16979
         DELETE FROM package_dependencies dep
16980
               WHERE dep.pv_id = pvid;
1373 dpurdie 16981
 
3959 dpurdie 16982
         -- Loop through dependencies
16983
         FOR dependencyrow IN 1 .. citemcollection.COUNT
16984
         LOOP
16985
            -- Extract pkg_name and pkg_version
16986
            sdependency := citemcollection (dependencyrow);
16987
            first_pos := INSTR (sdependency, '"', 1, 1);
16988
            second_pos := INSTR (sdependency, '"', 1, 2);
16989
            third_pos := INSTR (sdependency, '"', 1, 3);
16990
            forth_pos := INSTR (sdependency, '"', 1, 4);
16991
            pkgname :=
16992
               SUBSTR (sdependency,
16993
                       (first_pos + 1),
16994
                       (second_pos - first_pos - 1)
16995
                      );
16996
            pkgversion :=
16997
               SUBSTR (sdependency,
16998
                       (third_pos + 1),
16999
                       (forth_pos - third_pos - 1)
17000
                      );
17001
 
17002
            -- Dependency must exits to be linked against
17003
            BEGIN
17004
               SELECT pv.pv_id, pv.pkg_id, pv.v_ext
17005
                 INTO dpvid, pkgid, vext
17006
                 FROM package_versions pv, PACKAGES pkg
17007
                WHERE pv.pkg_id = pkg.pkg_id
17008
                  AND pkg.pkg_name = pkgname
17009
                  AND pv.pkg_version = pkgversion;
17010
            EXCEPTION
17011
               WHEN NO_DATA_FOUND
17012
               THEN
17013
                  raise_application_error
17014
                                  (-20000,
17015
                                      'Dependency ['
17016
                                   || pkgname
17017
                                   || ' '
17018
                                   || pkgversion
17019
                                   || '] does not exist yet and cannot be used!'
17020
                                  );
17021
            END;
17022
 
17023
            -- Get Build Type (i.e. BuildPackageArchive or LinkPackageArchive)
17024
            BEGIN
17025
               buildtype := cbuildtypes (pkgid || seperator || vext);
17026
 
17027
               IF buildtype IS NULL
17028
               THEN
17029
                  -- Set build type to LinkPackageArchive by default
17030
                  buildtype := 'L';
17031
               END IF;
17032
            EXCEPTION
17033
               WHEN NO_DATA_FOUND
17034
               THEN
17035
                  buildtype := 'L';
17036
            END;
17037
 
17038
            -- Insert Dependencies
17039
            update_package_dependency (pvid,
17040
                                       pkgname,
17041
                                       pkgversion,
17042
                                       buildtype,
17043
                                       userid,
17044
 
17045
                                      );
17046
         END LOOP;
17047
      END;
1373 dpurdie 17048
   END;
17049
 
17050
/*-------------------------------------------------------------------------------------------------------*/
6600 dpurdie 17051
-- Use:
17052
--   Used by the Automated Build System to release a new package
17053
-- Returns:
17054
--    Use application errors to indicate programming errors
17055
--    Use negative return codes to indicate correctable user problems
17056
--    Positive return code is the new PVID of the package
17057
  FUNCTION auto_make_vcsrelease2 (
17058
      rtagid                   IN   NUMBER,
17059
      pkgname                  IN   VARCHAR2,
17060
      vext                     IN   VARCHAR2,
17061
      newpkgversion            IN   VARCHAR2,
17062
      vcstag                   IN   VARCHAR2,
17063
      dependenciesimportlist   IN   relmgr_varchar2_tab_t,
17064
      isrippled                IN   NUMBER,
17065
      username                 IN   VARCHAR2
17066
   )
17067
      RETURN NUMBER
17068
   IS
17069
      pkgid                           NUMBER;
17070
      pvid                            NUMBER                        := 0;
17071
      userid                          NUMBER;
17072
      dlocked                         VARCHAR2 (20)                 := NULL;
17073
      clonefrompvid                   NUMBER;
17074
      ssv_mm                          package_versions.v_mm%TYPE;
17075
      ssv_nmm                         package_versions.v_nmm%TYPE;
17076
      ssv_ext                         package_versions.v_ext%TYPE;
17077
      return_package_not_found        NUMBER                        := -1;
17078
      return_package_already_exists   NUMBER                        := -2;
17079
      return_not_approved             NUMBER                        := -3;
17080
      return_migrated_pkg             NUMBER                        := -4;
17081
      return_svn_path_changed         NUMBER                        := -5;
17082
 
17083
 
17084
      x_vcstypeid                     NUMBER;
17085
      x_tag                           VARCHAR2(32);
17086
      x_label                         VARCHAR2(60);
17087
      x_srcpath                       VARCHAR2(2000);
17088
      p_srcpath                       VARCHAR2(2000);
17089
 
17090
      -- Regular expression constituents
17091
      Token         VARCHAR2(16) := '([^:]+)';  -- a token is anything except a ':' character
17092
      Seperator     VARCHAR2(4)  := '::';       -- tokens will be seperated by '::'
17093
      BOL           VARCHAR2(4)  := '^';
17094
      Anything      VARCHAR2(4)  := '.*';
17095
      ReplaceToken1 VARCHAR2(4)  := '\1';
17096
      ReplaceToken2 VARCHAR2(4)  := '\2';
17097
      ReplaceToken3 VARCHAR2(4)  := '\3';
17098
      iprev_modifier_id               NUMBER;
17099
 
17100
   BEGIN
17101
      /*--------------- Business Rules Here -------------------*/
17102
      IF (rtagid IS NULL)
17103
      THEN
17104
         raise_application_error (-20000, 'RtagId must be supplied.');
17105
      END IF;
17106
 
17107
      IF (pkgname IS NULL)
17108
      THEN
17109
         raise_application_error (-20000, 'PkgName must be supplied.');
17110
      END IF;
17111
 
17112
      IF (newpkgversion IS NULL)
17113
      THEN
17114
         raise_application_error (-20000, 'PkgVersion must be supplied.');
17115
      END IF;
17116
 
17117
      IF (vcstag IS NULL)
17118
      THEN
17119
         raise_application_error (-20000, 'PkgVcsTag must be supplied.');
17120
      END IF;
17121
 
17122
      IF (isrippled IS NULL) OR (isrippled < 0) OR (isrippled > 1)
17123
      THEN
17124
         raise_application_error (-20000, 'IsRippled must be set to 1 (Is rippled build) or 0 (Is planned build).');
17125
      END IF;
17126
 
17127
      IF (username IS NULL)
17128
      THEN
17129
         raise_application_error (-20000, 'UserName must be supplied.');
17130
      END IF;
17131
 
17132
      -- Parse the PkgVcsTag
17133
      -- Sets up
17134
      --   x_tag, x_label, x_srcpath
17135
 
17136
       BEGIN
17137
          -- Extract the first token - this will be the short tag name for the VCS (eg. 'CC', 'SVN', etc)
17138
          x_tag := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Anything, ReplaceToken1);
17139
 
17140
          -- Decode the short tag
17141
          CASE x_tag
17142
             WHEN 'CC' THEN
17143
                -- extract the 2nd and 3rd tokens, those being the source path and label respectively
17144
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
17145
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
17146
 
17147
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
17148
                -- check for that error as well as the obvious zero-length string conditions.
17149
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
17150
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
17151
                END IF;
17152
 
17153
                IF isSVNbyName(pkgname) > 0 THEN
17154
                    -- Don't allow migrated packages to be released from a CC label
17155
                    return return_migrated_pkg;
17156
                END IF;
17157
 
17158
 
17159
             WHEN 'SVN' THEN
17160
                -- extract the 2nd token, that being the subversion tag
17161
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
17162
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
17163
 
17164
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
17165
                -- check for that error as well as the obvious zero-length string conditions.
17166
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
17167
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
17168
                END IF;
17169
 
17170
             WHEN 'UC' THEN
17171
                -- nothing to extract, just assign defaults
17172
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
17173
                x_label   := 'N/A';
17174
             ELSE
17175
                raise_application_error (-20000, 'Unrecognised VCS Tag!');
17176
          END CASE;
17177
       END;
17178
 
17179
      -- Get the VCS_TYPE_ID for the version control system.
17180
      BEGIN
17181
         SELECT vt.vcs_type_id
17182
         INTO x_vcstypeid
17183
         FROM VCS_TYPE vt
17184
         WHERE vt.tag = x_tag;
17185
         EXCEPTION
17186
            WHEN NO_DATA_FOUND THEN
17187
               raise_application_error (-20000, 'Database is missing a version control system tag (' || x_tag || ')!' );
17188
      END;
17189
 
17190
 
17191
      -- Get user_id
17192
      BEGIN
17193
         SELECT usr.user_id
17194
           INTO userid
17195
           FROM users usr
17196
          WHERE UPPER (usr.user_name) = UPPER (username)
17197
            AND usr.is_disabled IS NULL;
17198
      EXCEPTION
17199
         WHEN NO_DATA_FOUND
17200
         THEN
17201
            raise_application_error (-20000, 'UserName: ' || username || ' is not valid or disabled.' );
17202
      END;
17203
 
17204
/*-------------------------------------------------------*/
17205
 
17206
      -- Create package if necessary
17207
      IF isrippled = 1
17208
      THEN
17209
         /* Ripple Build */
17210
         BEGIN
17211
            -- Make sure that package does not exist
17212
            SELECT pv.pv_id
17213
              INTO pvid
17214
              FROM package_versions pv, PACKAGES pkg
17215
             WHERE pv.pkg_id = pkg.pkg_id
17216
               AND pkg.pkg_name = pkgname
17217
               AND pv.pkg_version = newpkgversion;
17218
         EXCEPTION
17219
            WHEN NO_DATA_FOUND
17220
            THEN
17221
               pvid := 0;
17222
         END;
17223
 
17224
         IF (pvid = 0)
17225
         THEN
17226
            -- Split current version in parts
17227
            split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
17228
 
17229
            BEGIN
17230
               -- Find package to be replaced with the ripple package
17231
               IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
17232
               THEN
17233
                  SELECT pv.pv_id, pv.src_path
17234
                    INTO clonefrompvid, p_srcpath
17235
                    FROM PACKAGES pkg, package_versions pv,
17236
                         release_content rc
17237
                   WHERE rc.pv_id = pv.pv_id
17238
                     AND pv.pkg_id = pkg.pkg_id
17239
                     AND rc.rtag_id = rtagid
17240
                     AND pkg.pkg_name = pkgname
17241
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|');
17242
               ELSE
17243
                  SELECT pv.pv_id, pv.src_path
17244
                    INTO clonefrompvid, p_srcpath
17245
                    FROM PACKAGES pkg, package_versions pv,
17246
                         release_content rc
17247
                   WHERE rc.pv_id = pv.pv_id
17248
                     AND pv.pkg_id = pkg.pkg_id
17249
                     AND rc.rtag_id = rtagid
17250
                     AND pkg.pkg_name = pkgname
17251
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
17252
               END IF;
17253
            EXCEPTION
17254
               WHEN NO_DATA_FOUND
17255
               THEN
17256
                  raise_application_error
17257
                                        (-20000,
17258
                                            'Cannot get CloneFromPvId. VExt='
17259
                                         || vext
17260
                                         || ', RtagId='
17261
                                         || rtagid
17262
                                         || ', PkgName='
17263
                                         || pkgname
17264
                                         || ', SSV_EXT='
17265
                                         || ssv_ext
17266
                                        );
17267
            END;
17268
 
17269
            IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
17270
            THEN
17271
               -- Create package
17272
               seed_package_names_versions (pkgname,
17273
                                            newpkgversion,
17274
                                            userid,
17275
                                            pvid,
17276
                                            clonefrompvid
17277
                                           );
17278
            ELSE
17279
               -- Create package (now both the same)
17280
               seed_package_names_versions (pkgname,
17281
                                             newpkgversion,
17282
                                             userid,
17283
                                             pvid,
17284
                                             clonefrompvid
17285
                                            );
17286
            END IF;
17287
 
17288
            -- Update Package reason for release
17289
            UPDATE package_versions pv
17290
               SET pv.comments = 'Rippled Build.',
17291
                   pv.build_type = 'Y'
17292
             WHERE pv.pv_id = pvid;
17293
         ELSE
17294
            -- Package already exists, it was built previously, and has just been re-built again probably due to the
17295
            -- fact that the archive was cleaned of the original build artifacts at some point, and those artifacts
17296
            -- are now needed once more. As such, we need to ensure that a new release note generation occurs so
17297
            -- reset the package_versions[pvid].release_notes_info field to enable that to happen.
17298
            UPDATE package_versions pv
17299
               SET pv.release_notes_info = null,
17300
                   pv.modified_stamp = ora_sysdatetime
17301
             WHERE pv.pv_id = pvid;
17302
 
17303
            --DEVI-066151
17304
            log_action (pvid, 'package_rebuilt', userid, 'Package Re-built...');
17305
 
17306
            RETURN return_package_already_exists;
17307
         END IF;
17308
      ELSE
17309
         /* Auto build from Pending area */
17310
 
17311
         -- Find package in pending area
17312
         BEGIN
17313
            SELECT pv.pv_id, pv.dlocked, pv.src_path
17314
              INTO pvid, dlocked, p_srcpath
17315
              FROM planned pl, package_versions pv, PACKAGES pkg
17316
             WHERE pl.pv_id = pv.pv_id
17317
               AND pv.pkg_id = pkg.pkg_id
17318
               AND pl.rtag_id = rtagid
17319
               AND pkg.pkg_name = pkgname
17320
               AND pv.dlocked = 'A'
17321
               AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|')
17322
               AND rownum = 1
17323
             ORDER BY pv.modified_stamp;
17324
         EXCEPTION
17325
            WHEN NO_DATA_FOUND
17326
            THEN
17327
               pvid := 0;
17328
         END;
17329
 
17330
         IF (pvid = 0)
17331
         THEN
17332
            -- Package does not exist in pending area, hence report it
17333
            RETURN return_package_not_found;
17334
         ELSIF (dlocked != 'A')
17335
         THEN
17336
            -- Package is not approved for autobuild
17337
            RETURN return_not_approved;
17338
         END IF;
17339
 
17340
      END IF;
17341
 
17342
      -- Ensure Source Path does not change
17343
      -- Do not expect the SVN development branch to change
17344
      -- From the previous package
17345
      IF ( x_tag = 'SVN' AND p_srcpath != x_srcpath )
17346
      THEN
17347
        return return_svn_path_changed;
17348
      END IF;
17349
 
17350
      BEGIN
17351
         -- Import Dependencies
17352
         import_dependencies2 (pvid, dependenciesimportlist, userid);
17353
      END;
17354
 
17355
 
17356
      BEGIN
17357
         -- Split current version in parts
17358
         split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
17359
 
17360
         -- Update Package Details
17361
         UPDATE package_versions pv
17362
            SET pv.pkg_version = newpkgversion,
17363
                pv.v_ext = ssv_ext,
17364
                pv.v_mm = ssv_mm,
17365
                pv.v_nmm = ssv_nmm,
17366
                pv.src_path = x_srcpath,
17367
                pv.pkg_label = x_label,
17368
                pv.vcs_type_id = x_vcstypeid
17369
          WHERE pv.pv_id = pvid;
17370
      EXCEPTION
17371
         WHEN DUP_VAL_ON_INDEX
17372
         THEN
17373
            -- Package already exists, hence cannot be used for ripple build
17374
            RETURN return_package_already_exists;
17375
      END;
17376
 
17377
      -- Update the is_autobuildable
17378
      UPDATE package_versions
17379
         SET is_autobuildable = 'Y'
17380
       WHERE pv_id = pvid;
17381
 
17382
      -- DEVI-063601
17383
      -- For planned builds the modifier_id shouldn't be set to buildadm.
17384
      -- To ensure this the modifier_id is obtained so it can be restored after
17385
      -- the function pk_environment.auto_make_release is called.
17386
      -- This function calls, change_state, which sets the modifier_id to the
17387
      -- specified userid, which for auto builds is buildadm.
17388
      SELECT pv.modifier_id INTO iprev_modifier_id
17389
      FROM package_versions pv WHERE pv.pv_id = pvid;
17390
 
17391
      -- Now release package
17392
      pk_environment.auto_make_release (pvid,
17393
                                        rtagid,
17394
                                        userid,
17395
                                        vext,
17396
                                        ssv_ext,
17397
                                        clonefrompvid
17398
                                       );
17399
 
17400
      -- DEVI-063601
17401
      -- if it is a planned build then restore the modifier_id to the previous modifier
17402
      UPDATE package_versions pv SET pv.modifier_id = iprev_modifier_id
17403
      WHERE pv.pv_id = pvid;
17404
 
17405
      --Now clean the PLANNED_VERSIONS table
17406
      SELECT pkg_id
17407
        INTO pkgid
17408
        FROM PACKAGES
17409
       WHERE pkg_name = pkgname;
17410
 
17411
      DELETE FROM planned_versions
17412
            WHERE pkg_id = pkgid AND pkg_version = newpkgversion;
17413
 
17414
      RETURN pvid;
17415
   END;
17416
 
17417
/*-------------------------------------------------------------------------------------------------------*/
17418
--  import package dependencies (2nd attenpt)
17419
--  Package dependencies are an array of strings. Each string is of the form
17420
--    'PkgName','PkgVersion','PkgType'
17421
--  The use of an array of package dependencies allows packages with very long
17422
--  list of dependencies. More than can be put in to a VARCHAR2
17423
--
17424
   PROCEDURE import_dependencies2 (
17425
      pvid                     IN   NUMBER,
17426
      dependenciesimportlist   IN   relmgr_varchar2_tab_t,
17427
      userid                   IN   NUMBER
17428
   )
17429
   IS
17430
 
17431
      TYPE tdictionary IS TABLE OF VARCHAR2 (4000) INDEX BY VARCHAR2 (4000);
17432
 
17433
      seperator         VARCHAR2 (2)           := '||';
17434
      pkgname           VARCHAR2 (4000);
17435
      pkgversion        VARCHAR2 (4000);
17436
      pkgtype           VARCHAR2  (50);
17437
      pkgid             NUMBER;
17438
      vext              VARCHAR2 (4000);
17439
      dpvid             NUMBER;
17440
      cbuildtypes       tdictionary;
17441
      dependencyrow     NUMBER;
17442
      sdependency       VARCHAR2 (4000);
17443
      citemcollection   relmgr_varchar2_tab_t;
17444
 
17445
      CURSOR curbuildtype
17446
      IS
17447
         SELECT dpv.pkg_id || seperator || dpv.v_ext AS pkgid_ext,
17448
                dep.build_type
17449
           FROM package_dependencies dep, package_versions dpv
17450
          WHERE dep.pv_id = pvid AND dep.dpv_id = dpv.pv_id;
17451
 
17452
      recbuildtype      curbuildtype%ROWTYPE;
17453
   BEGIN
17454
      -- Get Current Dependencies
17455
      OPEN curbuildtype;
17456
 
17457
      FETCH curbuildtype
17458
       INTO recbuildtype;
17459
 
17460
      WHILE curbuildtype%FOUND
17461
      LOOP
17462
         cbuildtypes (recbuildtype.pkgid_ext) := recbuildtype.build_type;
17463
         FETCH curbuildtype INTO recbuildtype;
17464
      END LOOP;
17465
 
17466
      CLOSE curbuildtype;
17467
 
17468
      BEGIN
17469
         -- Remove old dependencies
17470
         DELETE FROM package_dependencies dep
17471
               WHERE dep.pv_id = pvid;
17472
 
17473
         -- Loop through dependencies
17474
         FOR dependencyrow IN 1 .. dependenciesimportlist.COUNT
17475
         LOOP
17476
            -- Extract pkg_name and pkg_version and type(optional)
17477
            sdependency := dependenciesimportlist (dependencyrow);
17478
            sdependency := REPLACE(sdependency, '''');
17479
            sdependency := REPLACE(sdependency, '"');
17480
            -- Remove empty dependency
17481
            IF LENGTH(sdependency) > 0 THEN
17482
              citemcollection := in_list_varchar2 (sdependency, ',');
17483
              IF citemcollection.COUNT  < 2
17484
              THEN
17485
                raise_application_error
17486
                  (-20000,
17487
                      'Dependency ['
17488
                   || sdependency
17489
                   || '] must have at least two ; separated fields!'
17490
                  );
17491
              END IF;
17492
              pkgname := citemcollection(1);
17493
              pkgversion := citemcollection(2);
17494
              IF citemcollection.COUNT >= 3
17495
              THEN
17496
                pkgtype := citemcollection(3);
17497
              ELSE
17498
                pkgtype := NULL;
17499
              END IF;
17500
              -- Dependency must exits to be linked against
17501
              BEGIN
17502
                 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
17503
                   INTO dpvid, pkgid, vext
17504
                   FROM package_versions pv, PACKAGES pkg
17505
                  WHERE pv.pkg_id = pkg.pkg_id
17506
                    AND pkg.pkg_name = pkgname
17507
                    AND pv.pkg_version = pkgversion;
17508
              EXCEPTION
17509
                 WHEN NO_DATA_FOUND
17510
                 THEN
17511
                    raise_application_error
17512
                                    (-20000,
17513
                                        'Dependency ['
17514
                                     || pkgname
17515
                                     || ' '
17516
                                     || pkgversion
17517
                                     || '] does not exist yet and cannot be used!'
17518
                                    );
17519
              END;
17520
 
17521
              -- Get Build Type (i.e. BuildPackageArchive or LinkPackageArchive)
17522
              IF pkgtype IS NULL
17523
              THEN
17524
                BEGIN
17525
                   pkgtype := cbuildtypes (pkgid || seperator || vext);
17526
 
17527
                   IF pkgtype IS NULL
17528
                   THEN
17529
                      -- Set build type to LinkPackageArchive by default
17530
                      pkgtype := 'L';
17531
                   END IF;
17532
                EXCEPTION
17533
                   WHEN NO_DATA_FOUND
17534
                   THEN
17535
                      pkgtype := 'L';
17536
                END;
17537
              END IF;
17538
 
17539
              -- Limit to known types
17540
              IF UPPER(pkgtype) like('B%') THEN
17541
                pkgtype := 'B';
17542
              ELSE
17543
                pkgtype := 'L';
17544
              END IF;  
17545
 
17546
              -- Insert Dependencies
17547
              update_package_dependency (pvid,
17548
                                         pkgname,
17549
                                         pkgversion,
17550
                                         pkgtype,
17551
                                         userid,
17552
 
17553
                                        );
17554
            END IF;
17555
         END LOOP;
17556
      END;
17557
   END;
17558
 
17559
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 17560
   FUNCTION return_last_package_version (pkgname IN VARCHAR2, rtagid IN NUMBER)
17561
      RETURN VARCHAR2
1373 dpurdie 17562
   IS
3959 dpurdie 17563
      pkgversion   VARCHAR2 (4000);
1373 dpurdie 17564
   BEGIN
3959 dpurdie 17565
      BEGIN
17566
         SELECT pv.pkg_version
17567
           INTO pkgversion
17568
           FROM PACKAGES pkg, release_content rc, package_versions pv
17569
          WHERE pv.pv_id = rc.pv_id
17570
            AND pkg.pkg_id = pv.pkg_id
17571
            AND pkg.pkg_name = pkgname
17572
            AND rc.rtag_id = rtagid;
17573
 
17574
         RETURN pkgversion;
17575
      END;
1373 dpurdie 17576
   END;
17577
 
17578
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 17579
   FUNCTION return_wip (pkgname IN VARCHAR2, rtagid IN NUMBER)
17580
      RETURN VARCHAR2
1373 dpurdie 17581
   IS
3959 dpurdie 17582
      pkgversion   VARCHAR2 (4000);
1373 dpurdie 17583
   BEGIN
3959 dpurdie 17584
      BEGIN
17585
         SELECT pv.pkg_version
17586
           INTO pkgversion
17587
           FROM PACKAGES pkg, work_in_progress wip, package_versions pv
17588
          WHERE pv.pv_id = wip.pv_id
17589
            AND pkg.pkg_id = pv.pkg_id
17590
            AND pkg.pkg_name = pkgname
17591
            AND wip.rtag_id = rtagid;
1373 dpurdie 17592
 
3959 dpurdie 17593
         IF pkgversion IS NULL
17594
         THEN
17595
            SELECT pv.pkg_version
17596
              INTO pkgversion
17597
              FROM PACKAGES pkg, planned pl, package_versions pv
17598
             WHERE pv.pv_id = pl.pv_id
17599
               AND pkg.pkg_id = pv.pkg_id
17600
               AND pkg.pkg_name = pkgname
17601
               AND pl.rtag_id = rtagid;
17602
         END IF;
17603
 
17604
         RETURN pkgversion;
17605
      END;
1373 dpurdie 17606
   END;
17607
 
17608
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 17609
   PROCEDURE update_dash_board (rtagid IN NUMBER)
1373 dpurdie 17610
   IS
3959 dpurdie 17611
      projid       NUMBER;
17612
      projiddb     NUMBER;
17613
      total        NUMBER;
17614
      auto_total   NUMBER;
17615
      rtagiddb     NUMBER;
1373 dpurdie 17616
   BEGIN
3959 dpurdie 17617
      SELECT COUNT (*)
17618
        INTO total
17619
        FROM release_content rc, package_versions pv
17620
       WHERE pv.pv_id = rc.pv_id AND rc.rtag_id = rtagid;
1373 dpurdie 17621
 
3959 dpurdie 17622
      SELECT COUNT (*)
17623
        INTO auto_total
17624
        FROM release_content rc, package_versions pv
17625
       WHERE pv.pv_id = rc.pv_id
17626
         AND pv.is_autobuildable = 'Y'
17627
         AND rc.rtag_id = rtagid;
17628
 
17629
      BEGIN
17630
         SELECT rtag_id
17631
           INTO rtagiddb
17632
           FROM dash_board
17633
          WHERE rtag_id = rtagid;
17634
 
17635
         SELECT proj_id
17636
           INTO projiddb
17637
           FROM dash_board
17638
          WHERE rtag_id = rtagid;
17639
      EXCEPTION
17640
         WHEN NO_DATA_FOUND
17641
         THEN
17642
            rtagiddb := '';
17643
      END;
17644
 
17645
      IF rtagiddb IS NULL
1373 dpurdie 17646
      THEN
3959 dpurdie 17647
         SELECT proj_id
17648
           INTO projid
17649
           FROM release_tags
17650
          WHERE rtag_id = rtagid;
17651
 
17652
         INSERT INTO dash_board
17653
                     (proj_id, rtag_id, last_build_time, automated_packages,
17654
                      total_packages
17655
                     )
17656
              VALUES (projid, rtagid, ora_sysdatetime, auto_total,
17657
                      total
17658
                     );
17659
      ELSE
17660
         UPDATE dash_board
17661
            SET last_build_time = ora_sysdatetime,
17662
                automated_packages = auto_total,
17663
                total_packages = total
17664
          WHERE proj_id = projiddb AND rtag_id = rtagiddb;
1373 dpurdie 17665
      END IF;
17666
   END;
17667
 
17668
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 17669
   FUNCTION exclude_from_build (
17670
      pvid          IN   NUMBER,
17671
      spkgversion   IN   VARCHAR2,
17672
      rtagid        IN   NUMBER,
17673
      username      IN   VARCHAR2
1373 dpurdie 17674
   )
3959 dpurdie 17675
      RETURN NUMBER
1373 dpurdie 17676
   IS
3959 dpurdie 17677
      userid              NUMBER;
17678
      outerrcode          NUMBER;
17679
      pkgid               NUMBER;
17680
 
17681
      CURSOR dnr_duplicate_cur
17682
      IS
17683
         SELECT *
17684
           FROM do_not_ripple
17685
          WHERE pv_id = pvid AND rtag_id = rtagid;
17686
 
17687
      dnr_duplicate_rec   dnr_duplicate_cur%ROWTYPE;
1373 dpurdie 17688
   BEGIN
3959 dpurdie 17689
      outerrcode := -1;       -- Set default return error code to ERROR state
17690
 
17691
      /*--------------- Business Rules Here -------------------*/
17692
      IF (rtagid IS NULL)
1373 dpurdie 17693
      THEN
3959 dpurdie 17694
         RETURN outerrcode;
17695
--         raise_application_error (-20000, 'RtagId must be supplied.');
17696
      END IF;
17697
 
17698
      IF (pvid IS NULL)
1373 dpurdie 17699
      THEN
3959 dpurdie 17700
         RETURN outerrcode;
17701
--         raise_application_error (-20000, 'PvId must be supplied.');
17702
      END IF;
17703
 
17704
      IF (username IS NULL)
1373 dpurdie 17705
      THEN
3959 dpurdie 17706
         RETURN outerrcode;
17707
--         raise_application_error (-20000, 'UserName must be supplied.');
17708
      END IF;
17709
 
17710
      -- Get user_id
17711
      BEGIN
17712
         SELECT usr.user_id
17713
           INTO userid
17714
           FROM users usr
17715
          WHERE UPPER (usr.user_name) = UPPER (username)
17716
            AND usr.is_disabled IS NULL;
17717
      EXCEPTION
17718
         WHEN NO_DATA_FOUND
17719
         THEN
17720
            RETURN outerrcode;
17721
--            raise_application_error (-20000,
17722
--                                        'UserName '
17723
--                                     || username
17724
--                                     || ' is not valid or disabled.'
17725
--                                    );
17726
      END;
17727
 
17728
      OPEN dnr_duplicate_cur;
17729
 
17730
      FETCH dnr_duplicate_cur
17731
       INTO dnr_duplicate_rec;
17732
 
17733
      IF dnr_duplicate_cur%FOUND
1373 dpurdie 17734
      THEN
3959 dpurdie 17735
         outerrcode := 0;
1373 dpurdie 17736
      END IF;
3959 dpurdie 17737
 
17738
      IF dnr_duplicate_cur%NOTFOUND
17739
      THEN
17740
         /* No duplicate recordset */
17741
         unripple_package (pvid, rtagid, userid);
17742
         outerrcode := 0;                            -- Set return to SUCCESS
17743
      END IF;
17744
 
17745
      CLOSE dnr_duplicate_cur;
17746
 
17747
      SELECT pkg_id
17748
        INTO pkgid
17749
        FROM package_versions
17750
       WHERE pv_id = pvid;
17751
 
17752
      DELETE FROM planned_versions
17753
            WHERE pkg_id = pkgid AND pkg_version = spkgversion;
17754
 
17755
      RETURN outerrcode;
1373 dpurdie 17756
   END;
17757
 
17758
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 17759
   FUNCTION exclude_indirect_from_build (
17760
      pvid          IN   NUMBER,
17761
      spkgversion   IN   VARCHAR2,
17762
      rtagid        IN   NUMBER,
17763
      username      IN   VARCHAR2,
17764
      rootpvid      IN   NUMBER,
17765
      rootcause     IN   VARCHAR2,
17766
      rootfile      IN   VARCHAR2
1373 dpurdie 17767
   )
3959 dpurdie 17768
      RETURN NUMBER
1373 dpurdie 17769
   IS
3959 dpurdie 17770
      userid              NUMBER;
17771
      outerrcode          NUMBER;
17772
      pkgid               NUMBER;
17773
 
17774
      CURSOR dnr_duplicate_cur
17775
      IS
17776
         SELECT *
17777
           FROM do_not_ripple
17778
          WHERE pv_id = pvid AND rtag_id = rtagid;
17779
 
17780
      dnr_duplicate_rec   dnr_duplicate_cur%ROWTYPE;
1373 dpurdie 17781
   BEGIN
3959 dpurdie 17782
      outerrcode := -1;       -- Set default return error code to ERROR state
17783
 
17784
      /*--------------- Business Rules Here -------------------*/
17785
      IF (rtagid IS NULL)
1373 dpurdie 17786
      THEN
3959 dpurdie 17787
         RETURN outerrcode;
17788
--         raise_application_error (-20000, 'RtagId must be supplied.');
17789
      END IF;
17790
 
17791
      IF (pvid IS NULL)
1373 dpurdie 17792
      THEN
3959 dpurdie 17793
         RETURN outerrcode;
17794
--         raise_application_error (-20000, 'PvId must be supplied.');
17795
      END IF;
17796
 
17797
      IF (username IS NULL)
1373 dpurdie 17798
      THEN
3959 dpurdie 17799
         RETURN outerrcode;
17800
--         raise_application_error (-20000, 'UserName must be supplied.');
1373 dpurdie 17801
      END IF;
3959 dpurdie 17802
 
17803
      -- Get user_id
17804
      BEGIN
17805
         SELECT usr.user_id
17806
           INTO userid
17807
           FROM users usr
17808
          WHERE UPPER (usr.user_name) = UPPER (username)
17809
            AND usr.is_disabled IS NULL;
17810
      EXCEPTION
17811
         WHEN NO_DATA_FOUND
17812
         THEN
17813
            RETURN outerrcode;
17814
--            raise_application_error (-20000,
17815
--                                        'UserName '
17816
--                                     || username
17817
--                                     || ' is not valid or disabled.'
17818
--                                    );
17819
      END;
17820
 
17821
     /* No duplicate recordset */
17822
     unripple_package_indirect (pvid, rtagid, userid, rootpvid, rootcause, rootfile);
17823
     outerrcode := 0;                            -- Set return to SUCCESS
17824
 
17825
      SELECT pkg_id
17826
        INTO pkgid
17827
        FROM package_versions
17828
       WHERE pv_id = pvid;
17829
 
17830
      DELETE FROM planned_versions
17831
            WHERE pkg_id = pkgid AND pkg_version = spkgversion;
17832
 
17833
      RETURN outerrcode;
1373 dpurdie 17834
   END;
17835
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 17836
   PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2)
1373 dpurdie 17837
   IS
17838
   BEGIN
3959 dpurdie 17839
      INSERT INTO abt_action_log
17840
                  (rcon_id, action_datetime, action
17841
                  )
17842
           VALUES (rconid, ora_sysdatetime, action
17843
                  );
1373 dpurdie 17844
   END;
17845
 
17846
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 17847
   FUNCTION insert_package_metrics (
17848
      rtagid                   IN   NUMBER,
17849
      pkgname                  IN   VARCHAR2,
17850
      vext                     IN   VARCHAR2,
17851
      metricstring             IN   VARCHAR2
1373 dpurdie 17852
   )
3959 dpurdie 17853
      RETURN NUMBER
1373 dpurdie 17854
   IS
3959 dpurdie 17855
      citemcollection          relmgr_varchar2_tab_t  := relmgr_varchar2_tab_t ();
17856
      lv_pvid                  NUMBER                 := 0;
17857
      rownumber                NUMBER;
17858
      rowcontent               VARCHAR2(4000);
17859
      metricname               VARCHAR2(1000);
17860
      metricvalue              VARCHAR2(4000);
17861
      return_insert_error      NUMBER                 := -1;
17862
      return_insert_success    NUMBER                 := 0;
17863
 
17864
      /* Metrics */
17865
      lv_branches                 NUMBER;
17866
      lv_branchlist               VARCHAR2(4000);
17867
      lv_codefiles                NUMBER;
17868
      lv_ignoredfiles             NUMBER;
17869
      lv_directories              NUMBER;
17870
      lv_directorydepth           NUMBER;
17871
      lv_totalfiles               NUMBER;
17872
      lv_makefiles                NUMBER;
17873
      lv_blanklines               NUMBER;
17874
      lv_codelines                NUMBER;
17875
      lv_commentlines             NUMBER;
17876
 
1373 dpurdie 17877
   BEGIN
3959 dpurdie 17878
      /*--------------- Business Rules Here -------------------*/
17879
      IF (rtagid IS NULL)
17880
      THEN
17881
         RETURN return_insert_error;
17882
      END IF;
1373 dpurdie 17883
 
3959 dpurdie 17884
      IF (pkgname IS NULL)
17885
      THEN
17886
         RETURN return_insert_error;
17887
      END IF;
17888
 
17889
      IF (metricstring IS NULL)
17890
      THEN
17891
         RETURN return_insert_error;
17892
      END IF;
17893
 
17894
      BEGIN
17895
         SELECT pv.pv_id
17896
           INTO lv_pvid
17897
           FROM package_versions pv, packages pkg, release_content rc
17898
          WHERE pv.pkg_id = pkg.pkg_id
17899
            AND rc.rtag_id = rtagid
17900
            AND pv.pv_id = rc.pv_id
17901
            AND pkg.pkg_name = pkgname
17902
            AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
17903
      EXCEPTION
17904
           WHEN NO_DATA_FOUND
17905
           THEN
17906
                lv_pvid := 0;
17907
      END;
17908
 
17909
      citemcollection := in_list_varchar2 (metricstring, ';');
17910
 
17911
      FOR rownumber IN 1 .. citemcollection.COUNT
17912
      LOOP
17913
         rowcontent := citemcollection(rownumber);
17914
         metricvalue := SUBSTR(rowcontent, (INSTR(rowcontent, '=') + 1));
17915
         metricname := REGEXP_REPLACE(rowcontent, '=.*$', '');
17916
 
17917
         IF    metricname = 'ccbranch.count' THEN lv_branches := metricvalue;
17918
         ELSIF metricname = 'ccbranch.list' THEN lv_branchlist := metricvalue;
17919
         ELSIF metricname = 'code.files' THEN lv_codefiles := metricvalue;
17920
         ELSIF metricname = 'code.ignored' THEN lv_ignoredfiles := metricvalue;
17921
         ELSIF metricname = 'count.dir' THEN lv_directories := metricvalue;
17922
         ELSIF metricname = 'count.dirdepth' THEN lv_directorydepth := metricvalue;
17923
         ELSIF metricname = 'count.file' THEN lv_totalfiles := metricvalue;
17924
         ELSIF metricname = 'count.makefile' THEN lv_makefiles := metricvalue;
17925
         ELSIF metricname = 'lines.blank' THEN lv_blanklines := metricvalue;
17926
         ELSIF metricname = 'lines.code' THEN lv_codelines := metricvalue;
17927
         ELSIF metricname = 'lines.comment' THEN lv_commentlines := metricvalue;
17928
         END IF;
17929
      END LOOP;
17930
 
17931
      IF (lv_pvid > 0)
17932
      THEN
17933
         -- Delete any existing entries for this package version to makes sure our data is untainted
17934
         DELETE FROM package_metrics pm
17935
         WHERE pm.pv_id = lv_pvid;
17936
 
17937
         -- Insert the new data into the metrics table
17938
         INSERT INTO package_metrics
17939
                     (pv_id, branches, branch_list, code_files, ignored_files, directories, directory_depth,
17940
                      total_files, makefiles, blank_lines, code_lines, comment_lines, created_stamp
17941
                     )
17942
              VALUES (lv_pvid, lv_branches, lv_branchlist, lv_codefiles, lv_ignoredfiles, lv_directories, lv_directorydepth,
17943
                      lv_totalfiles, lv_makefiles, lv_blanklines, lv_codelines, lv_commentlines, ora_sysdatetime
17944
                     );
17945
 
17946
         -- Now update the Release_Metrics Table
17947
         update_release_metrics(rtagid);
17948
 
17949
         RETURN return_insert_success;
17950
      ELSE
17951
         RETURN return_insert_error;
17952
      END IF;
1373 dpurdie 17953
   END;
17954
 
17955
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 17956
   PROCEDURE update_release_metrics (rtagid IN NUMBER)
1373 dpurdie 17957
   IS
3959 dpurdie 17958
      lv_totalpackages       NUMBER;
17959
      lv_autobuilt           NUMBER;
17960
      lv_linesofcode         NUMBER;
17961
      lv_unittested          NUMBER;
17962
      lv_autotested          NUMBER;
17963
      lv_numOfbranches       NUMBER;
17964
      lv_lastbuildtime       DATE;
1373 dpurdie 17965
   BEGIN
3959 dpurdie 17966
      IF (rtagid > 0)
17967
      THEN
17968
         -- Get the total number of packages in this release and the number of
17969
         -- those that are autobuilt
17970
         SELECT COUNT (DISTINCT rc.pv_id),
17971
                COUNT (DISTINCT autobuilt_qry.pv_id)
17972
           INTO lv_totalpackages, lv_autobuilt
17973
           FROM release_content rc,
17974
                package_versions pv,
17975
                (
17976
                 SELECT rc.pv_id
17977
                   FROM release_content rc,
17978
                        package_versions pv
17979
                  WHERE pv.is_autobuildable = 'Y'
17980
                    AND pv.pv_id = rc.pv_id
17981
                    AND rc.rtag_id = rtagid
17982
                ) autobuilt_qry
17983
          WHERE pv.pv_id = rc.pv_id
17984
            AND rc.rtag_id = rtagid
17985
            AND autobuilt_qry.pv_id (+) = rc.pv_id;
1373 dpurdie 17986
 
3959 dpurdie 17987
         -- Get the build time of the last package built in this release and the
17988
         -- total number of lines of code
17989
         SELECT MAX(pm.created_stamp),
17990
                SUM(pm.code_lines)
17991
           INTO lv_lastbuildtime, lv_linesofcode
17992
           FROM package_metrics pm, release_content rc
17993
          WHERE pm.pv_id = rc.pv_id
17994
            AND rc.rtag_id = rtagid;
17995
 
17996
         -- Get the number of packages with unit tests in this release and the
17997
         -- number of those that are autotested
17998
         SELECT COUNT(DISTINCT ut.pv_id) INTO lv_unittested
17999
           FROM unit_tests ut,
18000
                release_content rc
18001
          WHERE ut.pv_id = rc.pv_id
18002
            AND rc.rtag_id = rtagid
18003
        AND ut.test_types_fk != 1;
18004
 
18005
        SELECT COUNT(DISTINCT ut.pv_id) INTO lv_autotested
18006
          FROM unit_tests ut,
18007
               release_content rc
18008
         WHERE ut.pv_id = rc.pv_id
18009
           AND rc.rtag_id = rtagid
18010
           AND ut.test_types_fk = 7;
18011
 
18012
 
18013
         -- Count the number of unique branches in the packages in this release.
18014
--         SELECT COUNT(DISTINCT branch) INTO lv_numOfbranches
18015
--           FROM (
18016
--                SELECT pv_id,
18017
--                       regexp_substr(str, '[^,]+', 1, level) branch,
18018
--                       level lv,
18019
--                       lag(level, 1, 0) over (partition by pv_id order by level) lg
18020
--                  FROM (
18021
--                       SELECT pm.pv_id,
18022
--                              ','||pm.branch_list str
18023
--                         FROM package_metrics pm,
18024
--                              release_content rc
18025
--                        WHERE pm.pv_id = rc.pv_id
18026
--                          AND rc.rtag_id = rtagid
18027
--                       )
18028
--                CONNECT BY regexp_substr(str, '[^,]+', 1, LEVEL) IS NOT NULL
18029
--                )
18030
--          WHERE lv != lg;
18031
 
18032
         UPDATE release_metrics rm
18033
            SET rm.total_packages = lv_totalpackages,
18034
                rm.autobuilt = lv_autobuilt,
18035
                rm.lines_of_code = lv_linesofcode,
18036
                rm.unit_tested = lv_unittested,
18037
                rm.autotested = lv_autotested,
18038
--                rm.branches = lv_numOfbranches,
18039
                rm.last_build_time = lv_lastbuildtime
18040
          WHERE rtag_id = rtagid;
18041
 
18042
         IF (SQL%ROWCOUNT = 0)
18043
         THEN
18044
            INSERT INTO release_metrics
18045
                        (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,
18046
                         autotested, last_build_time
18047
                        )
18048
                 VALUES (rtagid, lv_totalpackages, lv_autobuilt, lv_linesofcode, lv_unittested,
18049
                         lv_autotested, lv_lastbuildtime
18050
                        );
18051
         END IF;
18052
--         IF (SQL%ROWCOUNT = 0)
18053
--         THEN
18054
--            INSERT INTO release_metrics
18055
--                        (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,
18056
--                         autotested, branches, last_build_time
18057
--                        )
18058
--                 VALUES (rtagid, lv_totalpackages, lv_autobuilt, lv_linesofcode, lv_unittested,
18059
--                         lv_autotested, lv_numOfbranches, lv_lastbuildtime
18060
--                        );
18061
--         END IF;
18062
--      ELSE
18063
--         raise_application_error (-20000, 'RtagId must be supplied.');
18064
      END IF;
1373 dpurdie 18065
   END;
18066
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 18067
   FUNCTION return_vcs_tag(pvid IN NUMBER) RETURN VARCHAR2
1373 dpurdie 18068
   IS
3959 dpurdie 18069
      vcstypeid    NUMBER;
18070
      vcstag       VARCHAR2(32);
18071
      label        VARCHAR2(60);
18072
      srcpath      VARCHAR2(2000);
18073
      vcstypeid_cc NUMBER;
18074
      vcstypeid_uc NUMBER;
1373 dpurdie 18075
   BEGIN
3959 dpurdie 18076
      -- Get the VCS_TYPE_ID for the ClearCase version control system. We do this so that we make no assumptions about
18077
      -- what the primary key value is for the ClearCase VCS entry.
18078
      BEGIN
18079
         SELECT vt.vcs_type_id
18080
         INTO vcstypeid_cc
18081
         FROM VCS_TYPE vt
18082
         WHERE vt.tag = 'CC';
18083
         EXCEPTION
18084
            WHEN NO_DATA_FOUND THEN
18085
               raise_application_error (-20000, 'Database is missing compulsory CC version control system tag!');
18086
      END;
1373 dpurdie 18087
 
3959 dpurdie 18088
      -- Get the VCS_TYPE_ID for the Uncontrolled version control system. We do this so that we make no assumptions about
18089
      -- what the primary key value is for the Uncontrolled VCS entry.
18090
      BEGIN
18091
         SELECT vt.vcs_type_id
18092
         INTO vcstypeid_uc
18093
         FROM VCS_TYPE vt
18094
         WHERE vt.tag = 'UC';
18095
         EXCEPTION
18096
            WHEN NO_DATA_FOUND THEN
18097
               raise_application_error (-20000, 'Database is missing compulsory UC version control system tag!');
18098
      END;
18099
 
18100
      -- Get the PKG_LABEL, SRC_PATH, VCS_TYPE_ID for the package version
18101
      -- As additional VCS types are introduced, we may have to extend what this SELECT statement returns
18102
      BEGIN
18103
         SELECT pv.pkg_label, pv.src_path,
18104
           (CASE WHEN pv.pkg_label = 'N/A' AND pv.vcs_type_id IS NULL THEN vcstypeid_uc
18105
                 WHEN pv.vcs_type_id IS NULL THEN vcstypeid_cc
18106
                 ELSE pv.vcs_type_id END) AS vcs_type_id
18107
         INTO label, srcpath, vcstypeid
18108
         FROM PACKAGE_VERSIONS pv
18109
         WHERE pv.pv_id = pvid;
18110
         EXCEPTION
18111
            WHEN NO_DATA_FOUND THEN
18112
               raise_application_error (-20000, 'Package Version Not Found!');
18113
      END;
18114
 
18115
      -- Get the VCS TAG for the VCS_TYPE_ID.
18116
      BEGIN
18117
         SELECT vt.tag
18118
         INTO vcstag
18119
         FROM VCS_TYPE vt
18120
         WHERE vt.vcs_type_id = vcstypeid;
18121
         EXCEPTION
18122
            WHEN NO_DATA_FOUND THEN
18123
               raise_application_error (-20000, 'Could not get VCS Tag for the package version!');
18124
      END;
18125
 
18126
      -- Return value depending upon which VCS Tag is being used.
18127
      -- As additional VCS types are introduced, we have to add additional WHEN clauses
18128
      CASE vcstag
18129
         WHEN 'CC' THEN
18130
            RETURN vcstag || '::' || srcpath || '::' || label;
18131
         WHEN 'SVN' THEN
18132
            RETURN vcstag || '::' || srcpath || '::' || label;
18133
         ELSE
18134
            RETURN vcstag || '::';
18135
      END CASE;
18136
 
1373 dpurdie 18137
   END;
3959 dpurdie 18138
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 18139
 
3959 dpurdie 18140
/*-------------------------------------------------------------------------------------------------------
18141
Name:        update_vcs_details
18142
Description: Updates the Version Control System (vcs) details specified in the vcstag
18143
             parameter for the specified package version.
18144
             The specified package vcstag is parsed and split into 3 fields:
18145
                vcs type, src path, label
18146
             These fields are then stored for the specified pv_id in the package_versions, table.
18147
             An action is recorded in the action log and provides information for tracking and
18148
             for restoring the previous vcs settings if a recovery is required.
18149
Paramters:
18150
             ipv_id:     Package version identifier
18151
             vcstag:     Full version control tag.
18152
                         Examples:
18153
                             "SVN::AUPERASVN01/DPG_SWBase/tools/trunk::daf_tools_25.1.7027.cr@1234"
18154
                            "CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr"
18155
             user_id:    Identifier of the user that is performing this function.
18156
*/
18157
PROCEDURE update_vcs_details(ipv_id IN NUMBER, vcstag IN VARCHAR2, user_id IN NUMBER)
1373 dpurdie 18158
   IS
3959 dpurdie 18159
      ivcs_type_id   NUMBER;
18160
      svcs_type      VARCHAR2(128);
18161
      ssrc_path      VARCHAR2(512);
18162
      spkg_label     VARCHAR2(512);
18163
      spattern       VARCHAR2(64);
18164
      saction_desc   VARCHAR2(2048);
18165
      old_vcs_type   VARCHAR2(128);
18166
      old_src_path   VARCHAR2(512);
18167
      old_pkg_label  VARCHAR2(512);
18168
      old_pkg_vcstag VARCHAR2(1024);
18169
      i              NUMBER;
18170
      vcount         NUMBER;
1373 dpurdie 18171
   BEGIN
3959 dpurdie 18172
     -- Split vcs tag into fields: vcs type, src path, label
18173
     -- Fields are separated by '::'
18174
     -- e.g "CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr"
18175
     -- The below regular expression pattern has groups to achieve this.
1373 dpurdie 18176
 
3959 dpurdie 18177
     spattern:= '^([^:]*)::([^:]*)(::(.*))?$';
18178
 
18179
     --As Oracle 10g does not allow REGEXP_SUBSTR to return a group,
18180
     --REGEXP_REPLACE is used instead (Note: Oracle 11g has this enhancement).
18181
     SELECT REGEXP_REPLACE(vcstag,spattern, '\1') INTO svcs_type  FROM DUAL;
18182
     SELECT REGEXP_REPLACE(vcstag,spattern, '\2') INTO ssrc_path  FROM DUAL;
18183
     SELECT REGEXP_REPLACE(vcstag,spattern, '\4') INTO spkg_label FROM DUAL;
18184
 
18185
     -- Validate vcs type
18186
     BEGIN
18187
       SELECT vc.vcs_type_id INTO ivcs_type_id FROM vcs_type vc WHERE UPPER(svcs_type) = UPPER(vc.tag);
18188
     EXCEPTION
18189
       WHEN NO_DATA_FOUND THEN
18190
         raise_application_error (-20000, 'Invalid vcs type: ' || '"' || svcs_type || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
18191
       --RAISE;
18192
     END;
18193
 
18194
     -- If Clearcase
18195
     IF (ivcs_type_id = 2) THEN
18196
       -- Validate source path
18197
       IF NOT REGEXP_LIKE(ssrc_path,'^(\\|\/)[a-z]+[0-9a-z_\.\-\\\/ -]*$','i') THEN
18198
         raise_application_error (-20000, 'Invalid CC src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
18199
       END IF;
18200
 
18201
       -- Validate label
18202
       -- For clearcase the label must be specified. For subversion it is not required.
18203
       IF NOT REGEXP_LIKE(spkg_label,'^[0-9a-z_\.\-]+$','i') THEN
18204
         raise_application_error (-20000, 'Invalid CC label:' || '"' || spkg_label || '"' || ' for package version:' || ipv_id || ', vcstag:' || '"' || vcstag || '"');
18205
       END IF;
18206
 
18207
     -- if Subversion
18208
     ELSIF (ivcs_type_id = 23) THEN
18209
       -- general validity
18210
       -- Not as picky as the RM Data entry
18211
       IF NOT REGEXP_LIKE(ssrc_path,'^([0-9a-z_\.\-]+)(\/([0-9a-z_\.\-]+))+$','i') THEN
18212
         raise_application_error (-20000, 'Invalid SVN src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
18213
       END IF;
18214
 
18215
       -- Validate Tag
18216
       -- May be a Peg or a Label
18217
       IF NOT REGEXP_LIKE(spkg_label,'^@?[0-9]+$','i') THEN
18218
           IF NOT REGEXP_LIKE(spkg_label,'^[0-9a-z_\.\-]+($|@[0-9]+)','i') THEN
18219
             raise_application_error (-20000, 'Invalid SVN tag:' || '"' || spkg_label || '"' || ' for package version:' || ipv_id || ', vcstag:' || '"' || vcstag || '"');
18220
           END IF;
18221
       END IF;
18222
 
18223
        -- Check for suitable ending
18224
        IF NOT REGEXP_LIKE(ssrc_path,'(\/tags$)|(\/branches\/)|(\/trunk$)','i') THEN
18225
            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 || '"');
18226
        END IF;
18227
 
18228
       -- Check for combined use of tags, branches, trunk or repeats of each
18229
       -- Count occurrences of /tags or /branches/ or /trunk
18230
       vcount:=0;
18231
       i:=1;
18232
       WHILE i > 0 LOOP
18233
         i:=REGEXP_INSTR(ssrc_path,'(\/tags(\/|$))|(\/branches(\/|$))|(\/trunk(\/|$))',i,1,1,'i');
18234
         IF i > 0 THEN
18235
           -- if found then increment count
18236
           vcount:=vcount+1;
18237
           i:=i-1;  -- move index back to "/"
18238
         END IF;
18239
       END LOOP;
18240
 
18241
       IF vcount = 0  THEN
18242
         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 || '"');
18243
       END IF;
18244
 
18245
       IF vcount > 1  THEN
18246
         raise_application_error (-20000, 'Combined use of /trunk, /tags, or /branches/. Invalid SVN src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
18247
       END IF;
18248
 
18249
 
18250
     END IF;
18251
 
18252
     BEGIN
18253
       -- Get current vcs tag for specified package version
18254
       SELECT pv.src_path, pv.pkg_label, vc.tag as vcs_type
18255
       INTO old_src_path, old_pkg_label, old_vcs_type
18256
       FROM package_versions pv, vcs_type vc
18257
       WHERE pv.pv_id = ipv_id
18258
       AND pv.vcs_type_id = vc.vcs_type_id (+);
18259
 
18260
     EXCEPTION
18261
       WHEN NO_DATA_FOUND THEN
18262
         raise_application_error (-20000, 'Package version not found: ' || ipv_id);
18263
     END;
18264
 
18265
     old_pkg_vcstag:= old_vcs_type || '::' || old_src_path;
18266
     IF (old_pkg_label IS NOT NULL) THEN
18267
       old_pkg_vcstag:=old_pkg_vcstag || '::' || old_pkg_label;
18268
     END IF;
18269
 
18270
     -- Create action description
18271
     -- This description will contain the old and new tags.
18272
     -- Its purpose is to provide information for tracking and for restoring previous vcs settings if a recovery is required.
18273
     -- An example of the action description is below:
18274
     --   OldTag:CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr NewTag:SVN::DPG_SWBase/tools/tags/daf_tools_25.1.7027.cr
18275
     saction_desc:='OldTag:' || old_pkg_vcstag || ' ' || 'NewTag:' || vcstag;
18276
 
18277
     -- Store new vcs details
18278
     UPDATE package_versions SET
18279
       src_path = ssrc_path,
18280
       pkg_label = spkg_label,
18281
       vcs_type_id = ivcs_type_id
18282
     WHERE
18283
       pv_id = ipv_id;
18284
 
18285
     -- Store action in action log so that we can back track and also restore vcs settings if required.
18286
     log_action (ipv_id,'VcsConversion',user_id,saction_desc);
18287
 
18288
   END update_vcs_details;
18289
 
18290
/*-------------------------------------------------------------------------------------------------------
18291
Name:        isSVN
18292
Description: Determine if any of the packages versions are controlled under SVN
18293
			 Intended to be used to prevent users from releasing a package
18294
			 that has been migrated to SVN
18295
 
18296
Paramters:	pkgid:     Package ID
18297
 
18298
Returns:	Number of versions under SVN version control
18299
*/
6031 dpurdie 18300
 
3959 dpurdie 18301
FUNCTION isSVN( pkgid IN NUMBER )
18302
    RETURN NUMBER
18303
    IS
18304
    svncount   NUMBER  := 0;
18305
   BEGIN
18306
        SELECT COUNT(*) INTO svncount FROM PACKAGE_VERSIONS pv WHERE pv.PKG_ID = pkgid AND pv.VCS_TYPE_ID = 23;
18307
        RETURN (svncount);
1373 dpurdie 18308
   END;
6031 dpurdie 18309
 
3959 dpurdie 18310
/*-------------------------------------------------------------------------------------------------------
18311
Name:        isSVNbyName
18312
Description: Determine if any of the packages versions are controlled under SVN
18313
			 Intended to be used to prevent users from releasing a package
18314
			 that has been migrated to SVN
18315
 
18316
Paramters:	pkgname:	Package Name
18317
 
18318
Returns:	Number of versions under SVN version control
18319
*/
18320
 
6031 dpurdie 18321
FUNCTION isSVNbyName( pkgname IN VARCHAR2 )
3959 dpurdie 18322
    RETURN NUMBER
18323
IS
18324
   svncount   NUMBER  := 0;
18325
   BEGIN
18326
        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;
18327
        RETURN (svncount);
18328
   END;
5172 dpurdie 18329
/*-------------------------------------------------------------------------------------------------------
18330
Name:        new_build_instance
18331
Description: Create a new entry in the BUILD_INSTANCE table
18332
             The BUILD_ID will be allocated.
18333
             The timestamp will be created
18334
 
18335
Paramters:	rtag_id:	Release ID - must exist
18336
            pv_id:    Package ID - must exist
18337
            reason:   Reason code for the build
18338
 
18339
Returns:	BUILD_ID for the new entry
18340
          Returns -1 on error, PV_ID or RTAG_ID do not exist
6031 dpurdie 18341
*/
18342
FUNCTION new_build_instance( rtag_id IN NUMBER, pv_id IN NUMBER , reason IN CHAR)
18343
  RETURN NUMBER
5172 dpurdie 18344
  IS
18345
    build_id NUMBER := 0;
18346
  BEGIN
18347
    INSERT into BUILD_INSTANCES (RTAG_ID, PV_ID, REASON)
18348
    values( rtag_id, pv_id, reason)
18349
    returning BUILD_ID into build_id;
18350
    return build_id;
18351
  EXCEPTION
18352
    WHEN OTHERS THEN
18353
      return -1;
18354
  END;
6031 dpurdie 18355
 
5172 dpurdie 18356
/*-------------------------------------------------------------------------------------------------------
18357
Name: update_build_instance
18358
Description: Update fields in an existing build instance
18359
Returns: -1 on error
18360
*/
18361
FUNCTION update_build_instance(
18362
    nbuild_id IN NUMBER,
18363
    npv_id    IN NUMBER DEFAULT NULL,
18364
    nstate    IN CHAR DEFAULT NULL )
18365
  RETURN NUMBER
18366
IS
18367
BEGIN
18368
  IF ( npv_id IS NOT NULL AND npv_id > 0 ) THEN
18369
    UPDATE BUILD_INSTANCES SET PV_ID = npv_id WHERE BUILD_ID = nbuild_id;
18370
    IF SQL%NOTFOUND THEN
18371
      RETURN -2;
18372
    END IF;
18373
  END IF;
6031 dpurdie 18374
 
5172 dpurdie 18375
  IF ( nstate        IS NOT NULL ) THEN
18376
    IF (LENGTH(nstate) = 1 ) THEN
18377
      UPDATE BUILD_INSTANCES SET STATE = nstate WHERE BUILD_ID = nbuild_id;
18378
        IF SQL%NOTFOUND THEN
18379
          RETURN -3;
18380
        END IF;
18381
    ELSE
18382
      RETURN -4;
18383
    END IF;
18384
  END IF;
6031 dpurdie 18385
 
5172 dpurdie 18386
  RETURN 1;
18387
  EXCEPTION
18388
    WHEN OTHERS THEN
18389
      RETURN -1;
18390
  END;
18391
 
18392
/*-------------------------------------------------------------------------------------------------------
18393
Name:        insert_test_run
18394
Description: Insert data into the test_run table
18395
 
6031 dpurdie 18396
 
5172 dpurdie 18397
Paramters:	See below
18398
 
18399
Returns:	1 on success
18400
          Returns -1 on error
6031 dpurdie 18401
*/
18402
  FUNCTION insert_test_run(
18403
      build_id  IN NUMBER,
18404
      name      IN VARCHAR2,
18405
      outcome   IN VARCHAR2,
18406
      platform  IN VARCHAR2,
18407
      stype     IN VARCHAR2,
18408
      duration  IN NUMBER default null,
5172 dpurdie 18409
      message   IN CLOB default null
18410
      ) return NUMBER
18411
IS
18412
  sName VARCHAR2(1000) := name;
18413
  sNameLen NUMBER;
6031 dpurdie 18414
 
5172 dpurdie 18415
BEGIN
18416
  sNameLen := LENGTH(sName);
5384 dpurdie 18417
  IF sNameLen >= 199 Then
6031 dpurdie 18418
    sName := '...' || SUBSTR(sName, sNameLen - 196);
5172 dpurdie 18419
  END IF;
18420
 
18421
  INSERT into TEST_RUN
18422
    (BUILD_ID, TEST_NAME, TEST_OUTCOME, TIME_TAKEN,FAIL_MESSAGE,PLATFORM, TYPE)
18423
    VALUES(build_id,sName,outcome, duration, message, platform, stype);
18424
    return 1;
18425
  EXCEPTION
18426
    WHEN OTHERS THEN
18427
      return -1;
18428
 
18429
END;
6031 dpurdie 18430
 
3959 dpurdie 18431
   END;
4040 dpurdie 18432
 
1374 dpurdie 18433
/
5892 dpurdie 18434
 
6031 dpurdie 18435
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "RM_READONLY";
18436
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "MS_READONLY";
6999 dpurdie 18437
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "DM_READONLY";
4040 dpurdie 18438
--------------------------------------------------------
18439
--  DDL for Package Body PK_WORK_IN_PROGRESS
18440
--------------------------------------------------------
18441
 
5172 dpurdie 18442
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS" IS
1373 dpurdie 18443
 
18444
/*
18445
------------------------------
18446
||  Last Modified:  S.Vukovic
3959 dpurdie 18447
||  Modified Date:  2/May/2005
1373 dpurdie 18448
||  Body Version:   1.0
18449
------------------------------
18450
*/
18451
 
18452
 
18453
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 18454
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 18455
 
3959 dpurdie 18456
	oldPvId NUMBER;
18457
	ReleaseLocation VARCHAR2(4000);
18458
	sLocation VARCHAR2(4000) := NULL;
1373 dpurdie 18459
 
3959 dpurdie 18460
 
1373 dpurdie 18461
BEGIN
18462
	/*--------------- Business Rules Here -------------------*/
3959 dpurdie 18463
	/*-------------------------------------------------------*/
1373 dpurdie 18464
 
3959 dpurdie 18465
	BEGIN
5384 dpurdie 18466
		-- Check if Exists in "Work in progress" anywhere in the world in a non-closed Release
3959 dpurdie 18467
		SELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME  INTO sLocation
18468
		  FROM WORK_IN_PROGRESS wip,
18469
		  	   RELEASE_TAGS rt,
18470
			   PROJECTS proj
18471
		 WHERE wip.PV_ID = newPvId
18472
		   AND wip.RTAG_ID = rt.RTAG_ID
5384 dpurdie 18473
		   AND rt.OFFICIAL in ('N','R','C')
3959 dpurdie 18474
		   AND rt.PROJ_ID = proj.PROJ_ID;
1373 dpurdie 18475
 
3959 dpurdie 18476
		EXCEPTION
18477
	    	WHEN NO_DATA_FOUND THEN
18478
	       		sLocation := NULL;
1373 dpurdie 18479
 
6031 dpurdie 18480
	END;
1373 dpurdie 18481
 
18482
 
6031 dpurdie 18483
 
3959 dpurdie 18484
	IF (sLocation IS NULL)  THEN
1373 dpurdie 18485
 
3959 dpurdie 18486
		-- Add to "Work in progress"
18487
		INSERT INTO WORK_IN_PROGRESS ( RTAG_ID, PV_ID, VIEW_ID )
18488
		VALUES( RtagId, newPvId, ViewId );
18489
 
18490
 
18491
	    /* LOG ACTION */
18492
		SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
18493
		  FROM PROJECTS proj,
18494
		  	   RELEASE_TAGS rt
18495
		 WHERE rt.PROJ_ID = proj.PROJ_ID
18496
		   AND rt.RTAG_ID = RtagId;
18497
 
18498
		Log_Action ( newPvId, 'work_in_progress', UserId, 'Location: '|| ReleaseLocation );
18499
 
18500
	ELSE
6031 dpurdie 18501
 
3959 dpurdie 18502
		RAISE_APPLICATION_ERROR (-20000, 'This version is already in Work-In-Progress Area at '|| sLocation ||'.' );
6031 dpurdie 18503
 
1373 dpurdie 18504
	END IF;
18505
 
3959 dpurdie 18506
END;
18507
/*-------------------------------------------------------------------------------------------------------*/
18508
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 18509
 
3959 dpurdie 18510
	ReleaseLocation VARCHAR2(4000);
1373 dpurdie 18511
 
3959 dpurdie 18512
BEGIN
18513
 
18514
	/*--------------- Business Rules Here -------------------*/
1373 dpurdie 18515
	/*-------------------------------------------------------*/
18516
 
18517
 
3959 dpurdie 18518
	-- Get release location for logging pusposes
18519
	SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
18520
	  FROM PROJECTS proj,
18521
	  	   RELEASE_TAGS rt
18522
	 WHERE rt.PROJ_ID = proj.PROJ_ID
18523
	   AND rt.RTAG_ID = RtagId;
1373 dpurdie 18524
 
6031 dpurdie 18525
    -- Ensure that package is not marked as Pending/Rejected any more
18526
    UPDATE package_versions
18527
       SET DLOCKED  = 'N'
18528
     WHERE PV_ID  = PvId
18529
       AND DLOCKED != 'Y';
1373 dpurdie 18530
 
3959 dpurdie 18531
	-- Delete from Work In Progress
18532
	DELETE
18533
	  FROM WORK_IN_PROGRESS wip
18534
	 WHERE wip.RTAG_ID = RtagId
18535
	   AND wip.PV_ID = PvId;
1373 dpurdie 18536
 
3959 dpurdie 18537
	Log_Action ( PvId, 'delete_from_wip', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 18538
 
3959 dpurdie 18539
 
18540
 
18541
 
1373 dpurdie 18542
END;
18543
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 18544
PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 18545
 
3959 dpurdie 18546
	nIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
18547
	ReleaseLocation VARCHAR2(4000);
18548
	PvId NUMBER;
1373 dpurdie 18549
 
18550
BEGIN
3959 dpurdie 18551
 
1373 dpurdie 18552
	/*--------------- Business Rules Here -------------------*/
3959 dpurdie 18553
	IF (PvIdList IS NULL)
18554
	THEN
18555
		RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
18556
	END IF;
1373 dpurdie 18557
	/*-------------------------------------------------------*/
18558
 
18559
 
3959 dpurdie 18560
	nIdCollector := IN_LIST_NUMBER ( PvIdList );
1373 dpurdie 18561
 
18562
 
3959 dpurdie 18563
	-- Get release location for logging pusposes
18564
	SELECT proj.PROJ_NAME  ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
18565
	  FROM PROJECTS proj,
18566
	  	   RELEASE_TAGS rt
18567
	 WHERE rt.PROJ_ID = proj.PROJ_ID
18568
	   AND rt.RTAG_ID = RtagId;
1373 dpurdie 18569
 
3959 dpurdie 18570
 
18571
	FOR i IN 1..nIdCollector.COUNT
18572
	LOOP
18573
		PvId := nIdCollector(i);
18574
 
18575
		-- Delete from Work In Progress
18576
		DELETE
18577
		  FROM WORK_IN_PROGRESS wip
18578
		 WHERE wip.RTAG_ID = RtagId
18579
		   AND wip.PV_ID = PvId;
18580
 
18581
		Log_Action ( PvId, 'remove_from_work_in_progress', UserId, 'Location: '|| ReleaseLocation );
18582
 
18583
	END LOOP;
18584
 
18585
 
1373 dpurdie 18586
END;
18587
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 18588
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
18589
 
18590
	ReturnValue NUMBER;
18591
 
1373 dpurdie 18592
BEGIN
3959 dpurdie 18593
	SELECT wip.VIEW_ID INTO ReturnValue
18594
	  FROM WORK_IN_PROGRESS wip
18595
	 WHERE wip.RTAG_ID = RtagId
18596
	   AND wip.PV_ID = PvId;
1373 dpurdie 18597
 
3959 dpurdie 18598
	RETURN ReturnValue;
1373 dpurdie 18599
END;
18600
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 18601
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
18602
 
18603
	IsBaseView CHAR(1);
6031 dpurdie 18604
 
1373 dpurdie 18605
BEGIN
18606
 
3959 dpurdie 18607
	-- Check if the view is BASE VIEW
18608
	SELECT vi.BASE_VIEW INTO IsBaseView
18609
	  FROM VIEWS vi
18610
	 WHERE vi.VIEW_ID = ViewId;
6031 dpurdie 18611
 
18612
	IF (IsBaseView IN ('Y', 'S')) THEN
3959 dpurdie 18613
		-- Get Base view content
18614
		OPEN RecordSet FOR
18615
		SELECT 0 AS PKG_STATE,
18616
			   NULL AS DEPRECATED_STATE,
6031 dpurdie 18617
			   pv.pv_id,
18618
			   pkg.pkg_name,
18619
			   pv.pkg_version,
18620
			   pv.dlocked,
3959 dpurdie 18621
			   pv.pv_description,
18622
			   pv.BUILD_TYPE
18623
		  FROM WORK_IN_PROGRESS rel,
18624
		       packages pkg,
18625
		       package_versions pv
18626
		 WHERE pv.pkg_id = pkg.pkg_id
18627
		   AND rel.pv_id = pv.pv_id
18628
		   AND rel.VIEW_ID = ViewId
18629
		   AND rel.RTAG_ID = RtagId
18630
		 ORDER BY UPPER(pkg.PKG_NAME);
1373 dpurdie 18631
 
6031 dpurdie 18632
 
18633
	ELSE
18634
 
3959 dpurdie 18635
	 	-- Get non base view content
18636
		OPEN RecordSet FOR
18637
		SELECT 0 AS PKG_STATE,
18638
			   NULL AS DEPRECATED_STATE,
6031 dpurdie 18639
			   pv.pv_id,
18640
			   pkg.pkg_name,
18641
			   pv.pkg_version,
18642
			   pv.dlocked,
3959 dpurdie 18643
			   pv.pv_description,
18644
			   pv.BUILD_TYPE
18645
		  FROM WORK_IN_PROGRESS rel,
18646
		       packages pkg,
18647
		       package_versions pv,
18648
			   VIEW_DEF vd
18649
		 WHERE pv.pkg_id = pkg.pkg_id
18650
		   AND rel.pv_id = pv.pv_id
18651
		   AND vd.VIEW_ID = ViewId
18652
		   AND vd.PKG_ID = pv.PKG_ID
18653
		   AND rel.RTAG_ID = RtagId
18654
		 ORDER BY UPPER(pkg.PKG_NAME);
18655
 
6031 dpurdie 18656
 
18657
	END IF;
18658
 
18659
 
1373 dpurdie 18660
END;
18661
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 18662
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
6031 dpurdie 18663
 
1373 dpurdie 18664
BEGIN
6031 dpurdie 18665
 
3959 dpurdie 18666
	UPDATE WORK_IN_PROGRESS wip SET
18667
	wip.VIEW_ID = NewViewId
18668
	WHERE wip.PV_ID = PvId
18669
	  AND wip.RTAG_ID = RtagId;
6031 dpurdie 18670
 
1373 dpurdie 18671
END;
18672
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 18673
END PK_WORK_IN_PROGRESS;
4040 dpurdie 18674
 
6999 dpurdie 18675
/
4040 dpurdie 18676
--------------------------------------------------------
18677
--  DDL for Package Body RM_ISSUES
18678
--------------------------------------------------------
18679
 
5172 dpurdie 18680
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."RM_ISSUES" AS
1373 dpurdie 18681
 
3959 dpurdie 18682
-- Private Implementation -----------------------------------------------------
1373 dpurdie 18683
 
18684
 
3959 dpurdie 18685
	FUNCTION VerIsGrtrThanOrEqlToStart( XXstart IN NUMBER, XX IN NUMBER, YYstart IN NUMBER, YY IN NUMBER, ZZstart IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER
18686
	AS
1373 dpurdie 18687
 
3959 dpurdie 18688
	BEGIN
18689
		-- start boundary case
18690
		IF ( XXstart < XX ) THEN
18691
			RETURN 1;
1373 dpurdie 18692
 
3959 dpurdie 18693
		ELSIF ( XXstart = XX ) THEN
1373 dpurdie 18694
 
3959 dpurdie 18695
			-- need to consider YY
18696
			IF ( YYstart < YY ) THEN
18697
				RETURN 1;
1373 dpurdie 18698
 
3959 dpurdie 18699
			ELSIF ( YYstart = YY ) THEN
1373 dpurdie 18700
 
3959 dpurdie 18701
					-- need to consider ZZ
18702
					IF ( ZZstart <= ZZ ) THEN
18703
						RETURN 1;
18704
 
18705
					ELSE
18706
						RETURN 0;
18707
					END IF;
18708
 
18709
			ELSE
18710
				RETURN 0;
18711
			END IF;
18712
		ELSE
18713
			RETURN 0;
18714
		END IF;
18715
	EXCEPTION
18716
		WHEN OTHERS THEN
18717
			RETURN -1;
18718
	END;
18719
 
18720
 
18721
	FUNCTION VerIsLessThanOrEqlToEnd( XXend IN NUMBER, XX IN NUMBER, YYend IN NUMBER, YY IN NUMBER, ZZend IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER
18722
	AS
18723
 
18724
	BEGIN
18725
		-- end boundary case
18726
		IF ( XX < XXend ) THEN
18727
			RETURN 1;
18728
 
18729
		ELSIF ( XX = XXend ) THEN
18730
 
18731
			-- need to consider YY
18732
			IF ( YY < YYend ) THEN
18733
				RETURN 1;
18734
 
18735
			ELSIF ( YY = YYend ) THEN
18736
 
18737
					-- need to consider ZZ
18738
					IF ( ZZ <= ZZend ) THEN
18739
						RETURN 1;
18740
 
18741
					ELSE
18742
						RETURN 0;
18743
					END IF;
18744
			ELSE
18745
 
18746
				RETURN 0;
18747
			END IF;
18748
		ELSE
18749
			RETURN 0;
18750
		END IF;
18751
	EXCEPTION
18752
		WHEN OTHERS THEN
18753
			RETURN -1;
18754
	END;
18755
 
18756
	/*
18757
	-	version format:		XX.YY.ZZ.abc
18758
	*/
18759
	FUNCTION VersionIsBetween( version IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR ) RETURN NUMBER
18760
	AS
18761
		XXstart		NUMBER	:=	0;
18762
		XXend		NUMBER	:=	0;
18763
		XX			NUMBER	:=	0;
18764
		YYstart		NUMBER	:=	0;
18765
		YYend		NUMBER	:=	0;
18766
		YY			NUMBER	:=	0;
18767
		ZZstart		NUMBER	:=	0;
18768
		ZZend		NUMBER	:=	0;
18769
		ZZ			NUMBER	:=	0;
18770
		first_dot	NUMBER	:=	0;
18771
		second_dot	NUMBER	:=	0;
18772
		third_dot	NUMBER	:=	0;
18773
 
18774
		ProjExtstart	VARCHAR2(10);
18775
		ProjExtend		VARCHAR2(10);
18776
		ProjExt			VARCHAR2(10);
18777
 
18778
	BEGIN
18779
		-- strip the version number
18780
		first_dot :=  INSTR(version_start, '.', 1, 1);
18781
		second_dot :=  INSTR(version_start, '.', 1, 2);
18782
		third_dot :=  INSTR(version_start, '.', 1, 3);
18783
 
18784
		XXstart := TO_NUMBER( SUBSTR( version_start, 1, first_dot - 1 ) );
18785
		YYstart := TO_NUMBER( SUBSTR( version_start, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
18786
		ZZstart := TO_NUMBER( SUBSTR( version_start, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
18787
		ProjExtstart := SUBSTR( version_start, third_dot + 1, LENGTH(version_start) - third_dot );
18788
 
18789
		first_dot :=  INSTR(version_end, '.', 1, 1);
18790
		second_dot :=  INSTR(version_end, '.', 1, 2);
18791
		third_dot :=  INSTR(version_end, '.', 1, 3);
18792
 
18793
		XXend := TO_NUMBER( SUBSTR( version_end, 1, first_dot - 1 ) );
18794
		YYend := TO_NUMBER( SUBSTR( version_end, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
18795
		ZZend := TO_NUMBER( SUBSTR( version_end, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
18796
		ProjExtend := SUBSTR( version_end, third_dot + 1, LENGTH(version_end) - third_dot );
18797
 
18798
		first_dot :=  INSTR(version, '.', 1, 1);
18799
		second_dot :=  INSTR(version, '.', 1, 2);
18800
		third_dot :=  INSTR(version, '.', 1, 3);
18801
 
18802
		XX := TO_NUMBER( SUBSTR( version, 1, first_dot - 1 ) );
18803
		YY := TO_NUMBER( SUBSTR( version, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
18804
		ZZ := TO_NUMBER( SUBSTR( version, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
18805
		ProjExt := SUBSTR( version, third_dot + 1, LENGTH(version) - third_dot );
18806
 
18807
		-- only include versions if all project extensions are the same
18808
		IF ( ProjExtstart = ProjExt AND ProjExt = ProjExtend ) THEN
18809
 
18810
			IF ( VerIsGrtrThanOrEqlToStart( XXstart, XX, YYstart, YY, ZZstart, ZZ ) = 1 AND VerIsLessThanOrEqlToEnd( XXend, XX, YYend, YY, ZZend, ZZ ) = 1 ) THEN
18811
				RETURN 1;
18812
			ELSE
18813
				RETURN 0;
18814
			END IF;
18815
		ELSE
18816
			RETURN 0;
18817
		END IF;
18818
 
18819
	EXCEPTION
18820
		WHEN OTHERS THEN
18821
			RETURN -1;
18822
	END;
18823
 
18824
	FUNCTION GetPkgId( pkgName IN VARCHAR2 ) RETURN NUMBER
18825
	AS
18826
	    pkg_id NUMBER;
18827
	BEGIN
18828
		SELECT
18829
			p.PKG_ID
18830
		INTO
18831
			pkg_id
18832
		FROM
18833
			PACKAGES p
18834
		WHERE
18835
			p.PKG_NAME = pkgName;
18836
 
18837
		RETURN pkg_id;
18838
	EXCEPTION
18839
	    WHEN OTHERS THEN
18840
			dbms_output.put_line('GetPkgId exception: ' || SQLERRM );
18841
			RETURN -1;
18842
	END;
18843
 
18844
 
18845
-- Public Implementation ------------------------------------------------------
18846
 
18847
	/*
18848
	-- Proc: AllIssues - Gets all issues for a package from dependent packages one level deep
18849
	--
18850
	-- INPUT PARAMETERS:
18851
	--
18852
	--		pkg_name  	-  	The name of the top level package to get issues for
18853
	--		version_start	-	The start version for the comparison
18854
	--		version_end	-	The end version for the comparison
18855
	*/
18856
	PROCEDURE AllIssues( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 )
18857
	AS
18858
		pkgId	NUMBER;
18859
	BEGIN
18860
		-- get pkg_id of the input package:
18861
		pkgId := GetPkgId( pkg_name );
18862
 
18863
		OPEN vCursor FOR
18864
		SELECT
18865
			  pv.PKG_ID,
18866
			  pv.PKG_VERSION,
18867
			  pv.PV_ID,
18868
			  i_pkg.ISS_ID,
18869
			  ( SELECT pkg_name FROM PACKAGES WHERE pkg_id = pd.DPKG_ID ) AS DPV_NAME,
18870
			  pd.DPKG_ID,
18871
			  ( SELECT pkg_version FROM PACKAGE_VERSIONS WHERE pv_id = pd.DPV_ID ) AS DPV_VER,
18872
			  pd.DPV_ID,
18873
			  i_dpkg.ISS_ID AS ISSUE_ID
18874
		FROM
18875
			 PACKAGE_VERSIONS pv
18876
							  LEFT OUTER JOIN CQ_ISSUES i_pkg ON pv.PV_ID = i_pkg.PV_ID
18877
							  LEFT OUTER JOIN PACKAGE_DEPENDENCIES pd ON pv.PV_ID = pd.PV_ID
18878
							  LEFT OUTER JOIN CQ_ISSUES i_dpkg ON pd.DPV_ID = i_dpkg.PV_ID
18879
		WHERE
18880
   			 pv.PKG_ID = pkgId
18881
		AND
18882
			VersionIsBetween( pv.PKG_VERSION, version_start, version_end ) = 1
18883
		AND
18884
			 ( i_dpkg.ISS_ID IS NOT NULL OR i_pkg.ISS_ID IS NOT NULL )
18885
		ORDER BY
18886
			 pv.PKG_ID,
18887
			 pv.PV_ID,
18888
			 pd.DPKG_ID,
18889
			 pd.DPV_ID;
18890
	EXCEPTION
18891
		WHEN OTHERS THEN
18892
			dbms_output.put_line('AllIssues exception: ' || SQLERRM );
18893
	END;
18894
 
18895
 
18896
	-- NOTE: make RM_PACKAGE_ISSUES a temporary table when tested ok
18897
 
18898
	/*
18899
	-- Proc: LoadIssuesTable
18900
	--
18901
	-- Populates Package_Issues table with details of issues from all dependent packages.
18902
	-- This will be for all package versions of the input pkg_name between the
18903
	-- version_start and version_end.
18904
	--
18905
	-- INPUT PARAMETERS:
18906
	--
18907
	--		pkg_name  	-  	The name of the top level package to get issues for
18908
	--		version_start	-	The start version for the comparison
18909
	--		version_end	-	The end version for the comparison
18910
	*/
18911
	PROCEDURE LoadIssuesTable( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 )
18912
	AS
18913
		pkgId	NUMBER;
18914
 
18915
		CURSOR pack_vers_cur IS
18916
			SELECT
18917
				pv.PV_ID,
18918
				pv.PKG_VERSION,
18919
				pv.PKG_ID,
18920
				p.PKG_NAME
18921
			FROM
18922
				PACKAGE_VERSIONS pv
18923
					JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
18924
			WHERE
18925
   				 pv.PKG_ID = pkgId
18926
			AND
18927
				VersionIsBetween( pv.PKG_VERSION, version_start, version_end ) = 1;
18928
 
18929
	BEGIN
18930
		DELETE FROM RELEASE_MANAGER.RM_PKG_ISSUES; /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
18931
 
18932
		-- get the pkg_id we are finding issues for
18933
		pkgId := GetPkgId( pkg_name );
18934
 
18935
		-- find all the top level packages we are dealing with and recursively process their issues and their dependent package issues.
18936
		FOR pack_ver_rec IN  pack_vers_cur
18937
		LOOP
18938
			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 );
18939
			COMMIT;
18940
		END LOOP;
18941
 
18942
		-- The output cursor - shows the individual versions of the top level package then were reported on
18943
		OPEN vCursor FOR
18944
		SELECT DISTINCT ISS_ID, PKG_VERSION FROM RM_PKG_ISSUES WHERE ISS_ID IS NOT NULL; /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
18945
/*removed
18946
		SELECT
18947
			PKG_VERSION
18948
		FROM
18949
			RELEASE_MANAGER.RM_PACKAGE_ISSUES;
18950
*/
18951
 
18952
 
18953
	EXCEPTION
18954
		WHEN OTHERS THEN
18955
			dbms_output.put_line('LoadIssuesTable exception: ' || SQLERRM );
18956
	END;
18957
 
18958
 
18959
	/*
18960
	-- Proc: InsertIssuesForDepends
18961
	--
18962
	-- Used by LoadIssuesTable to recursively find issues for all dependent packages
18963
	--
18964
	-- INPUT PARAMETERS:
18965
	--
18966
	--		pvID  		-  	The package version id of the package to get issues for
18967
	--		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)
18968
	--		top_pkgName -  	The package name of the top level package
18969
	--		top_pvID  	-  	The package version id of the top level package
18970
	--		top_pkgVer  -  	The package version description of the top level package
18971
	*/
18972
	PROCEDURE InsertIssuesForDepends( pvID IN NUMBER, top_pkgID IN NUMBER, top_pkgName IN VARCHAR2, top_pvID IN NUMBER, top_pkgVer IN VARCHAR2 )
18973
	AS
18974
		pkgId		NUMBER;
18975
		issCnt		NUMBER := 0;
18976
		pkgCheck	NUMBER := 0;
18977
		depCheck	NUMBER := 0;
18978
 
18979
		dpkgName	VARCHAR(50);
18980
		dpkgVersion	VARCHAR(50);
18981
 
18982
		CURSOR dep_packs_cur IS
18983
			SELECT
18984
				DPV_ID
18985
			FROM
18986
				PACKAGE_DEPENDENCIES
18987
			WHERE
18988
				PV_ID = pvID;
18989
 
18990
	BEGIN
18991
 
18992
		-- check to see if the package has been processed previously
18993
		SELECT
18994
			COUNT(*)
18995
		INTO
18996
			pkgCheck
18997
		FROM
18998
			RM_PKG_ISSUES /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
18999
		WHERE
19000
			DPV_ID = pvID;
19001
 
19002
		dbms_output.put_line('pkgCheck: ' || pkgCheck );
19003
 
19004
		-- Package not already processed (no cyclic dependency) - process it
19005
		IF ( pkgCheck = 0 ) THEN
19006
 
19007
			-- check to see if this package version has any issues assigned to it
19008
			SELECT
19009
				COUNT(*)
19010
			INTO
19011
				issCnt
19012
			FROM
19013
				CQ_ISSUES i
19014
			WHERE
19015
				i.PV_ID = pvID;
19016
 
19017
			dbms_output.put_line('issCnt: ' || issCnt );
19018
 
19019
			-- Always enter a marker row into the table even if there are no issues for the package.
19020
			-- This allows us to pick up any cyclic dependencies.
19021
			IF ( issCnt > 0 ) THEN
19022
				-- get issues and insert into RM_PACKAGE_ISSUES
19023
				/*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
19024
 
19025
				INSERT INTO RM_PKG_ISSUES ( PKG_ID, PKG_NAME, PV_ID, PKG_VERSION, DPV_ID, DPKG_NAME, DPKG_VERSION, ISS_DB, ISS_ID )
19026
					SELECT DISTINCT
19027
						top_pkgID		AS PKG_ID,
19028
						top_pkgName		AS PKG_NAME,
19029
						top_pvID		AS PV_ID,
19030
						top_pkgVer		AS PKG_VERSION,
19031
						pv.PV_ID		AS DPV_ID,
19032
						p.PKG_NAME		AS DPKG_NAME,
19033
						pv.PKG_VERSION	AS DPKG_VERSION,
19034
						ci.ISS_DB,
19035
						ci.ISS_ID
19036
					FROM
19037
						PACKAGE_VERSIONS pv
19038
							JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
19039
							JOIN CQ_ISSUES ci ON pv.PV_ID = ci.PV_ID
19040
					WHERE
19041
						pv.PV_ID = pvID;
19042
 
19043
			ELSE
19044
				-- get the dpkg details - there will always be a row returned here
19045
				SELECT
19046
					p.PKG_NAME
19047
				INTO
19048
					dpkgName
19049
				FROM
19050
					PACKAGE_VERSIONS pv
19051
						JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
19052
				WHERE
19053
	   				 pv.PV_ID = pvID;
19054
 
19055
				SELECT
19056
					pv.PKG_VERSION
19057
				INTO
19058
					dpkgVersion
19059
				FROM
19060
					PACKAGE_VERSIONS pv
19061
				WHERE
19062
	   				 pv.PV_ID = pvID;
19063
 
19064
				-- enter a marker row
19065
				/*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
19066
				INSERT INTO RM_PKG_ISSUES ( PKG_ID, PKG_NAME, PV_ID, PKG_VERSION, DPV_ID, DPKG_NAME, DPKG_VERSION, ISS_DB, ISS_ID )
19067
				VALUES (
19068
					top_pkgID,
19069
					top_pkgName,
19070
					top_pvID,
19071
					top_pkgVer,
19072
					pvID,
19073
					dpkgName,
19074
					dpkgVersion,
19075
					NULL,
19076
					NULL );
19077
 
19078
			END IF;
19079
 
19080
			-- If this package version has dependencies then recurse
19081
			SELECT
19082
				COUNT(*)
19083
			INTO
19084
				depCheck
19085
			FROM
19086
				PACKAGE_DEPENDENCIES
19087
			WHERE
19088
				PV_ID = pvID;
19089
 
19090
			IF ( depCheck > 0 ) THEN
19091
				-- get dependencies and call this function recursively for each one
19092
				FOR dep_rec IN  dep_packs_cur
19093
				LOOP
19094
					InsertIssuesForDepends( dep_rec.DPV_ID, top_pkgID, top_pkgName, top_pvID, top_pkgVer );
19095
				END LOOP;
19096
 
19097
			END IF;
19098
 
19099
		END IF;
19100
 
19101
	/*EXCEPTION
19102
		WHEN OTHERS THEN
19103
			no exception handling required
19104
	*/
19105
	END;
19106
 
19107
END Rm_Issues;
4040 dpurdie 19108
 
6999 dpurdie 19109
/
4040 dpurdie 19110
--------------------------------------------------------
6999 dpurdie 19111
--  DDL for Function CAN_EDIT_PKG_IN_PROJECT
4040 dpurdie 19112
--------------------------------------------------------
19113
 
6999 dpurdie 19114
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."CAN_EDIT_PKG_IN_PROJECT" ( nPvId IN NUMBER, nRtagId IN NUMBER ) RETURN NUMBER IS
19115
-- Returns 0 : Package is not editable in this Release
19116
--         1 : Package is editable in this release
3959 dpurdie 19117
/* ---------------------------------------------------------------------------
19118
    Version: 3.0.0
19119
   --------------------------------------------------------------------------- */
1373 dpurdie 19120
 
6999 dpurdie 19121
  VExt PACKAGE_VERSIONS.V_EXT%TYPE;
19122
  ProjId NUMBER;
19123
  RowCount NUMBER;
19124
  cReleaseMode CHAR(1);
1373 dpurdie 19125
 
19126
BEGIN
19127
 
6999 dpurdie 19128
  /*--------------- Business Rules Here -------------------*/
19129
  IF (nRtagId IS NULL)  OR  (nRtagId < 1)THEN
19130
    RETURN 0;
19131
  END IF;
19132
  /*-------------------------------------------------------*/
1373 dpurdie 19133
 
6999 dpurdie 19134
  /*-- First Check. See if package is used through release reference --*/
19135
  SELECT COUNT(rc.PV_ID) INTO RowCount
19136
    FROM (
19137
        SELECT rl.REF_RTAG_ID
19138
        FROM RELEASE_LINKS rl
19139
       WHERE rl.RTAG_ID = nRtagId
19140
        ) rl,
19141
      RELEASE_CONTENT rc
19142
    WHERE rc.RTAG_ID = rl.REF_RTAG_ID
19143
      AND rc.PV_ID = nPvId;
1373 dpurdie 19144
 
6999 dpurdie 19145
  -- Decide if package can be edited
19146
  IF RowCount > 0 THEN
19147
    -- Package is referenced from other release, hence cannot be edited
19148
    RETURN 0;
19149
  END IF;
3959 dpurdie 19150
 
6999 dpurdie 19151
-- Check if the package is included through an SDK reference
19152
  SELECT count(*) INTO RowCount
19153
    FROM RELEASE_CONTENT rc
19154
   WHERE rc.RTAG_ID = nRtagId
19155
      AND rc.PV_ID = nPvId
19156
      AND rc.SDKTAG_ID is not NULL ;
3959 dpurdie 19157
 
6999 dpurdie 19158
  IF RowCount > 0 THEN
19159
    -- Package is imported via SDK
19160
    RETURN 0;
19161
  END IF;
4040 dpurdie 19162
 
6999 dpurdie 19163
--  Pegged packages can be edited. Other checking needs to be done
19164
--  -- Check if the package is pegged
19165
--  SELECT count(*) INTO RowCount
19166
--    FROM pegged_versions
19167
--   WHERE RTAG_ID = nRtagId
19168
--      AND PV_ID = nPvId;
4040 dpurdie 19169
 
6999 dpurdie 19170
--  IF RowCount > 0 THEN
19171
--    -- Package is Pegged
19172
--    RETURN 0;
19173
--  END IF;
6031 dpurdie 19174
 
6999 dpurdie 19175
  -- Check is only done for releases in restrictive mode
19176
  SELECT rt.OFFICIAL INTO cReleaseMode
19177
    FROM RELEASE_TAGS rt
19178
   WHERE rt.RTAG_ID = nRtagId;
4040 dpurdie 19179
 
6999 dpurdie 19180
  IF cReleaseMode = 'N' OR cReleaseMode = 'R'  OR cReleaseMode = 'C' THEN
19181
    -- Do not do any further checking,
19182
    -- Package is editable here
19183
    RETURN 1;
19184
  END IF;
4040 dpurdie 19185
 
1373 dpurdie 19186
 
6999 dpurdie 19187
  /*-- Further checking --*/
19188
  -- Get proj_id
19189
  SELECT rt.PROJ_ID  INTO  ProjId
19190
    FROM RELEASE_TAGS rt
19191
   WHERE rt.RTAG_ID = nRtagId;
3959 dpurdie 19192
 
6999 dpurdie 19193
  BEGIN
19194
    -- Get v_ext
19195
    SELECT pv.V_EXT  INTO  Vext
19196
      FROM PACKAGE_VERSIONS pv
19197
     WHERE pv.PV_ID = nPvId;
3959 dpurdie 19198
 
6999 dpurdie 19199
    EXCEPTION
19200
        WHEN NO_DATA_FOUND THEN
19201
            Vext := NULL;
19202
  END;
1373 dpurdie 19203
 
6999 dpurdie 19204
  --Temp Hack for Step Project
19205
  IF ProjId != 281 THEN
19206
    -- Find if package can be edited in this project
19207
      SELECT COUNT(pe.EXT_NAME) INTO RowCount
19208
      FROM PROJECT_EXTENTIONS pe
19209
      WHERE pe.PROJ_ID != ProjId
19210
        AND pe.EXT_NAME = VExt;
19211
  END IF;
1373 dpurdie 19212
 
6999 dpurdie 19213
  -- Decide if package can be edited
19214
  IF RowCount > 0 THEN
19215
    -- Package extension is found in other projects, hence NOT EDITABLE
19216
    RETURN 0;
19217
  ELSE
19218
    RETURN 1;
19219
  END IF;
1373 dpurdie 19220
 
19221
 
6999 dpurdie 19222
END CAN_EDIT_PKG_IN_PROJECT;
3959 dpurdie 19223
 
6999 dpurdie 19224
/
19225
--------------------------------------------------------
19226
--  DDL for Function DT_ADDUSEROBJECT
19227
--------------------------------------------------------
3959 dpurdie 19228
 
6999 dpurdie 19229
  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;
3959 dpurdie 19230
 
6999 dpurdie 19231
/
4040 dpurdie 19232
--------------------------------------------------------
6999 dpurdie 19233
--  DDL for Function GET_AUTOMATED_LABEL
4040 dpurdie 19234
--------------------------------------------------------
19235
 
6999 dpurdie 19236
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_AUTOMATED_LABEL" ( nPvId IN NUMBER ) RETURN VARCHAR2 IS
3959 dpurdie 19237
 
6999 dpurdie 19238
/* ---------------------------------------------------------------------------
19239
    Version: 3.0.0
19240
   --------------------------------------------------------------------------- */
3959 dpurdie 19241
 
6999 dpurdie 19242
  sPkgName VARCHAR2(4000);
19243
  sPkgVersion VARCHAR2(4000);
19244
  sVext VARCHAR2(4000);
19245
  cChangeType CHAR;
19246
  cBuildType CHAR;
3959 dpurdie 19247
 
19248
 
19249
BEGIN
19250
 
6999 dpurdie 19251
	-- Get package details
19252
	SELECT pkg.PKG_NAME, pv.V_EXT, pv.build_type, pv.change_type, pv.pkg_version INTO sPkgName, sVext,cBuildType, cChangeType, sPkgVersion
19253
	  FROM PACKAGE_VERSIONS pv,
19254
	  	   PACKAGES pkg
19255
	 WHERE pv.PKG_ID = pkg.PKG_ID
19256
	   AND pv.PV_ID = nPvId;
6031 dpurdie 19257
 
6999 dpurdie 19258
  -- Generate Label for manually built package
19259
  If cBuildType = 'M' Then
19260
    return (sPkgName ||'_'|| sPkgVersion );
19261
  End If;
6031 dpurdie 19262
 
6999 dpurdie 19263
  -- Generate Label for automated build with specified package version
19264
  IF cchangetype = 'F' Then
19265
    return (sPkgName ||'_'|| sPkgVersion ||'.WIP');
19266
  End If;
6031 dpurdie 19267
 
6999 dpurdie 19268
	-- Generate Label for automated build
19269
	RETURN UPPER( sPkgName ||'.'|| nPvId || sVext ||'.WIP' );
6031 dpurdie 19270
 
6999 dpurdie 19271
END GET_AUTOMATED_LABEL;
6031 dpurdie 19272
 
6999 dpurdie 19273
/
4040 dpurdie 19274
--------------------------------------------------------
6999 dpurdie 19275
--  DDL for Function GET_BUILD_NUMBER
4040 dpurdie 19276
--------------------------------------------------------
19277
 
6999 dpurdie 19278
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_BUILD_NUMBER" (s_version IN VARCHAR2) RETURN VARCHAR2
19279
IS
19280
/* ---------------------------------------------------------------------------
19281
    Version: 1.0.0
19282
   --------------------------------------------------------------------------- */
1373 dpurdie 19283
BEGIN
6999 dpurdie 19284
    IF is_number(s_version) AND LENGTH(s_version) > 3
19285
    THEN
19286
        RETURN MOD(TO_NUMBER(s_version), 1000);
19287
    ELSE
19288
        RETURN 0;
19289
    END IF;
19290
END get_build_number;
1373 dpurdie 19291
 
6999 dpurdie 19292
/
19293
--------------------------------------------------------
19294
--  DDL for Function GET_PATCH_VERSION
19295
--------------------------------------------------------
1373 dpurdie 19296
 
6999 dpurdie 19297
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_PATCH_VERSION" (s_version IN VARCHAR2) RETURN VARCHAR2
19298
IS
19299
/* ---------------------------------------------------------------------------
19300
    Version: 1.0.0
19301
   --------------------------------------------------------------------------- */
19302
BEGIN
19303
    IF is_number(s_version) AND LENGTH(s_version) > 3
19304
    THEN
19305
        RETURN FLOOR(TO_NUMBER(s_version) / 1000);
19306
    ELSE
19307
        RETURN s_version;
19308
    END IF;
19309
END get_patch_version;
1373 dpurdie 19310
 
6999 dpurdie 19311
/
19312
--------------------------------------------------------
19313
--  DDL for Function GET_PV_FIRST_MODIFIED
19314
--------------------------------------------------------
1373 dpurdie 19315
 
6999 dpurdie 19316
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" (v_pv_id NUMBER) RETURN DATE IS
19317
  ret DATE;
19318
BEGIN
19319
  SELECT q.modified_stamp
19320
    INTO ret
19321
    FROM (
19322
            SELECT level AS lvl, pvc.pv_id, pvc.modified_stamp, pvc.change_type
19323
              FROM package_versions pvc
19324
              START WITH pvc.pv_id = v_pv_id
19325
            CONNECT BY NOCYCLE pvc.pv_id = PRIOR pvc.last_pv_id
19326
          ) Q
19327
  WHERE q.change_type IS NOT NULL
19328
    AND rownum = 1
19329
  ORDER BY q.lvl;
1373 dpurdie 19330
 
6999 dpurdie 19331
  RETURN ret;
19332
END;
1373 dpurdie 19333
 
6999 dpurdie 19334
/
1373 dpurdie 19335
 
6999 dpurdie 19336
  GRANT EXECUTE ON "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" TO "RM_READONLY";
19337
  GRANT EXECUTE ON "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" TO "DM_READONLY";
19338
  GRANT EXECUTE ON "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" TO "DEPLOYMENT_MANAGER";
19339
--------------------------------------------------------
19340
--  DDL for Function GET_V_EXT
19341
--------------------------------------------------------
1373 dpurdie 19342
 
6999 dpurdie 19343
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_V_EXT" (SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE) RETURN VARCHAR2 IS
1373 dpurdie 19344
 
6999 dpurdie 19345
/* ---------------------------------------------------------------------------
19346
    Version: 3.0.0
19347
   --------------------------------------------------------------------------- */
6031 dpurdie 19348
 
6999 dpurdie 19349
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
19350
    lastDot NUMBER;
6031 dpurdie 19351
 
6999 dpurdie 19352
BEGIN
19353
    lastDot := INSTR (SSpkg_version, '.', -1);
6031 dpurdie 19354
 
6999 dpurdie 19355
    IF ( lastDot > 0 ) AND ( lastDot != LENGTH(SSpkg_version) )
19356
    THEN
19357
        -- YES dot separator found --
19358
        SSV_EXT := SUBSTR (SSpkg_version, lastDot, LENGTH(SSpkg_version)-lastDot+1);
1373 dpurdie 19359
 
6999 dpurdie 19360
        IF IS_VERSION_EXTENSION ( SSV_EXT )
19361
        THEN
19362
            RETURN SSV_EXT;
19363
        ELSE
19364
            RETURN NULL;
19365
        END IF;
1373 dpurdie 19366
 
6999 dpurdie 19367
    ELSE
19368
        -- NO dot separator found --
19369
        RETURN NULL;
19370
    END IF;
1373 dpurdie 19371
 
6999 dpurdie 19372
END GET_V_EXT;
1373 dpurdie 19373
 
6999 dpurdie 19374
/
4040 dpurdie 19375
--------------------------------------------------------
6999 dpurdie 19376
--  DDL for Function IN_LIST_NUMBER
4040 dpurdie 19377
--------------------------------------------------------
19378
 
6999 dpurdie 19379
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_NUMBER" ( sInList IN VARCHAR2 ) RETURN RELMGR_NUMBER_TAB_t IS
3959 dpurdie 19380
 
1373 dpurdie 19381
/* ---------------------------------------------------------------------------
3959 dpurdie 19382
    Version: 3.0.0
1373 dpurdie 19383
   --------------------------------------------------------------------------- */
6031 dpurdie 19384
 
6999 dpurdie 19385
    sync_rtags		   RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
19386
	pos				   NUMBER;
19387
	in_list			   VARCHAR2(4000) := sInList || ',';
19388
 
3959 dpurdie 19389
BEGIN
6031 dpurdie 19390
 
6999 dpurdie 19391
	IF NOT sInList IS NULL
3959 dpurdie 19392
	THEN
6999 dpurdie 19393
		LOOP
19394
	        EXIT WHEN in_list IS NULL;
19395
	        pos := INSTR ( in_list, ',' );
19396
	        sync_rtags.extend;
19397
	        sync_rtags(sync_rtags.count) := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
19398
	        in_list := SUBSTR ( in_list, pos+1 );
19399
		END LOOP;
6031 dpurdie 19400
	END IF;
19401
 
6999 dpurdie 19402
	RETURN sync_rtags;
19403
END IN_LIST_NUMBER;
6031 dpurdie 19404
 
6999 dpurdie 19405
/
4040 dpurdie 19406
--------------------------------------------------------
6999 dpurdie 19407
--  DDL for Function IN_LIST_NUMBER2
4040 dpurdie 19408
--------------------------------------------------------
19409
 
6999 dpurdie 19410
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_NUMBER2" ( sInList IN VARCHAR2 ) RETURN RELMGR_NUMBER_TAB_t IS
19411
 
3959 dpurdie 19412
/* ---------------------------------------------------------------------------
6999 dpurdie 19413
    Version: 3.0.0
3959 dpurdie 19414
   --------------------------------------------------------------------------- */
1373 dpurdie 19415
 
6999 dpurdie 19416
    sync_rtags		   RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
19417
	pos				   NUMBER;
19418
	in_list			   VARCHAR2(32767) := sInList || ',';
19419
 
1373 dpurdie 19420
BEGIN
19421
 
6999 dpurdie 19422
	IF NOT sInList IS NULL
19423
	THEN
19424
		LOOP
19425
	        EXIT WHEN in_list IS NULL;
19426
	        pos := INSTR ( in_list, ',' );
19427
	        sync_rtags.extend;
19428
	        sync_rtags(sync_rtags.count) := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
19429
	        in_list := SUBSTR ( in_list, pos+1 );
19430
		END LOOP;
19431
	END IF;
1373 dpurdie 19432
 
6999 dpurdie 19433
	RETURN sync_rtags;
19434
END IN_LIST_NUMBER2;
4040 dpurdie 19435
 
6999 dpurdie 19436
/
4040 dpurdie 19437
--------------------------------------------------------
6999 dpurdie 19438
--  DDL for Function IN_LIST_VARCHAR2
4040 dpurdie 19439
--------------------------------------------------------
19440
 
6999 dpurdie 19441
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_VARCHAR2" ( sInList IN VARCHAR2, cSeparator IN VARCHAR2 ) RETURN RELMGR_VARCHAR2_TAB_t IS
19442
 
3959 dpurdie 19443
/* ---------------------------------------------------------------------------
6999 dpurdie 19444
    Version: 3.1
3959 dpurdie 19445
   --------------------------------------------------------------------------- */
1373 dpurdie 19446
 
6999 dpurdie 19447
    cItemCollection	   RELMGR_VARCHAR2_TAB_t := RELMGR_VARCHAR2_TAB_t();
19448
	pos				   NUMBER;
19449
	in_list			   VARCHAR2(4000) := sInList || cSeparator;
19450
	val				   VARCHAR2(4000);
1373 dpurdie 19451
 
19452
BEGIN
19453
 
6999 dpurdie 19454
	IF NOT sInList IS NULL
19455
	THEN
19456
		LOOP
19457
	        EXIT WHEN in_list IS NULL;
19458
	        pos := INSTR ( in_list, cSeparator );
19459
			val := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
6031 dpurdie 19460
 
6999 dpurdie 19461
			IF (NOT val IS NULL) THEN
19462
		        cItemCollection.extend;
19463
		        cItemCollection(cItemCollection.count) := val;
19464
			END IF;
6031 dpurdie 19465
 
6999 dpurdie 19466
	        in_list := SUBSTR ( in_list, pos+1 );
19467
		END LOOP;
3959 dpurdie 19468
	END IF;
6031 dpurdie 19469
 
6999 dpurdie 19470
	RETURN cItemCollection;
19471
END IN_LIST_VARCHAR2;
6031 dpurdie 19472
 
6999 dpurdie 19473
/
4040 dpurdie 19474
--------------------------------------------------------
6999 dpurdie 19475
--  DDL for Function IS_NUMBER
4040 dpurdie 19476
--------------------------------------------------------
19477
 
6999 dpurdie 19478
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IS_NUMBER" (p_val IN VARCHAR2) RETURN BOOLEAN
1373 dpurdie 19479
IS
6999 dpurdie 19480
   temp_num NUMBER;
1373 dpurdie 19481
/* ---------------------------------------------------------------------------
6999 dpurdie 19482
    Version: 1.0.0
1373 dpurdie 19483
   --------------------------------------------------------------------------- */
19484
BEGIN
6999 dpurdie 19485
   temp_num := TO_NUMBER(p_val);
19486
   RETURN true;
19487
EXCEPTION WHEN VALUE_ERROR THEN
19488
   RETURN false;
19489
END IS_NUMBER;
3959 dpurdie 19490
 
6999 dpurdie 19491
/
4040 dpurdie 19492
--------------------------------------------------------
6999 dpurdie 19493
--  DDL for Function IS_VERSION_EXTENSION
4040 dpurdie 19494
--------------------------------------------------------
19495
 
6999 dpurdie 19496
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IS_VERSION_EXTENSION" (SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE) RETURN BOOLEAN
3959 dpurdie 19497
IS
6999 dpurdie 19498
/* ---------------------------------------------------------------------------
19499
    Version: 3.0.0
19500
   --------------------------------------------------------------------------- */
1373 dpurdie 19501
 
6999 dpurdie 19502
BEGIN
19503
    IF LENGTH ( TRIM (TRANSLATE (SSV_EXT, '.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',' ') ) ) > 0
19504
    THEN
19505
        RETURN FALSE;
19506
    ELSE
19507
        RETURN TRUE;
19508
    END IF;
1373 dpurdie 19509
 
6999 dpurdie 19510
END IS_VERSION_EXTENSION;
3959 dpurdie 19511
 
6999 dpurdie 19512
/
4040 dpurdie 19513
--------------------------------------------------------
6999 dpurdie 19514
--  DDL for Function ORA_SYSDATE
4040 dpurdie 19515
--------------------------------------------------------
19516
 
6999 dpurdie 19517
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."ORA_SYSDATE" 
19518
RETURN DATE
3959 dpurdie 19519
IS
6999 dpurdie 19520
/* ---------------------------------------------------------------------------
19521
    Version: 3.0.0
19522
   --------------------------------------------------------------------------- */
19523
BEGIN
1373 dpurdie 19524
 
6999 dpurdie 19525
    RETURN TO_DATE( TO_CHAR( SYSDATE,'DD-MON-YYYY' ),'DD-MON-YYYY' );
19526
END ORA_SYSDATE;
3959 dpurdie 19527
 
6999 dpurdie 19528
/
4040 dpurdie 19529
--------------------------------------------------------
6999 dpurdie 19530
--  DDL for Function ORA_SYSDATETIME
4040 dpurdie 19531
--------------------------------------------------------
19532
 
6999 dpurdie 19533
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."ORA_SYSDATETIME" 
19534
RETURN DATE
19535
IS
1373 dpurdie 19536
/* ---------------------------------------------------------------------------
6999 dpurdie 19537
    Version: 3.0.0
1373 dpurdie 19538
   --------------------------------------------------------------------------- */
19539
BEGIN
19540
 
6999 dpurdie 19541
    RETURN TO_DATE( TO_CHAR( SYSDATE,'DD-MON-YYYY HH24:MI:SS' ),'DD-MON-YYYY HH24:MI:SS' );
19542
END ORA_SYSDATETIME;
1373 dpurdie 19543
 
6999 dpurdie 19544
/
19545
--------------------------------------------------------
19546
--  DDL for Function PERL_DBD_TESTFUNC
19547
--------------------------------------------------------
6031 dpurdie 19548
 
6999 dpurdie 19549
  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;
1373 dpurdie 19550
 
6999 dpurdie 19551
/
4040 dpurdie 19552
--------------------------------------------------------
6999 dpurdie 19553
--  DDL for Function RELEASE_MODE
4040 dpurdie 19554
--------------------------------------------------------
19555
 
6999 dpurdie 19556
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."RELEASE_MODE" ( nRtagId IN NUMBER ) RETURN CHAR IS
1373 dpurdie 19557
 
6999 dpurdie 19558
/* ---------------------------------------------------------------------------
19559
    Version: 3.0.0
19560
   --------------------------------------------------------------------------- */
1373 dpurdie 19561
 
6999 dpurdie 19562
   returnValue CHAR(1);
1373 dpurdie 19563
 
19564
BEGIN
19565
 
6999 dpurdie 19566
    /*--------------- Business Rules Here -------------------*/
19567
	/*-------------------------------------------------------*/
1373 dpurdie 19568
 
6999 dpurdie 19569
	-- Get release mode
19570
	SELECT rt.OFFICIAL INTO returnValue
19571
	  FROM RELEASE_TAGS rt
19572
	 WHERE rt.RTAG_ID = nRtagId;
1373 dpurdie 19573
 
6999 dpurdie 19574
	RETURN returnValue;
6031 dpurdie 19575
 
6999 dpurdie 19576
END RELEASE_MODE;
6031 dpurdie 19577
 
6999 dpurdie 19578
/
19579
--------------------------------------------------------
19580
--  DDL for Synonymn APPLICATIONS
19581
--------------------------------------------------------
3959 dpurdie 19582
 
6999 dpurdie 19583
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."APPLICATIONS" FOR "ACCESS_MANAGER"."APPLICATIONS";
19584
--------------------------------------------------------
19585
--  DDL for Synonymn APPLICATION_PAGES
19586
--------------------------------------------------------
4040 dpurdie 19587
 
6999 dpurdie 19588
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."APPLICATION_PAGES" FOR "ACCESS_MANAGER"."APPLICATION_PAGES";
4040 dpurdie 19589
--------------------------------------------------------
6999 dpurdie 19590
--  DDL for Synonymn CONTROL_OBJECTS
4040 dpurdie 19591
--------------------------------------------------------
19592
 
6999 dpurdie 19593
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."CONTROL_OBJECTS" FOR "ACCESS_MANAGER"."CONTROL_OBJECTS";
19594
--------------------------------------------------------
19595
--  DDL for Synonymn DATA_PERMISSIONS
19596
--------------------------------------------------------
3959 dpurdie 19597
 
6999 dpurdie 19598
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."DATA_PERMISSIONS" FOR "ACCESS_MANAGER"."DATA_PERMISSIONS";
19599
--------------------------------------------------------
19600
--  DDL for Synonymn DATA_TABLES
19601
--------------------------------------------------------
3959 dpurdie 19602
 
6999 dpurdie 19603
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."DATA_TABLES" FOR "ACCESS_MANAGER"."DATA_TABLES";
19604
--------------------------------------------------------
19605
--  DDL for Synonymn PAGE_CONTROL_OBJECTS
19606
--------------------------------------------------------
3959 dpurdie 19607
 
6999 dpurdie 19608
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PAGE_CONTROL_OBJECTS" FOR "ACCESS_MANAGER"."PAGE_CONTROL_OBJECTS";
19609
--------------------------------------------------------
19610
--  DDL for Synonymn PERMISSION_TYPES
19611
--------------------------------------------------------
3959 dpurdie 19612
 
6999 dpurdie 19613
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PERMISSION_TYPES" FOR "ACCESS_MANAGER"."PERMISSION_TYPES";
19614
--------------------------------------------------------
19615
--  DDL for Synonymn PK_AMUTILS
19616
--------------------------------------------------------
3959 dpurdie 19617
 
6999 dpurdie 19618
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PK_AMUTILS" FOR "ACCESS_MANAGER"."PK_AMUTILS";
19619
--------------------------------------------------------
19620
--  DDL for Synonymn PK_SECURITY
19621
--------------------------------------------------------
3959 dpurdie 19622
 
6999 dpurdie 19623
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PK_SECURITY" FOR "ACCESS_MANAGER"."PK_SECURITY";
19624
--------------------------------------------------------
19625
--  DDL for Synonymn ROLES
19626
--------------------------------------------------------
1373 dpurdie 19627
 
6999 dpurdie 19628
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."ROLES" FOR "ACCESS_MANAGER"."ROLES";
19629
--------------------------------------------------------
19630
--  DDL for Synonymn ROLE_PRIVILEGES
19631
--------------------------------------------------------
1373 dpurdie 19632
 
6999 dpurdie 19633
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."ROLE_PRIVILEGES" FOR "ACCESS_MANAGER"."ROLE_PRIVILEGES";
19634
--------------------------------------------------------
19635
--  DDL for Synonymn USERS
19636
--------------------------------------------------------
6031 dpurdie 19637
 
6999 dpurdie 19638
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USERS" FOR "ACCESS_MANAGER"."USERS";
19639
--------------------------------------------------------
19640
--  DDL for Synonymn USER_APPLICATIONS
19641
--------------------------------------------------------
6031 dpurdie 19642
 
6999 dpurdie 19643
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USER_APPLICATIONS" FOR "ACCESS_MANAGER"."USER_APPLICATIONS";
19644
--------------------------------------------------------
19645
--  DDL for Synonymn USER_ROLES
19646
--------------------------------------------------------
1373 dpurdie 19647
 
6999 dpurdie 19648
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USER_ROLES" FOR "ACCESS_MANAGER"."USER_ROLES";
19649
--------------------------------------------------------
19650
--  Constraints for Table RELEASE_TAGS
19651
--------------------------------------------------------
4040 dpurdie 19652
 
6999 dpurdie 19653
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" ADD CONSTRAINT "PK_RELEASE_TAGS" PRIMARY KEY ("RTAG_ID")
19654
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19655
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19656
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19657
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19658
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19659
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("PROJ_ID" NOT NULL ENABLE);
19660
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("PARENT_RTAG_ID" NOT NULL ENABLE);
19661
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("REBUILD_STAMP" NOT NULL ENABLE);
19662
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("REBUILD_ENV" NOT NULL ENABLE);
19663
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("OFFICIAL" NOT NULL ENABLE);
19664
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("RTAG_NAME" NOT NULL ENABLE);
19665
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 19666
--------------------------------------------------------
6999 dpurdie 19667
--  Constraints for Table PACKAGE_DOCUMENTS
4040 dpurdie 19668
--------------------------------------------------------
19669
 
6999 dpurdie 19670
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("DOC_NUM" NOT NULL ENABLE);
19671
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("DOC_ID" NOT NULL ENABLE);
19672
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
19673
--------------------------------------------------------
19674
--  Constraints for Table AUTOBUILD_FAILURE
19675
--------------------------------------------------------
1373 dpurdie 19676
 
6999 dpurdie 19677
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD PRIMARY KEY ("GROUP_EMAIL_ID")
19678
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19679
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19680
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19681
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19682
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19683
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" MODIFY ("GROUP_EMAIL_ID" NOT NULL ENABLE);
19684
--------------------------------------------------------
19685
--  Constraints for Table RELEASE_METRICS
19686
--------------------------------------------------------
1373 dpurdie 19687
 
6999 dpurdie 19688
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" ADD CONSTRAINT "UNQ_RELEASE_METRICS" UNIQUE ("RTAG_ID")
19689
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19690
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19691
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19692
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19693
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19694
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
19695
--------------------------------------------------------
19696
--  Constraints for Table RELEASE_COMPONENTS
19697
--------------------------------------------------------
1373 dpurdie 19698
 
6999 dpurdie 19699
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
19700
--------------------------------------------------------
19701
--  Constraints for Table SDK_CONTENT
19702
--------------------------------------------------------
1373 dpurdie 19703
 
6999 dpurdie 19704
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("SDKPKG_STATE" NOT NULL ENABLE);
19705
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("PV_ID" NOT NULL ENABLE);
19706
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("SDKTAG_ID" NOT NULL ENABLE);
19707
--------------------------------------------------------
19708
--  Constraints for Table ACTION_TYPE
19709
--------------------------------------------------------
4040 dpurdie 19710
 
6999 dpurdie 19711
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" ADD CONSTRAINT "UNQ_ACTTYPE_ID" PRIMARY KEY ("ACTTYPE_ID")
19712
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19713
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19714
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19715
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19716
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19717
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" MODIFY ("NAME" NOT NULL ENABLE);
19718
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
4040 dpurdie 19719
--------------------------------------------------------
6999 dpurdie 19720
--  Constraints for Table PLANNED
4040 dpurdie 19721
--------------------------------------------------------
19722
 
6999 dpurdie 19723
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "UNIQUE_PV_RTAG" UNIQUE ("PV_ID", "RTAG_ID")
19724
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19725
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19726
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19727
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19728
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19729
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("VIEW_ID" NOT NULL ENABLE);
19730
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("PV_ID" NOT NULL ENABLE);
19731
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("RTAG_ID" NOT NULL ENABLE);
19732
--------------------------------------------------------
19733
--  Constraints for Table SDK_TAGS
19734
--------------------------------------------------------
6031 dpurdie 19735
 
6999 dpurdie 19736
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_PK" PRIMARY KEY ("SDKTAG_ID")
19737
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19738
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19739
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19740
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19741
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19742
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDK_STATE" NOT NULL ENABLE);
19743
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
19744
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDK_ID" NOT NULL ENABLE);
19745
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDKTAG_NAME" NOT NULL ENABLE);
19746
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDKTAG_ID" NOT NULL ENABLE);
19747
--------------------------------------------------------
19748
--  Constraints for Table RELEASE_MODIFIED
19749
--------------------------------------------------------
6031 dpurdie 19750
 
6999 dpurdie 19751
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" ADD CONSTRAINT "RELEASE_MODIFIED_PK" PRIMARY KEY ("RTAG_ID")
19752
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19753
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19754
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19755
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19756
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19757
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" MODIFY ("RTAG_ID" NOT NULL ENABLE);
19758
--------------------------------------------------------
19759
--  Constraints for Table PACKAGE_METRICS
19760
--------------------------------------------------------
1373 dpurdie 19761
 
6999 dpurdie 19762
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" ADD CONSTRAINT "UNQ_PACKAGE_METRICS" UNIQUE ("PV_ID")
19763
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19764
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19765
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19766
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19767
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19768
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" MODIFY ("PV_ID" NOT NULL ENABLE);
19769
--------------------------------------------------------
19770
--  Constraints for Table PACKAGE_BUILD_ENV
19771
--------------------------------------------------------
6031 dpurdie 19772
 
6999 dpurdie 19773
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" MODIFY ("BE_ID" NOT NULL ENABLE);
19774
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" MODIFY ("PV_ID" NOT NULL ENABLE);
19775
--------------------------------------------------------
19776
--  Constraints for Table PROCESSES
19777
--------------------------------------------------------
4040 dpurdie 19778
 
6999 dpurdie 19779
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" ADD CONSTRAINT "PROCESSES_PK" PRIMARY KEY ("PROC_ID")
19780
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19781
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19782
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19783
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19784
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19785
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" MODIFY ("PROC_NAME" NOT NULL ENABLE);
19786
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" MODIFY ("PROC_ID" NOT NULL ENABLE);
4040 dpurdie 19787
--------------------------------------------------------
6999 dpurdie 19788
--  Constraints for Table BUILD_SERVICE_CONFIG
4040 dpurdie 19789
--------------------------------------------------------
19790
 
6999 dpurdie 19791
  ALTER TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" MODIFY ("CONFIG" NOT NULL ENABLE);
19792
  ALTER TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" MODIFY ("SERVICE" NOT NULL ENABLE);
19793
--------------------------------------------------------
19794
--  Constraints for Table PROJECT_ACTION_LOG
19795
--------------------------------------------------------
4040 dpurdie 19796
 
6999 dpurdie 19797
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
19798
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("PROJ_ID" NOT NULL ENABLE);
19799
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("ACTION_DATETIME" NOT NULL ENABLE);
19800
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4040 dpurdie 19801
--------------------------------------------------------
6999 dpurdie 19802
--  Constraints for Table ARCHIVE_ACTION_LOG
4040 dpurdie 19803
--------------------------------------------------------
19804
 
6999 dpurdie 19805
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("DESCRIPTION" NOT NULL ENABLE);
19806
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("RTAG_ID" NOT NULL ENABLE);
19807
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("DATE_TIME_STAMP" NOT NULL ENABLE);
19808
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
19809
--------------------------------------------------------
19810
--  Constraints for Table VTREES
19811
--------------------------------------------------------
4040 dpurdie 19812
 
6999 dpurdie 19813
  ALTER TABLE "RELEASE_MANAGER"."VTREES" ADD CONSTRAINT "PK_VTREES" PRIMARY KEY ("VTREE_ID")
19814
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19815
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19816
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19817
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19818
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19819
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("HIDE" NOT NULL ENABLE);
19820
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("VTREE_NAME" NOT NULL ENABLE);
19821
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("PROJ_ID" NOT NULL ENABLE);
19822
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("VTREE_ID" NOT NULL ENABLE);
4040 dpurdie 19823
--------------------------------------------------------
6999 dpurdie 19824
--  Constraints for Table GBE_MACHTYPE
4040 dpurdie 19825
--------------------------------------------------------
19826
 
6999 dpurdie 19827
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" ADD PRIMARY KEY ("GBE_ID")
19828
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19829
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19830
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19831
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19832
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19833
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("BM_ID" NOT NULL ENABLE);
19834
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("GBE_VALUE" NOT NULL ENABLE);
19835
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("GBE_ID" NOT NULL ENABLE);
19836
--------------------------------------------------------
19837
--  Constraints for Table PACKAGE_INTEREST
19838
--------------------------------------------------------
3959 dpurdie 19839
 
6999 dpurdie 19840
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("USER_ID" NOT NULL ENABLE);
19841
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("PROJ_ID" NOT NULL ENABLE);
19842
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("PKG_ID" NOT NULL ENABLE);
19843
--------------------------------------------------------
19844
--  Constraints for Table PACKAGES
19845
--------------------------------------------------------
3959 dpurdie 19846
 
6999 dpurdie 19847
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" ADD CONSTRAINT "PK_PACKAGES" PRIMARY KEY ("PKG_ID")
19848
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19849
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19850
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19851
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19852
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19853
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" MODIFY ("PKG_NAME" NOT NULL ENABLE);
19854
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" MODIFY ("PKG_ID" NOT NULL ENABLE);
19855
--------------------------------------------------------
19856
--  Constraints for Table IGNORE_WARNINGS
19857
--------------------------------------------------------
3959 dpurdie 19858
 
6999 dpurdie 19859
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("DPV_ID" NOT NULL ENABLE);
19860
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("PV_ID" NOT NULL ENABLE);
19861
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
19862
--------------------------------------------------------
19863
--  Constraints for Table PRODUCT_COMPONENTS
19864
--------------------------------------------------------
3959 dpurdie 19865
 
6999 dpurdie 19866
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" MODIFY ("OS_ID" NOT NULL ENABLE);
19867
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
19868
--------------------------------------------------------
19869
--  Constraints for Table TEST_TYPES
19870
--------------------------------------------------------
3959 dpurdie 19871
 
6999 dpurdie 19872
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" ADD CONSTRAINT "PK_TEST_TYPES" PRIMARY KEY ("TEST_TYPE_ID")
19873
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19874
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19875
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19876
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19877
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19878
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" MODIFY ("TEST_TYPE_NAME" NOT NULL ENABLE);
19879
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" MODIFY ("TEST_TYPE_ID" NOT NULL ENABLE);
19880
--------------------------------------------------------
19881
--  Constraints for Table MICROSOFTDTPROPERTIES
19882
--------------------------------------------------------
1373 dpurdie 19883
 
6999 dpurdie 19884
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" ADD CONSTRAINT "MICROSOFT_PK_DTPROPERTIES" PRIMARY KEY ("ID", "PROPERTY")
19885
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19886
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19887
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19888
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19889
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19890
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("VERSION" CONSTRAINT "MICROSOFT_NN_VERSION" NOT NULL ENABLE);
19891
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("PROPERTY" CONSTRAINT "MICROSOFT_NN_PROPERTY" NOT NULL ENABLE);
19892
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("ID" CONSTRAINT "MICROSOFT_NN_ID" NOT NULL ENABLE);
4040 dpurdie 19893
--------------------------------------------------------
6999 dpurdie 19894
--  Constraints for Table PRODUCT_STATES
4040 dpurdie 19895
--------------------------------------------------------
19896
 
6999 dpurdie 19897
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" ADD CONSTRAINT "PRODUCT_STATES_PK" PRIMARY KEY ("STATE_ID")
19898
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19899
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19900
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19901
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19902
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19903
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" MODIFY ("STATE" NOT NULL ENABLE);
19904
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" MODIFY ("STATE_ID" NOT NULL ENABLE);
4040 dpurdie 19905
--------------------------------------------------------
6999 dpurdie 19906
--  Constraints for Table CODE_REVIEWS
4040 dpurdie 19907
--------------------------------------------------------
19908
 
6999 dpurdie 19909
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEWS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 19910
--------------------------------------------------------
6999 dpurdie 19911
--  Constraints for Table RELEASE_CONTENT
4040 dpurdie 19912
--------------------------------------------------------
19913
 
6999 dpurdie 19914
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("PKG_STATE" NOT NULL ENABLE);
19915
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("INSERTOR_ID" NOT NULL ENABLE);
19916
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("INSERT_STAMP" NOT NULL ENABLE);
19917
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("BASE_VIEW_ID" NOT NULL ENABLE);
19918
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("PV_ID" NOT NULL ENABLE);
19919
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 19920
--------------------------------------------------------
6999 dpurdie 19921
--  Constraints for Table WORLDS
4040 dpurdie 19922
--------------------------------------------------------
19923
 
6999 dpurdie 19924
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" ADD CONSTRAINT "PK_WORLDS" PRIMARY KEY ("WORLD_ID")
19925
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19926
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19927
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19928
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19929
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19930
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" MODIFY ("WORLD_NAME" NOT NULL ENABLE);
19931
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" MODIFY ("WORLD_ID" NOT NULL ENABLE);
4040 dpurdie 19932
--------------------------------------------------------
6999 dpurdie 19933
--  Constraints for Table PEGGED_VERSIONS
4040 dpurdie 19934
--------------------------------------------------------
19935
 
6999 dpurdie 19936
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" MODIFY ("PV_ID" NOT NULL ENABLE);
19937
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 19938
--------------------------------------------------------
6999 dpurdie 19939
--  Constraints for Table ABT_ACTION_LOG
4040 dpurdie 19940
--------------------------------------------------------
19941
 
6999 dpurdie 19942
  ALTER TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" MODIFY ("RCON_ID" NOT NULL ENABLE);
4040 dpurdie 19943
--------------------------------------------------------
6999 dpurdie 19944
--  Constraints for Table LICENCING
4040 dpurdie 19945
--------------------------------------------------------
19946
 
6999 dpurdie 19947
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD CONSTRAINT "LICENCING_PK" PRIMARY KEY ("PV_ID", "LICENCE")
19948
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19949
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19950
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19951
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19952
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19953
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" MODIFY ("LICENCE" NOT NULL ENABLE);
19954
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 19955
--------------------------------------------------------
6999 dpurdie 19956
--  Constraints for Table DASH_BOARD
4040 dpurdie 19957
--------------------------------------------------------
19958
 
6999 dpurdie 19959
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("TOTAL_PACKAGES" NOT NULL ENABLE);
19960
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("AUTOMATED_PACKAGES" NOT NULL ENABLE);
19961
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("LAST_BUILD_TIME" NOT NULL ENABLE);
19962
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("RTAG_ID" NOT NULL ENABLE);
19963
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4040 dpurdie 19964
--------------------------------------------------------
6999 dpurdie 19965
--  Constraints for Table BUILD_INSTANCES
4040 dpurdie 19966
--------------------------------------------------------
19967
 
6999 dpurdie 19968
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_ID" PRIMARY KEY ("BUILD_ID")
19969
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19970
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19971
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19972
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19973
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19974
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("STATE" NOT NULL ENABLE);
19975
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("TIMESTAMP" NOT NULL ENABLE);
19976
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("PV_ID" NOT NULL ENABLE);
19977
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("BUILD_ID" NOT NULL ENABLE);
4040 dpurdie 19978
--------------------------------------------------------
6999 dpurdie 19979
--  Constraints for Table BLAT_RELEASES
4040 dpurdie 19980
--------------------------------------------------------
19981
 
6999 dpurdie 19982
  ALTER TABLE "RELEASE_MANAGER"."BLAT_RELEASES" MODIFY ("RTAG_ID" NOT NULL ENABLE);
19983
  ALTER TABLE "RELEASE_MANAGER"."BLAT_RELEASES" MODIFY ("BLAT_ID" NOT NULL ENABLE);
4040 dpurdie 19984
--------------------------------------------------------
6999 dpurdie 19985
--  Constraints for Table NOTE_MANAGER
4040 dpurdie 19986
--------------------------------------------------------
19987
 
6999 dpurdie 19988
  ALTER TABLE "RELEASE_MANAGER"."NOTE_MANAGER" ADD CONSTRAINT "PKNOTE_MANAGER1" PRIMARY KEY ("NID")
19989
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19990
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19991
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19992
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19993
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19994
  ALTER TABLE "RELEASE_MANAGER"."NOTE_MANAGER" MODIFY ("NID" NOT NULL ENABLE);
4040 dpurdie 19995
--------------------------------------------------------
6999 dpurdie 19996
--  Constraints for Table BLAT_PROJECTS
4040 dpurdie 19997
--------------------------------------------------------
19998
 
6999 dpurdie 19999
  ALTER TABLE "RELEASE_MANAGER"."BLAT_PROJECTS" MODIFY ("PROJ_ID" NOT NULL ENABLE);
20000
  ALTER TABLE "RELEASE_MANAGER"."BLAT_PROJECTS" MODIFY ("BLAT_ID" NOT NULL ENABLE);
4040 dpurdie 20001
--------------------------------------------------------
6999 dpurdie 20002
--  Constraints for Table NOTIFICATION_HISTORY
4040 dpurdie 20003
--------------------------------------------------------
20004
 
6999 dpurdie 20005
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "PK_NOTIFICATION_HISTORY" PRIMARY KEY ("RTAG_ID", "PV_ID", "USER_ID")
20006
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20007
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20008
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20009
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20010
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20011
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("DATE_TIME_STAMP" NOT NULL ENABLE);
20012
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("USER_ID" NOT NULL ENABLE);
20013
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("PV_ID" NOT NULL ENABLE);
20014
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 20015
--------------------------------------------------------
6999 dpurdie 20016
--  Constraints for Table ACTION_LOG
4040 dpurdie 20017
--------------------------------------------------------
20018
 
6999 dpurdie 20019
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTION_TIMESTAMP" NOT NULL ENABLE);
20020
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
20021
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("PV_ID" NOT NULL ENABLE);
20022
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTION_DATETIME" NOT NULL ENABLE);
20023
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4040 dpurdie 20024
--------------------------------------------------------
6999 dpurdie 20025
--  Constraints for Table RELEASE_LINKS
20026
--------------------------------------------------------
5384 dpurdie 20027
 
6999 dpurdie 20028
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" MODIFY ("REF_RTAG_ID" NOT NULL ENABLE);
20029
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 20030
--------------------------------------------------------
6999 dpurdie 20031
--  Constraints for Table VTREES_WORLD
20032
--------------------------------------------------------
4040 dpurdie 20033
 
6999 dpurdie 20034
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" MODIFY ("VTREE_ID" NOT NULL ENABLE);
20035
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" MODIFY ("WORLD_ID" NOT NULL ENABLE);
4040 dpurdie 20036
--------------------------------------------------------
6999 dpurdie 20037
--  Constraints for Table DAEMON_ACTION_LOG
4040 dpurdie 20038
--------------------------------------------------------
20039
 
6999 dpurdie 20040
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" MODIFY ("RCON_ID" NOT NULL ENABLE);
20041
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4040 dpurdie 20042
--------------------------------------------------------
6999 dpurdie 20043
--  Constraints for Table BUILD_STANDARDS_ADDENDUM
4040 dpurdie 20044
--------------------------------------------------------
20045
 
6999 dpurdie 20046
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ADD CONSTRAINT "BUILD_STANDARDS_ADDENDUM_PK" PRIMARY KEY ("BSA_ID")
20047
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20048
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20049
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20050
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20051
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20052
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BS_ID" NOT NULL ENABLE);
20053
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BSA_NAME" NOT NULL ENABLE);
20054
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BSA_ID" NOT NULL ENABLE);
4040 dpurdie 20055
--------------------------------------------------------
6999 dpurdie 20056
--  Constraints for Table BUILD_MACHINES
4040 dpurdie 20057
--------------------------------------------------------
20058
 
6999 dpurdie 20059
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" ADD CONSTRAINT "BUILD_MACHINES_PK" PRIMARY KEY ("BM_ID")
20060
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20061
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20062
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20063
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20064
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20065
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" MODIFY ("BM_NAME" NOT NULL ENABLE);
20066
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" MODIFY ("BM_ID" NOT NULL ENABLE);
4040 dpurdie 20067
--------------------------------------------------------
6999 dpurdie 20068
--  Constraints for Table PLATFORMS
4040 dpurdie 20069
--------------------------------------------------------
20070
 
6999 dpurdie 20071
  ALTER TABLE "RELEASE_MANAGER"."PLATFORMS" MODIFY ("NAME" NOT NULL ENABLE);
20072
  ALTER TABLE "RELEASE_MANAGER"."PLATFORMS" MODIFY ("CODE" NOT NULL ENABLE);
4040 dpurdie 20073
--------------------------------------------------------
6999 dpurdie 20074
--  Constraints for Table WORK_IN_PROGRESS
4040 dpurdie 20075
--------------------------------------------------------
20076
 
6999 dpurdie 20077
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
20078
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("PV_ID" NOT NULL ENABLE);
20079
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 20080
--------------------------------------------------------
6999 dpurdie 20081
--  Constraints for Table CQ_ISSUES
4040 dpurdie 20082
--------------------------------------------------------
20083
 
6999 dpurdie 20084
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
20085
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_STATE" NOT NULL ENABLE);
20086
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_ID" NOT NULL ENABLE);
20087
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_DB" NOT NULL ENABLE);
20088
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 20089
--------------------------------------------------------
6999 dpurdie 20090
--  Constraints for Table BUILD_ORDER
4040 dpurdie 20091
--------------------------------------------------------
20092
 
6999 dpurdie 20093
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("PV_ID" NOT NULL ENABLE);
20094
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("STEP_NUM" NOT NULL ENABLE);
20095
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 20096
--------------------------------------------------------
6999 dpurdie 20097
--  Constraints for Table VALIDATION_RULES_DELETE_ME
4040 dpurdie 20098
--------------------------------------------------------
20099
 
6999 dpurdie 20100
  ALTER TABLE "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" MODIFY ("IS_REQUIRED" NOT NULL ENABLE);
20101
  ALTER TABLE "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" MODIFY ("FIELD_NAME" NOT NULL ENABLE);
4040 dpurdie 20102
--------------------------------------------------------
6999 dpurdie 20103
--  Constraints for Table CODE_REVIEW_URL
4040 dpurdie 20104
--------------------------------------------------------
20105
 
6999 dpurdie 20106
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PK" PRIMARY KEY ("CR_ID")
20107
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20108
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20109
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20110
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20111
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20112
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("DATE_OF_REVIEW" NOT NULL ENABLE);
20113
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("URL" NOT NULL ENABLE);
20114
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("PROJ_ID" NOT NULL ENABLE);
20115
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("PV_ID" NOT NULL ENABLE);
20116
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("CR_ID" NOT NULL ENABLE);
4040 dpurdie 20117
--------------------------------------------------------
6999 dpurdie 20118
--  Constraints for Table RELEASE_CONFIG
4040 dpurdie 20119
--------------------------------------------------------
20120
 
6999 dpurdie 20121
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD PRIMARY KEY ("RCON_ID")
20122
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20123
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20124
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20125
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20126
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20127
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" MODIFY ("RTAG_ID" NOT NULL ENABLE);
20128
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" MODIFY ("RCON_ID" NOT NULL ENABLE);
4040 dpurdie 20129
--------------------------------------------------------
6999 dpurdie 20130
--  Constraints for Table PACKAGE_PROCESSES
4040 dpurdie 20131
--------------------------------------------------------
20132
 
6999 dpurdie 20133
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" MODIFY ("PROC_ID" NOT NULL ENABLE);
20134
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 20135
--------------------------------------------------------
6999 dpurdie 20136
--  Constraints for Table PACKAGE_BUILD_INFO
4040 dpurdie 20137
--------------------------------------------------------
20138
 
6999 dpurdie 20139
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" MODIFY ("BM_ID" NOT NULL ENABLE);
20140
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 20141
--------------------------------------------------------
6999 dpurdie 20142
--  Constraints for Table VIEW_SETTINGS
4040 dpurdie 20143
--------------------------------------------------------
20144
 
6999 dpurdie 20145
  ALTER TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
20146
  ALTER TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" MODIFY ("USER_ID" NOT NULL ENABLE);
4040 dpurdie 20147
--------------------------------------------------------
6999 dpurdie 20148
--  Constraints for Table DEPRECATED_PACKAGES
4040 dpurdie 20149
--------------------------------------------------------
20150
 
6999 dpurdie 20151
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("COMMENTS" NOT NULL ENABLE);
20152
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("PKG_ID" NOT NULL ENABLE);
20153
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 20154
--------------------------------------------------------
6999 dpurdie 20155
--  Constraints for Table BUILD_PLAN
4040 dpurdie 20156
--------------------------------------------------------
20157
 
6999 dpurdie 20158
  ALTER TABLE "RELEASE_MANAGER"."BUILD_PLAN" ADD CONSTRAINT "BUILD_PLAN_PK" PRIMARY KEY ("RTAG_ID", "BUILD_ORDER", "PV_ID")
20159
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20160
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20161
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20162
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20163
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4040 dpurdie 20164
--------------------------------------------------------
6999 dpurdie 20165
--  Constraints for Table MESSAGE_BOARD
4040 dpurdie 20166
--------------------------------------------------------
20167
 
6999 dpurdie 20168
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" ADD CONSTRAINT "PK_MESSAGE_BOARD" PRIMARY KEY ("MSG_ID")
20169
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20170
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20171
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20172
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20173
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20174
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("SUBMITION_DATE" NOT NULL ENABLE);
20175
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("MSG_DETAILS" NOT NULL ENABLE);
20176
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("MSG_ID" NOT NULL ENABLE);
4040 dpurdie 20177
--------------------------------------------------------
6999 dpurdie 20178
--  Constraints for Table VCS_TYPE
4040 dpurdie 20179
--------------------------------------------------------
20180
 
6999 dpurdie 20181
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" ADD CONSTRAINT "VCS_TYPE_PK" PRIMARY KEY ("VCS_TYPE_ID")
20182
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20183
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20184
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20185
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20186
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20187
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("TAG" NOT NULL ENABLE);
20188
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("NAME" NOT NULL ENABLE);
20189
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("VCS_TYPE_ID" NOT NULL ENABLE);
4040 dpurdie 20190
--------------------------------------------------------
6999 dpurdie 20191
--  Constraints for Table RUN_LEVEL
4040 dpurdie 20192
--------------------------------------------------------
20193
 
6999 dpurdie 20194
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD CONSTRAINT "PK_RUN_LEVEL" PRIMARY KEY ("RCON_ID")
20195
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20196
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20197
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20198
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20199
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20200
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" MODIFY ("RCON_ID" NOT NULL ENABLE);
4040 dpurdie 20201
--------------------------------------------------------
6999 dpurdie 20202
--  Constraints for Table DO_NOT_RIPPLE
4040 dpurdie 20203
--------------------------------------------------------
20204
 
6999 dpurdie 20205
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" MODIFY ("PV_ID" NOT NULL ENABLE);
20206
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 20207
--------------------------------------------------------
6999 dpurdie 20208
--  Constraints for Table CQ_SOFTWARE_ISSUE
4040 dpurdie 20209
--------------------------------------------------------
20210
 
6999 dpurdie 20211
  ALTER TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ADD CONSTRAINT "CQ_SOFTWARE_ISSUE_PK" PRIMARY KEY ("DBID")
20212
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20213
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20214
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20215
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20216
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20217
  ALTER TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" MODIFY ("DBID" NOT NULL ENABLE);
4040 dpurdie 20218
--------------------------------------------------------
6999 dpurdie 20219
--  Constraints for Table LICENCES
4040 dpurdie 20220
--------------------------------------------------------
20221
 
6999 dpurdie 20222
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" ADD CONSTRAINT "PK_LICENCES" PRIMARY KEY ("LICENCE")
20223
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20224
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20225
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20226
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20227
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20228
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" MODIFY ("NAME" NOT NULL ENABLE);
20229
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" MODIFY ("LICENCE" NOT NULL ENABLE);
4040 dpurdie 20230
--------------------------------------------------------
6999 dpurdie 20231
--  Constraints for Table UNIT_TESTS
4040 dpurdie 20232
--------------------------------------------------------
20233
 
6999 dpurdie 20234
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("TEST_TYPES_FK" NOT NULL ENABLE);
20235
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("PV_ID" NOT NULL ENABLE);
20236
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("TEST_ID" NOT NULL ENABLE);
4040 dpurdie 20237
--------------------------------------------------------
6999 dpurdie 20238
--  Constraints for Table BLAT_SERVERS
4040 dpurdie 20239
--------------------------------------------------------
20240
 
6999 dpurdie 20241
  ALTER TABLE "RELEASE_MANAGER"."BLAT_SERVERS" ADD CONSTRAINT "BLAT_SERVERS_UK1" UNIQUE ("BLAT_SERVER_NAME")
20242
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20243
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20244
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20245
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20246
  TABLESPACE "RELEASE_MANAGER_DATA"  ENABLE;
20247
  ALTER TABLE "RELEASE_MANAGER"."BLAT_SERVERS" ADD CONSTRAINT "BLAT_SERVERS_PK" PRIMARY KEY ("BLAT_ID")
20248
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20249
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20250
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20251
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20252
  TABLESPACE "RELEASE_MANAGER_DATA"  ENABLE;
20253
  ALTER TABLE "RELEASE_MANAGER"."BLAT_SERVERS" MODIFY ("BLAT_SEQNUM" NOT NULL ENABLE);
20254
  ALTER TABLE "RELEASE_MANAGER"."BLAT_SERVERS" MODIFY ("BLAT_DISPLAY_NAME" NOT NULL ENABLE);
20255
  ALTER TABLE "RELEASE_MANAGER"."BLAT_SERVERS" MODIFY ("BLAT_SERVER_NAME" NOT NULL ENABLE);
20256
  ALTER TABLE "RELEASE_MANAGER"."BLAT_SERVERS" MODIFY ("BLAT_ID" NOT NULL ENABLE);
4040 dpurdie 20257
--------------------------------------------------------
6999 dpurdie 20258
--  Constraints for Table CQ_STATEDEF
4040 dpurdie 20259
--------------------------------------------------------
20260
 
6999 dpurdie 20261
  ALTER TABLE "RELEASE_MANAGER"."CQ_STATEDEF" ADD CONSTRAINT "CQ_STATEDEF_PK" PRIMARY KEY ("ID")
20262
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20263
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20264
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20265
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20266
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20267
  ALTER TABLE "RELEASE_MANAGER"."CQ_STATEDEF" MODIFY ("ID" NOT NULL ENABLE);
4040 dpurdie 20268
--------------------------------------------------------
6999 dpurdie 20269
--  Constraints for Table TEMP_ENV_STATES
4040 dpurdie 20270
--------------------------------------------------------
20271
 
6999 dpurdie 20272
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("TES_STATE" NOT NULL ENABLE);
20273
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("PKG_ID" NOT NULL ENABLE);
20274
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("PV_ID" NOT NULL ENABLE);
20275
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("LEVEL_NUM" NOT NULL ENABLE);
20276
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("SESSION_NUM" NOT NULL ENABLE);
4040 dpurdie 20277
--------------------------------------------------------
6999 dpurdie 20278
--  Constraints for Table CQ_USERS
4040 dpurdie 20279
--------------------------------------------------------
20280
 
6999 dpurdie 20281
  ALTER TABLE "RELEASE_MANAGER"."CQ_USERS" ADD CONSTRAINT "CQ_USERS_PK" PRIMARY KEY ("DBID")
20282
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20283
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20284
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20285
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20286
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20287
  ALTER TABLE "RELEASE_MANAGER"."CQ_USERS" MODIFY ("DBID" NOT NULL ENABLE);
4040 dpurdie 20288
--------------------------------------------------------
6999 dpurdie 20289
--  Constraints for Table TEMP_ENV_DEPS
4040 dpurdie 20290
--------------------------------------------------------
20291
 
6999 dpurdie 20292
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" ADD CONSTRAINT "TEMP_ENV_DEPS_PK" PRIMARY KEY ("PV_ID", "SESSION_NUM", "DPV_ID")
20293
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20294
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20295
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20296
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20297
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20298
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("DPKG_ID" NOT NULL ENABLE);
20299
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("DPV_ID" NOT NULL ENABLE);
20300
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("PKG_ID" NOT NULL ENABLE);
20301
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("PV_ID" NOT NULL ENABLE);
20302
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("SESSION_NUM" NOT NULL ENABLE);
4040 dpurdie 20303
--------------------------------------------------------
6999 dpurdie 20304
--  Constraints for Table RUN_LEVEL_SCHEDULE
4040 dpurdie 20305
--------------------------------------------------------
20306
 
6999 dpurdie 20307
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" ADD PRIMARY KEY ("SCHEDULED_ID")
20308
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20309
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20310
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20311
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20312
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20313
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" MODIFY ("SCHEDULED_ID" NOT NULL ENABLE);
4040 dpurdie 20314
--------------------------------------------------------
6999 dpurdie 20315
--  Constraints for Table SDK_NAMES
4040 dpurdie 20316
--------------------------------------------------------
20317
 
6999 dpurdie 20318
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_PK" PRIMARY KEY ("SDK_ID")
20319
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20320
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20321
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20322
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20323
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20324
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_UK1" UNIQUE ("SDK_NAME")
20325
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20326
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20327
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20328
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20329
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20330
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("PROJ_ID" NOT NULL ENABLE);
20331
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("VIEW_ID" NOT NULL ENABLE);
20332
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("SDK_NAME" NOT NULL ENABLE);
20333
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("SDK_ID" NOT NULL ENABLE);
4040 dpurdie 20334
--------------------------------------------------------
6999 dpurdie 20335
--  Constraints for Table PROJECT_EXTENTIONS
4040 dpurdie 20336
--------------------------------------------------------
20337
 
6999 dpurdie 20338
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_EXTENTIONS" MODIFY ("EXT_NAME" NOT NULL ENABLE);
4040 dpurdie 20339
--------------------------------------------------------
6999 dpurdie 20340
--  Constraints for Table MEMBERS_GROUP
4040 dpurdie 20341
--------------------------------------------------------
20342
 
6999 dpurdie 20343
  ALTER TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" MODIFY ("GROUP_EMAIL_ID" NOT NULL ENABLE);
4040 dpurdie 20344
--------------------------------------------------------
6999 dpurdie 20345
--  Constraints for Table TEST_RUN
4040 dpurdie 20346
--------------------------------------------------------
20347
 
6999 dpurdie 20348
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" ADD CONSTRAINT "PK_TEST_RUN" PRIMARY KEY ("TESTRUN_ID")
20349
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20350
  STORAGE(INITIAL 109051904 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20351
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20352
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20353
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20354
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TEST_OUTCOME" NOT NULL ENABLE);
20355
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TEST_NAME" NOT NULL ENABLE);
20356
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TYPE" NOT NULL ENABLE);
20357
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("PLATFORM" NOT NULL ENABLE);
20358
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("BUILD_ID" NOT NULL ENABLE);
20359
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TESTRUN_ID" NOT NULL ENABLE);
4040 dpurdie 20360
--------------------------------------------------------
6999 dpurdie 20361
--  Constraints for Table BUILD_STANDARDS
4040 dpurdie 20362
--------------------------------------------------------
20363
 
6999 dpurdie 20364
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" ADD CONSTRAINT "BUILD_STANDARDS_PK" PRIMARY KEY ("BS_ID")
20365
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20366
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20367
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20368
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20369
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20370
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" MODIFY ("BS_NAME" NOT NULL ENABLE);
20371
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" MODIFY ("BS_ID" NOT NULL ENABLE);
4040 dpurdie 20372
--------------------------------------------------------
6999 dpurdie 20373
--  Constraints for Table RUNTIME_DEPENDENCIES
4040 dpurdie 20374
--------------------------------------------------------
20375
 
6999 dpurdie 20376
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("MOD_USER" NOT NULL ENABLE);
20377
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
20378
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 20379
--------------------------------------------------------
6999 dpurdie 20380
--  Constraints for Table DAEMON_INSTRUCTIONS
4040 dpurdie 20381
--------------------------------------------------------
20382
 
6999 dpurdie 20383
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_UK1" UNIQUE ("OP_CODE", "RTAG_ID", "PV_ID")
20384
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20385
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20386
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20387
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20388
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20389
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_PK" PRIMARY KEY ("DAEMON_INSTRUCTIONS_ID")
20390
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20391
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20392
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20393
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20394
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20395
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" MODIFY ("OP_CODE" NOT NULL ENABLE);
20396
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" MODIFY ("DAEMON_INSTRUCTIONS_ID" NOT NULL ENABLE);
4040 dpurdie 20397
--------------------------------------------------------
6999 dpurdie 20398
--  Constraints for Table PACKAGE_VERSIONS
4040 dpurdie 20399
--------------------------------------------------------
20400
 
6999 dpurdie 20401
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD CONSTRAINT "PK_PACKAGE_VERSIONS" PRIMARY KEY ("PV_ID")
20402
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20403
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20404
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20405
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20406
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20407
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("BUILD_TYPE" NOT NULL ENABLE);
20408
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("LAST_PV_ID" NOT NULL ENABLE);
20409
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("OWNER_ID" NOT NULL ENABLE);
20410
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("CREATOR_ID" NOT NULL ENABLE);
20411
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("MODIFIER_ID" NOT NULL ENABLE);
20412
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("DLOCKED" NOT NULL ENABLE);
20413
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PKG_VERSION" NOT NULL ENABLE);
20414
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PKG_ID" NOT NULL ENABLE);
20415
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 20416
--------------------------------------------------------
6999 dpurdie 20417
--  Constraints for Table BUILD_ENV_DOCUMENTS
4040 dpurdie 20418
--------------------------------------------------------
20419
 
6999 dpurdie 20420
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" MODIFY ("DOC_NUM" NOT NULL ENABLE);
20421
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" MODIFY ("BE_ID" NOT NULL ENABLE);
4040 dpurdie 20422
--------------------------------------------------------
6999 dpurdie 20423
--  Constraints for Table LXR_STATE
4040 dpurdie 20424
--------------------------------------------------------
20425
 
6999 dpurdie 20426
  ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" ADD CONSTRAINT "LXR_STATE_PK" PRIMARY KEY ("RTAG_ID")
20427
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20428
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20429
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20430
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20431
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20432
  ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 20433
--------------------------------------------------------
6999 dpurdie 20434
--  Constraints for Table BUILD_MACHINE_CONFIG
4040 dpurdie 20435
--------------------------------------------------------
20436
 
6999 dpurdie 20437
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ADD CONSTRAINT "PK_BUILD_MACHINE_CONFIG" PRIMARY KEY ("BMCON_ID")
20438
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20439
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20440
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20441
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20442
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20443
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("ACTIVE" NOT NULL ENABLE);
20444
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("GBE_ID" NOT NULL ENABLE);
20445
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("MACHINE_HOSTNAME" NOT NULL ENABLE);
20446
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("DISPLAY_NAME" NOT NULL ENABLE);
20447
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("BMCON_ID" NOT NULL ENABLE);
4040 dpurdie 20448
--------------------------------------------------------
6999 dpurdie 20449
--  Constraints for Table ADVISORY_RIPPLE
4040 dpurdie 20450
--------------------------------------------------------
20451
 
6999 dpurdie 20452
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" MODIFY ("PV_ID" NOT NULL ENABLE);
20453
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 20454
--------------------------------------------------------
6999 dpurdie 20455
--  Constraints for Table PROJECTS
4040 dpurdie 20456
--------------------------------------------------------
20457
 
6999 dpurdie 20458
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" ADD CONSTRAINT "PK_PROJECTS" PRIMARY KEY ("PROJ_ID")
20459
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20460
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20461
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20462
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20463
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20464
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" MODIFY ("PROJ_NAME" NOT NULL ENABLE);
20465
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4040 dpurdie 20466
--------------------------------------------------------
6999 dpurdie 20467
--  Constraints for Table PACKAGE_PATCHES
4040 dpurdie 20468
--------------------------------------------------------
20469
 
6999 dpurdie 20470
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("INSTALL_ORDER" NOT NULL ENABLE);
20471
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("PATCH_ID" NOT NULL ENABLE);
20472
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 20473
--------------------------------------------------------
6999 dpurdie 20474
--  Constraints for Table PACKAGE_DEPENDENCIES
4040 dpurdie 20475
--------------------------------------------------------
20476
 
6999 dpurdie 20477
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("BUILD_TYPE" NOT NULL ENABLE);
20478
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("DPKG_ID" NOT NULL ENABLE);
20479
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("PKG_ID" NOT NULL ENABLE);
20480
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("DPV_ID" NOT NULL ENABLE);
20481
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 20482
--------------------------------------------------------
6999 dpurdie 20483
--  Constraints for Table JIRA_ISSUES
4040 dpurdie 20484
--------------------------------------------------------
20485
 
6999 dpurdie 20486
  ALTER TABLE "RELEASE_MANAGER"."JIRA_ISSUES" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 20487
--------------------------------------------------------
6999 dpurdie 20488
--  Constraints for Table ADDITIONAL_NOTES
4040 dpurdie 20489
--------------------------------------------------------
20490
 
6999 dpurdie 20491
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("MOD_USER" NOT NULL ENABLE);
20492
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
20493
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("NOTE_TITLE" NOT NULL ENABLE);
20494
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("PV_ID" NOT NULL ENABLE);
20495
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("NOTE_ID" NOT NULL ENABLE);
4040 dpurdie 20496
--------------------------------------------------------
6999 dpurdie 20497
--  Constraints for Table ARCHIVE_DATA
4040 dpurdie 20498
--------------------------------------------------------
20499
 
6999 dpurdie 20500
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" MODIFY ("PV_ID" NOT NULL ENABLE);
20501
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 20502
--------------------------------------------------------
6999 dpurdie 20503
--  Constraints for Table BUILD_ENVIRONMENTS
4040 dpurdie 20504
--------------------------------------------------------
20505
 
6999 dpurdie 20506
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ADD CONSTRAINT "PK_BUILD_ENVIRONMENTS" PRIMARY KEY ("BE_ID")
20507
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20508
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20509
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20510
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20511
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20512
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" MODIFY ("BE_NAME" NOT NULL ENABLE);
20513
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" MODIFY ("BE_ID" NOT NULL ENABLE);
4040 dpurdie 20514
--------------------------------------------------------
6999 dpurdie 20515
--  Constraints for Table VIEWS
4040 dpurdie 20516
--------------------------------------------------------
20517
 
6999 dpurdie 20518
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" ADD CONSTRAINT "PK_VIEWS" PRIMARY KEY ("VIEW_ID")
20519
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20520
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20521
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20522
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20523
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20524
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("PUBLIC_READ" NOT NULL ENABLE);
20525
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("BASE_VIEW" NOT NULL ENABLE);
20526
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("OWNER_ID" NOT NULL ENABLE);
20527
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("VIEW_NAME" NOT NULL ENABLE);
20528
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4040 dpurdie 20529
--------------------------------------------------------
6999 dpurdie 20530
--  Constraints for Table VIEW_DEF
4040 dpurdie 20531
--------------------------------------------------------
20532
 
6999 dpurdie 20533
  ALTER TABLE "RELEASE_MANAGER"."VIEW_DEF" MODIFY ("PKG_ID" NOT NULL ENABLE);
20534
  ALTER TABLE "RELEASE_MANAGER"."VIEW_DEF" MODIFY ("VIEW_ID" NOT NULL ENABLE);