Subversion Repositories DevTools

Rev

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

Rev Author Line No. Line
1374 dpurdie 1
--------------------------------------------------------
5892 dpurdie 2
--  File created - Thursday-July-14-2016   
1374 dpurdie 3
--------------------------------------------------------
4040 dpurdie 4
--------------------------------------------------------
5
--  DDL for Type RELMGR_NUMBER_TAB_T
6
--------------------------------------------------------
1373 dpurdie 7
 
5172 dpurdie 8
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."RELMGR_NUMBER_TAB_T" as TABLE of NUMBER
1373 dpurdie 9
 
4040 dpurdie 10
/
11
--------------------------------------------------------
12
--  DDL for Type RELMGR_VARCHAR2_TAB_T
13
--------------------------------------------------------
14
 
5172 dpurdie 15
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."RELMGR_VARCHAR2_TAB_T" 
4040 dpurdie 16
as TABLE of VARCHAR2(4000)
17
 
18
/
19
--------------------------------------------------------
20
--  DDL for Type TDICTIONARY
21
--------------------------------------------------------
22
 
5892 dpurdie 23
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."TDICTIONARY" AS
24
  TABLE OF VARCHAR2(4000)
4040 dpurdie 25
 
26
/
27
--------------------------------------------------------
28
--  DDL for Sequence MICROSOFTSEQDTPROPERTIES
29
--------------------------------------------------------
30
 
5172 dpurdie 31
   CREATE SEQUENCE  "RELEASE_MANAGER"."MICROSOFTSEQDTPROPERTIES"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 50 NOORDER  NOCYCLE ;
4040 dpurdie 32
--------------------------------------------------------
33
--  DDL for Sequence SEQ_ADDITIONAL_NOTES
34
--------------------------------------------------------
35
 
5892 dpurdie 36
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_ADDITIONAL_NOTES"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 36469 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 37
--------------------------------------------------------
38
--  DDL for Sequence SEQ_BMCON_ID
39
--------------------------------------------------------
40
 
5172 dpurdie 41
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BMCON_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 241 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 42
--------------------------------------------------------
43
--  DDL for Sequence SEQ_BM_ID
44
--------------------------------------------------------
45
 
5172 dpurdie 46
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BM_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 5 NOCACHE  ORDER  NOCYCLE ;
47
--------------------------------------------------------
48
--  DDL for Sequence SEQ_BSA_ID
49
--------------------------------------------------------
50
 
51
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BSA_ID"  MINVALUE 8 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 28 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 52
--------------------------------------------------------
5172 dpurdie 53
--  DDL for Sequence SEQ_BUILD_INSTANCE
54
--------------------------------------------------------
55
 
5892 dpurdie 56
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BUILD_INSTANCE"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 114421 CACHE 20 ORDER  NOCYCLE ;
5172 dpurdie 57
--------------------------------------------------------
4040 dpurdie 58
--  DDL for Sequence SEQ_CR_ID
59
--------------------------------------------------------
60
 
5892 dpurdie 61
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_CR_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 92186 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 62
--------------------------------------------------------
63
--  DDL for Sequence SEQ_DAEMON_INSTRUCTION_ID
64
--------------------------------------------------------
65
 
5892 dpurdie 66
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_DAEMON_INSTRUCTION_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 165068 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 67
--------------------------------------------------------
68
--  DDL for Sequence SEQ_GBE_ID
69
--------------------------------------------------------
70
 
5892 dpurdie 71
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_GBE_ID"  MINVALUE 40 MAXVALUE 9999999999999999999999990 INCREMENT BY 1 START WITH 1241 NOCACHE  ORDER  NOCYCLE ;
4040 dpurdie 72
--------------------------------------------------------
73
--  DDL for Sequence SEQ_GROUP_EMAIL_ID
74
--------------------------------------------------------
75
 
5172 dpurdie 76
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_GROUP_EMAIL_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999 INCREMENT BY 1 START WITH 1166 CACHE 20 NOORDER  NOCYCLE ;
5892 dpurdie 77
  GRANT SELECT ON "RELEASE_MANAGER"."SEQ_GROUP_EMAIL_ID" TO "ARCHIVE_MANAGER";
4040 dpurdie 78
--------------------------------------------------------
79
--  DDL for Sequence SEQ_MSG_ID
80
--------------------------------------------------------
81
 
5172 dpurdie 82
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_MSG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 562 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 83
--------------------------------------------------------
84
--  DDL for Sequence SEQ_PKG_ID
85
--------------------------------------------------------
86
 
5892 dpurdie 87
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PKG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 63747 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 88
--------------------------------------------------------
89
--  DDL for Sequence SEQ_PROJ_ID
90
--------------------------------------------------------
91
 
5384 dpurdie 92
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PROJ_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 861 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 93
--------------------------------------------------------
94
--  DDL for Sequence SEQ_PV_ID
95
--------------------------------------------------------
96
 
5892 dpurdie 97
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PV_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1130245 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 98
--------------------------------------------------------
99
--  DDL for Sequence SEQ_RCON_ID
100
--------------------------------------------------------
101
 
5892 dpurdie 102
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RCON_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999990 INCREMENT BY 1 START WITH 30010 CACHE 20 ORDER  NOCYCLE ;
5172 dpurdie 103
--------------------------------------------------------
104
--  DDL for Sequence SEQ_RELEASE_MOD
105
--------------------------------------------------------
106
 
5892 dpurdie 107
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RELEASE_MOD"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 136416 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 108
--------------------------------------------------------
109
--  DDL for Sequence SEQ_RTAG_ID
110
--------------------------------------------------------
111
 
5892 dpurdie 112
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RTAG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 33885 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 113
--------------------------------------------------------
114
--  DDL for Sequence SEQ_SCHEDULED_ID
115
--------------------------------------------------------
116
 
5892 dpurdie 117
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SCHEDULED_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999990 INCREMENT BY 1 START WITH 28607 CACHE 20 ORDER  NOCYCLE ;
5172 dpurdie 118
--------------------------------------------------------
119
--  DDL for Sequence SEQ_SDKTAG_ID
120
--------------------------------------------------------
121
 
5892 dpurdie 122
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SDKTAG_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 641 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 123
--------------------------------------------------------
5172 dpurdie 124
--  DDL for Sequence SEQ_SDK_ID
125
--------------------------------------------------------
126
 
5892 dpurdie 127
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SDK_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 161 CACHE 20 NOORDER  NOCYCLE ;
5172 dpurdie 128
--------------------------------------------------------
4040 dpurdie 129
--  DDL for Sequence SEQ_SESSION_NUM
130
--------------------------------------------------------
131
 
5892 dpurdie 132
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SESSION_NUM"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1074626 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 133
--------------------------------------------------------
5892 dpurdie 134
--  DDL for Sequence SEQ_TESTRUN_ID
135
--------------------------------------------------------
136
 
137
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_TESTRUN_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 549621 CACHE 20 NOORDER  NOCYCLE ;
138
--------------------------------------------------------
4040 dpurdie 139
--  DDL for Sequence SEQ_UNIT_TESTS
140
--------------------------------------------------------
141
 
5892 dpurdie 142
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_UNIT_TESTS"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 361682 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 143
--------------------------------------------------------
144
--  DDL for Sequence SEQ_USER_ID
145
--------------------------------------------------------
146
 
5172 dpurdie 147
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_USER_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 3961 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 148
--------------------------------------------------------
149
--  DDL for Sequence SEQ_VCS_TYPE
150
--------------------------------------------------------
151
 
5892 dpurdie 152
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VCS_TYPE"  MINVALUE 1 MAXVALUE 255 INCREMENT BY 1 START WITH 43 NOCACHE  ORDER  NOCYCLE ;
4040 dpurdie 153
--------------------------------------------------------
154
--  DDL for Sequence SEQ_VIEW_ID
155
--------------------------------------------------------
156
 
5892 dpurdie 157
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VIEW_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 5901 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 158
--------------------------------------------------------
159
--  DDL for Sequence SEQ_VTREE_ID
160
--------------------------------------------------------
161
 
5892 dpurdie 162
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VTREE_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 30704 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 163
--------------------------------------------------------
164
--  DDL for Table ABT_ACTION_LOG
165
--------------------------------------------------------
166
 
5172 dpurdie 167
  CREATE TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" 
4040 dpurdie 168
   (	"RCON_ID" NUMBER, 
169
	"ACTION_DATETIME" DATE, 
5172 dpurdie 170
	"ACTION" VARCHAR2(4000 BYTE)
171
   ) SEGMENT CREATION IMMEDIATE 
172
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
173
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
174
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
175
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 176
  GRANT SELECT ON "RELEASE_MANAGER"."ABT_ACTION_LOG" TO "DM_READONLY";
177
  GRANT SELECT ON "RELEASE_MANAGER"."ABT_ACTION_LOG" TO "MS_READONLY";
178
  GRANT SELECT ON "RELEASE_MANAGER"."ABT_ACTION_LOG" TO "RM_READONLY";
4040 dpurdie 179
--------------------------------------------------------
180
--  DDL for Table ACTION_LOG
181
--------------------------------------------------------
182
 
5172 dpurdie 183
  CREATE TABLE "RELEASE_MANAGER"."ACTION_LOG" 
4040 dpurdie 184
   (	"USER_ID" NUMBER, 
5172 dpurdie 185
	"ACTION_DATETIME" DATE DEFAULT SYSDATE, 
4040 dpurdie 186
	"PV_ID" NUMBER, 
5172 dpurdie 187
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
188
	"ACTTYPE_ID" NUMBER, 
189
	"ACTION_TIMESTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP
190
   ) SEGMENT CREATION IMMEDIATE 
191
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
192
  STORAGE(INITIAL 308281344 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
193
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
194
  TABLESPACE "RELEASEM_DATA" ;
195
 
196
   COMMENT ON COLUMN "RELEASE_MANAGER"."ACTION_LOG"."ACTION_DATETIME" IS 'To be deprecated. Use timestamp instead';
5892 dpurdie 197
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "DM_READONLY";
198
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "MS_READONLY";
199
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "RM_READONLY";
200
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "RELEASE_MANAGER_READ";
201
  GRANT DELETE, INSERT, SELECT, UPDATE ON "RELEASE_MANAGER"."ACTION_LOG" TO "DEPLOYMENT_MANAGER";
202
  GRANT INSERT ON "RELEASE_MANAGER"."ACTION_LOG" TO "ARCHIVE_MANAGER";
4040 dpurdie 203
--------------------------------------------------------
204
--  DDL for Table ACTION_TYPE
205
--------------------------------------------------------
206
 
5172 dpurdie 207
  CREATE TABLE "RELEASE_MANAGER"."ACTION_TYPE" 
4040 dpurdie 208
   (	"ACTTYPE_ID" NUMBER, 
5172 dpurdie 209
	"NAME" VARCHAR2(255 BYTE), 
210
	"DESCRIPTION" VARCHAR2(4000 BYTE)
211
   ) SEGMENT CREATION IMMEDIATE 
212
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
213
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
214
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
215
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 216
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "DM_READONLY";
217
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "MS_READONLY";
218
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "RM_READONLY";
219
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "RELEASE_MANAGER_READ";
220
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "DEPLOYMENT_MANAGER";
221
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "ARCHIVE_MANAGER";
4040 dpurdie 222
--------------------------------------------------------
223
--  DDL for Table ADDITIONAL_NOTES
224
--------------------------------------------------------
225
 
5172 dpurdie 226
  CREATE TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" 
4040 dpurdie 227
   (	"NOTE_ID" NUMBER, 
228
	"PV_ID" NUMBER, 
5172 dpurdie 229
	"NOTE_TITLE" VARCHAR2(2000 BYTE), 
230
	"NOTE_BODY" VARCHAR2(4000 BYTE), 
4040 dpurdie 231
	"MOD_DATE" DATE, 
232
	"MOD_USER" NUMBER
5172 dpurdie 233
   ) SEGMENT CREATION IMMEDIATE 
234
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
235
  STORAGE(INITIAL 55574528 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
236
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
237
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 238
  GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "DM_READONLY";
239
  GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "MS_READONLY";
240
  GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "RM_READONLY";
241
  GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "RELEASE_MANAGER_READ";
242
  GRANT INSERT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "ARCHIVE_MANAGER";
4040 dpurdie 243
--------------------------------------------------------
244
--  DDL for Table ADVISORY_RIPPLE
245
--------------------------------------------------------
246
 
5172 dpurdie 247
  CREATE TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" 
4040 dpurdie 248
   (	"RTAG_ID" NUMBER, 
249
	"PV_ID" NUMBER
5172 dpurdie 250
   ) SEGMENT CREATION IMMEDIATE 
251
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
252
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
253
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
254
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 255
  GRANT SELECT ON "RELEASE_MANAGER"."ADVISORY_RIPPLE" TO "DM_READONLY";
256
  GRANT SELECT ON "RELEASE_MANAGER"."ADVISORY_RIPPLE" TO "MS_READONLY";
257
  GRANT SELECT ON "RELEASE_MANAGER"."ADVISORY_RIPPLE" TO "RM_READONLY";
258
  GRANT INSERT ON "RELEASE_MANAGER"."ADVISORY_RIPPLE" TO "ARCHIVE_MANAGER";
4040 dpurdie 259
--------------------------------------------------------
260
--  DDL for Table ARCHIVE_ACTION_LOG
261
--------------------------------------------------------
262
 
5172 dpurdie 263
  CREATE TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" 
4040 dpurdie 264
   (	"USER_ID" NUMBER, 
265
	"DATE_TIME_STAMP" DATE, 
266
	"RTAG_ID" NUMBER, 
5172 dpurdie 267
	"DESCRIPTION" VARCHAR2(4000 BYTE)
268
   ) SEGMENT CREATION IMMEDIATE 
269
  PCTFREE 10 PCTUSED 0 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
270
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
271
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
272
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 273
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" TO "DM_READONLY";
274
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" TO "MS_READONLY";
275
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" TO "RM_READONLY";
276
  GRANT INSERT, SELECT ON "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" TO "ARCHIVE_MANAGER";
4040 dpurdie 277
--------------------------------------------------------
278
--  DDL for Table ARCHIVE_DATA
279
--------------------------------------------------------
280
 
5172 dpurdie 281
  CREATE TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" 
4040 dpurdie 282
   (	"RTAG_ID" NUMBER(*,0), 
283
	"PV_ID" NUMBER(*,0)
5172 dpurdie 284
   ) SEGMENT CREATION IMMEDIATE 
285
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
286
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
287
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
288
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 289
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_DATA" TO "DM_READONLY";
290
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_DATA" TO "MS_READONLY";
291
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_DATA" TO "RM_READONLY";
4040 dpurdie 292
--------------------------------------------------------
293
--  DDL for Table AUTOBUILD_FAILURE
294
--------------------------------------------------------
295
 
5172 dpurdie 296
  CREATE TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" 
4040 dpurdie 297
   (	"GROUP_EMAIL_ID" NUMBER, 
298
	"PROJ_ID" NUMBER, 
299
	"VIEW_ID" NUMBER
5172 dpurdie 300
   ) SEGMENT CREATION IMMEDIATE 
301
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
302
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
303
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
304
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 305
  GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "DM_READONLY";
306
  GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "MS_READONLY";
307
  GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "RM_READONLY";
308
  GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "DEPLOYMENT_MANAGER";
309
  GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "CODE_INSPECTION";
4040 dpurdie 310
--------------------------------------------------------
311
--  DDL for Table BUILD_ENVIRONMENTS
312
--------------------------------------------------------
313
 
5172 dpurdie 314
  CREATE TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" 
4040 dpurdie 315
   (	"BE_ID" NUMBER, 
5172 dpurdie 316
	"BE_NAME" VARCHAR2(255 BYTE)
317
   ) SEGMENT CREATION IMMEDIATE 
318
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
319
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
320
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
321
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 322
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DM_READONLY";
323
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "MS_READONLY";
324
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "RM_READONLY";
325
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "RELEASE_MANAGER_READ";
326
  GRANT DELETE, INSERT, SELECT, UPDATE ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DEPLOYMENT_MANAGER";
327
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "ARCHIVE_MANAGER";
328
  GRANT DELETE, INSERT, SELECT, UPDATE ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "CODE_INSPECTION";
4040 dpurdie 329
--------------------------------------------------------
330
--  DDL for Table BUILD_ENV_DOCUMENTS
331
--------------------------------------------------------
332
 
5172 dpurdie 333
  CREATE TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" 
4040 dpurdie 334
   (	"BE_ID" NUMBER, 
5172 dpurdie 335
	"DOC_NUM" VARCHAR2(255 BYTE)
336
   ) SEGMENT CREATION IMMEDIATE 
337
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
338
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
339
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
340
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 341
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "DM_READONLY";
342
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "MS_READONLY";
343
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "RM_READONLY";
344
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "RELEASE_MANAGER_READ";
5172 dpurdie 345
--------------------------------------------------------
346
--  DDL for Table BUILD_INSTANCES
347
--------------------------------------------------------
348
 
349
  CREATE TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" 
350
   (	"BUILD_ID" NUMBER, 
351
	"RTAG_ID" NUMBER, 
352
	"PV_ID" NUMBER, 
353
	"TIMESTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP, 
354
	"REASON" CHAR(1 BYTE), 
355
	"STATE" CHAR(1 BYTE) DEFAULT 'B'
356
   ) SEGMENT CREATION IMMEDIATE 
357
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
358
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
359
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
360
  TABLESPACE "RELEASEM_DATA" ;
361
 
362
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."BUILD_ID" IS 'Unique. Auto generated when row is created.';
363
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."RTAG_ID" IS 'Link the build to a Release';
364
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."PV_ID" IS 'Link the build to a Package';
365
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."TIMESTAMP" IS 'When the instance is created';
366
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."REASON" IS 'Reason for the build. Ripple(''R''), Test(''T''), NewVersion(''N''), Restore(''P'')';
367
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."STATE" IS 'Result of the build. ''B'', ''Buiding'', ''C'', ''Complete'', ''E'', ''Error'', ''S'', ''SysErr''';
4040 dpurdie 368
--------------------------------------------------------
369
--  DDL for Table BUILD_MACHINES
370
--------------------------------------------------------
371
 
5172 dpurdie 372
  CREATE TABLE "RELEASE_MANAGER"."BUILD_MACHINES" 
4040 dpurdie 373
   (	"BM_ID" NUMBER, 
5172 dpurdie 374
	"BM_NAME" VARCHAR2(20 BYTE)
375
   ) SEGMENT CREATION IMMEDIATE 
376
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
377
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
378
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
379
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 380
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "DM_READONLY";
381
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "MS_READONLY";
382
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "RM_READONLY";
383
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "DEPLOYMENT_MANAGER";
384
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "CODE_INSPECTION";
4040 dpurdie 385
--------------------------------------------------------
386
--  DDL for Table BUILD_MACHINE_CONFIG
387
--------------------------------------------------------
388
 
5172 dpurdie 389
  CREATE TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" 
4040 dpurdie 390
   (	"BMCON_ID" NUMBER, 
5172 dpurdie 391
	"DISPLAY_NAME" VARCHAR2(50 BYTE), 
392
	"MACHINE_HOSTNAME" VARCHAR2(50 BYTE), 
393
	"DESCRIPTION" VARCHAR2(512 BYTE), 
394
	"GBE_ID" NUMBER, 
395
	"ACTIVE" CHAR(1 BYTE) DEFAULT 'Y'
396
   ) SEGMENT CREATION IMMEDIATE 
397
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
398
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
399
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
400
  TABLESPACE "RELEASEM_DATA" ;
401
 
402
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG"."ACTIVE" IS 'Allows user to select deamon, otherwise its not shown unless already in use.';
5892 dpurdie 403
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "DM_READONLY";
404
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "MS_READONLY";
405
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "RM_READONLY";
406
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 407
--------------------------------------------------------
408
--  DDL for Table BUILD_ORDER
409
--------------------------------------------------------
410
 
5172 dpurdie 411
  CREATE TABLE "RELEASE_MANAGER"."BUILD_ORDER" 
4040 dpurdie 412
   (	"RTAG_ID" NUMBER, 
413
	"STEP_NUM" NUMBER, 
414
	"PV_ID" NUMBER, 
5172 dpurdie 415
	"UNRESOLVED" CHAR(1 BYTE)
416
   ) SEGMENT CREATION IMMEDIATE 
417
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
418
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
419
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
420
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 421
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "DM_READONLY";
422
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "MS_READONLY";
423
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "RM_READONLY";
424
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "RELEASE_MANAGER_READ";
425
  GRANT INSERT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "ARCHIVE_MANAGER";
426
--------------------------------------------------------
427
--  DDL for Table BUILD_PLAN
428
--------------------------------------------------------
429
 
430
  CREATE TABLE "RELEASE_MANAGER"."BUILD_PLAN" 
431
   (	"RTAG_ID" NUMBER, 
432
	"BUILD_ORDER" NUMBER, 
433
	"PV_ID" NUMBER
434
   ) SEGMENT CREATION IMMEDIATE 
435
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
436
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
437
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
438
  TABLESPACE "RELEASEM_DATA" ;
439
 
440
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_PLAN"."RTAG_ID" IS 'Identify target Release';
441
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_PLAN"."BUILD_ORDER" IS 'Sequence for build';
442
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_PLAN"."PV_ID" IS 'Package to build';
4040 dpurdie 443
--------------------------------------------------------
444
--  DDL for Table BUILD_SERVICE_CONFIG
445
--------------------------------------------------------
446
 
5172 dpurdie 447
  CREATE TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" 
448
   (	"SERVICE" VARCHAR2(50 BYTE), 
449
	"CONFIG" VARCHAR2(2000 BYTE)
450
   ) SEGMENT CREATION IMMEDIATE 
451
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
452
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
453
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
454
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 455
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "DM_READONLY";
456
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "MS_READONLY";
457
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "RM_READONLY";
458
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "DEPLOYMENT_MANAGER";
459
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "CODE_INSPECTION";
4040 dpurdie 460
--------------------------------------------------------
461
--  DDL for Table BUILD_STANDARDS
462
--------------------------------------------------------
463
 
5172 dpurdie 464
  CREATE TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" 
4040 dpurdie 465
   (	"BS_ID" NUMBER, 
5172 dpurdie 466
	"BS_NAME" VARCHAR2(20 BYTE)
467
   ) SEGMENT CREATION IMMEDIATE 
468
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
469
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
470
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
471
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 472
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "DM_READONLY";
473
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "MS_READONLY";
474
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "RM_READONLY";
475
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 476
--------------------------------------------------------
477
--  DDL for Table BUILD_STANDARDS_ADDENDUM
478
--------------------------------------------------------
479
 
5172 dpurdie 480
  CREATE TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" 
4040 dpurdie 481
   (	"BSA_ID" NUMBER, 
5172 dpurdie 482
	"BSA_NAME" VARCHAR2(4000 BYTE), 
4040 dpurdie 483
	"BS_ID" NUMBER
5172 dpurdie 484
   ) SEGMENT CREATION IMMEDIATE 
485
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
486
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
487
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
488
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 489
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "DM_READONLY";
490
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "MS_READONLY";
491
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "RM_READONLY";
492
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "DEPLOYMENT_MANAGER";
493
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "CODE_INSPECTION";
4040 dpurdie 494
--------------------------------------------------------
495
--  DDL for Table CODE_REVIEWS
496
--------------------------------------------------------
497
 
5172 dpurdie 498
  CREATE TABLE "RELEASE_MANAGER"."CODE_REVIEWS" 
4040 dpurdie 499
   (	"PV_ID" NUMBER, 
500
	"DATE_OF_REVIEW" DATE, 
501
	"TIME_SPENT" FLOAT(126), 
5172 dpurdie 502
	"REVIEW_REASON" VARCHAR2(4000 BYTE), 
503
	"RTEAM_DOMAIN_EXPERT" VARCHAR2(4000 BYTE), 
504
	"RTEAM_LANGUAGE_EXPERT" VARCHAR2(4000 BYTE), 
505
	"RTEAM_PEER_DEVELOPER" VARCHAR2(4000 BYTE), 
506
	"RTEAM_AUTHOR" VARCHAR2(4000 BYTE), 
507
	"FILES_REVIEWED" VARCHAR2(4000 BYTE), 
4040 dpurdie 508
	"REVIEW_RESULTS" NUMBER, 
5172 dpurdie 509
	"ISSUES_RAISED" VARCHAR2(4000 BYTE), 
510
	"REVIEW_COMMENTS" VARCHAR2(4000 BYTE), 
511
	"FNC_S_MEETS_FUNCTIONALITY" CHAR(1 BYTE), 
512
	"FNC_C_MEETS_FUNCTIONALITY" VARCHAR2(4000 BYTE), 
513
	"RBS_S_BOUND_COND_HANDLED" CHAR(1 BYTE), 
514
	"RBS_C_BOUND_COND_HANDLED" VARCHAR2(4000 BYTE), 
515
	"RBS_S_CLASS_INTERF_PRECOND" CHAR(1 BYTE), 
516
	"RBS_C_CLASS_INTERF_PRECOND" VARCHAR2(4000 BYTE), 
517
	"RBS_S_NO_UNITIALISED_DATE" CHAR(1 BYTE), 
518
	"RBS_C_NO_UNITIALISED_DATE" VARCHAR2(4000 BYTE), 
519
	"RBS_S_EXCEP_HANDING" CHAR(1 BYTE), 
520
	"RBS_C_EXCEP_HANDING" VARCHAR2(4000 BYTE), 
521
	"RBS_S_RESOURCE_MNG" CHAR(1 BYTE), 
522
	"RBS_C_RESOURCE_MNG" VARCHAR2(4000 BYTE), 
523
	"RBS_S_TRANS_COMPLET" CHAR(1 BYTE), 
524
	"RBS_C_TRANS_COMPLET" VARCHAR2(4000 BYTE), 
525
	"RBS_S_THREADSAFETY" CHAR(1 BYTE), 
526
	"RBS_C_THREADSAFETY" VARCHAR2(4000 BYTE), 
527
	"RBS_S_RET_VALS" CHAR(1 BYTE), 
528
	"RBS_C_RET_VALS" VARCHAR2(4000 BYTE), 
529
	"RBS_S_CORR_ERR_HANDLING" CHAR(1 BYTE), 
530
	"RBS_C_CORR_ERR_HANDLING" VARCHAR2(4000 BYTE), 
531
	"RBS_S_SQL_STD" CHAR(1 BYTE), 
532
	"RBS_C_SQL_STD" VARCHAR2(4000 BYTE), 
533
	"MNT_S_EXT_REF" CHAR(1 BYTE), 
534
	"MNT_C_EXT_REF" VARCHAR2(4000 BYTE), 
535
	"MNT_S_CLASS_SIZE" CHAR(1 BYTE), 
536
	"MNT_C_CLASS_SIZE" VARCHAR2(4000 BYTE), 
537
	"MNT_S_METHOD_SIZE" CHAR(1 BYTE), 
538
	"MNT_C_METHOD_SIZE" VARCHAR2(4000 BYTE), 
539
	"MNT_S_APPROP_COMM" CHAR(1 BYTE), 
540
	"MNT_C_APPROP_COMM" VARCHAR2(4000 BYTE), 
541
	"MNT_S_IDENT_NAME_STD" CHAR(1 BYTE), 
542
	"MNT_C_IDENT_NAME_STD" VARCHAR2(4000 BYTE), 
543
	"MNT_S_SWITCH_HAVE_DEFAULTS" CHAR(1 BYTE), 
544
	"MNT_C_SWITCH_HAVE_DEFAULTS" VARCHAR2(4000 BYTE), 
545
	"MNT_S_NO_LIT_NUM" CHAR(1 BYTE), 
546
	"MNT_C_NO_LIT_NUM" VARCHAR2(4000 BYTE), 
547
	"MNT_S_NO_DEAD_CODE" CHAR(1 BYTE), 
548
	"MNT_C_NO_DEAD_CODE" VARCHAR2(4000 BYTE), 
549
	"DEI_S_STD_DES_PATT" CHAR(1 BYTE), 
550
	"DEI_C_STD_DES_PATT" VARCHAR2(4000 BYTE), 
551
	"DEI_S_APPROP_ALGOR" CHAR(1 BYTE), 
552
	"DEI_C_APPROP_ALGOR" VARCHAR2(4000 BYTE), 
553
	"DEI_S_APPROP_OBJ" CHAR(1 BYTE), 
554
	"DEI_C_APPROP_OBJ" VARCHAR2(4000 BYTE), 
555
	"DEI_S_APPROP_ERR_MSG" CHAR(1 BYTE), 
556
	"DEI_C_APPROP_ERR_MSG" VARCHAR2(4000 BYTE), 
557
	"DEI_S_STD_FRAMEW_COMP" CHAR(1 BYTE), 
558
	"DEI_C_STD_FRAMEW_COMP" VARCHAR2(4000 BYTE), 
559
	"DEI_S_APPROP_LOGGING" CHAR(1 BYTE), 
560
	"DEI_C_APPROP_LOGGING" VARCHAR2(4000 BYTE)
561
   ) SEGMENT CREATION IMMEDIATE 
562
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
563
  STORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
564
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
565
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 566
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "DM_READONLY";
567
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "MS_READONLY";
568
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "RM_READONLY";
569
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "RELEASE_MANAGER_READ";
570
  GRANT INSERT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "ARCHIVE_MANAGER";
4040 dpurdie 571
--------------------------------------------------------
572
--  DDL for Table CODE_REVIEW_URL
573
--------------------------------------------------------
574
 
5172 dpurdie 575
  CREATE TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" 
4040 dpurdie 576
   (	"CR_ID" NUMBER, 
577
	"PV_ID" NUMBER, 
578
	"PROJ_ID" NUMBER, 
5172 dpurdie 579
	"URL" VARCHAR2(4000 BYTE), 
580
	"REASON" VARCHAR2(4000 BYTE), 
4040 dpurdie 581
	"DATE_OF_REVIEW" DATE, 
582
	"LAST_MODIFIED" DATE
5172 dpurdie 583
   ) SEGMENT CREATION IMMEDIATE 
584
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
585
  STORAGE(INITIAL 983040 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
586
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
587
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 588
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEW_URL" TO "DM_READONLY";
589
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEW_URL" TO "MS_READONLY";
590
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEW_URL" TO "RM_READONLY";
4040 dpurdie 591
--------------------------------------------------------
4585 dpurdie 592
--  DDL for Table CQ_HISTORY
593
--------------------------------------------------------
594
 
5172 dpurdie 595
  CREATE TABLE "RELEASE_MANAGER"."CQ_HISTORY" 
4585 dpurdie 596
   (	"DBID" NUMBER(10,0), 
597
	"ENTITY_DBID" NUMBER(10,0), 
598
	"ENTITYDEF_ID" NUMBER(10,0), 
599
	"ENTITYDEF_NAME" VARCHAR2(30 CHAR), 
600
	"ACTION_TIMESTAMP" DATE, 
601
	"USER_NAME" VARCHAR2(30 CHAR), 
602
	"ACTION_NAME" VARCHAR2(30 CHAR), 
603
	"OLD_STATE" VARCHAR2(30 CHAR), 
604
	"NEW_STATE" VARCHAR2(30 CHAR), 
605
	"EXPIRED_TIMESTAMP" DATE
5172 dpurdie 606
   ) SEGMENT CREATION IMMEDIATE 
607
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
608
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
609
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
610
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 611
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "DM_READONLY";
612
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "MS_READONLY";
613
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "RM_READONLY";
614
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "DEPLOYMENT_MANAGER";
615
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "ACCESS_MANAGER";
4585 dpurdie 616
--------------------------------------------------------
4040 dpurdie 617
--  DDL for Table CQ_ISSUES
618
--------------------------------------------------------
619
 
5172 dpurdie 620
  CREATE TABLE "RELEASE_MANAGER"."CQ_ISSUES" 
4040 dpurdie 621
   (	"PV_ID" NUMBER, 
622
	"ISS_DB" NUMBER, 
623
	"ISS_ID" NUMBER, 
624
	"ISS_STATE" NUMBER, 
625
	"MOD_DATE" DATE, 
5172 dpurdie 626
	"NOTES" VARCHAR2(255 BYTE)
627
   ) SEGMENT CREATION IMMEDIATE 
628
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
629
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
630
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
631
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 632
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "DM_READONLY";
633
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "MS_READONLY";
634
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "RM_READONLY";
635
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "RELEASE_MANAGER_READ";
636
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "DEPLOYMENT_MANAGER";
637
  GRANT INSERT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "ARCHIVE_MANAGER";
638
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "CODE_INSPECTION";
4585 dpurdie 639
--------------------------------------------------------
640
--  DDL for Table CQ_SOFTWARE_ISSUE
641
--------------------------------------------------------
642
 
5172 dpurdie 643
  CREATE TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" 
4585 dpurdie 644
   (	"RATL_MASTERSHIP" NUMBER(10,0), 
645
	"DBID" NUMBER(10,0), 
646
	"IS_ACTIVE" NUMBER(10,0), 
647
	"ID" VARCHAR2(13 CHAR), 
648
	"STATE" NUMBER(10,0), 
649
	"VERSION" NUMBER(10,0), 
650
	"LOCK_VERSION" NUMBER(10,0), 
651
	"LOCKED_BY" NUMBER(10,0), 
652
	"IS_DUPLICATE" NUMBER(10,0), 
653
	"UNDUPLICATE_STATE" VARCHAR2(50 CHAR), 
654
	"HEADLINE" VARCHAR2(150 CHAR), 
655
	"DESCRIPTION" CLOB, 
656
	"PRIORITY" VARCHAR2(50 CHAR), 
657
	"SUBMITTER" NUMBER(10,0), 
658
	"SUBMIT_DATE" DATE, 
659
	"OWNER" NUMBER(10,0), 
660
	"APPROVER" NUMBER(10,0), 
661
	"NOTE_ENTRY" CLOB, 
662
	"NOTES_LOG" CLOB, 
663
	"RESOLUTION_DATE" DATE, 
664
	"ISSUE_TYPE" VARCHAR2(50 CHAR), 
665
	"PACKAGE_REF" VARCHAR2(50 CHAR), 
666
	"SOLUTION_APPROVED_DATE" DATE, 
667
	"CLOSE_DATE" DATE, 
668
	"BUILD_NUMBER" VARCHAR2(50 CHAR), 
669
	"NEW_NUM" VARCHAR2(50 CHAR), 
670
	"FOR_INFORMATION" CLOB, 
671
	"PROP_SOL_DATE" DATE, 
672
	"ARTIFACTS_TO_BE_UPDATED_1" CLOB, 
673
	"ISSUE_ID" NUMBER(10,0), 
674
	"SOLUTION_DATE" DATE, 
675
	"KPI_SOLUTION_DATE" DATE, 
676
	"TITLE" VARCHAR2(80 CHAR), 
677
	"PROJECT" VARCHAR2(50 CHAR), 
678
	"ORIGINATING_AREA" VARCHAR2(50 CHAR), 
679
	"ESTIMATED_TIME_INHOURS" NUMBER(10,0), 
680
	"RELEASE_PART1" NUMBER(10,0), 
681
	"RELEASE_PART2" NUMBER(10,0), 
682
	"RELEASE_PART3" NUMBER(10,0), 
683
	"SOLUTION_RELEASE_PART1" NUMBER(10,0), 
684
	"SOLUTION_RELEASE_PART2" NUMBER(10,0), 
685
	"SOLUTION_RELEASE_PART3" NUMBER(10,0), 
686
	"ORIGINAL_IMPLEMENT_DATE" DATE, 
687
	"ISSUE_LABEL" VARCHAR2(50 CHAR), 
688
	"PRODUCT" VARCHAR2(50 CHAR), 
689
	"ORIGIN" VARCHAR2(50 CHAR), 
690
	"CLONE_NOTE" CLOB, 
691
	"SOLUTION_LABEL" VARCHAR2(50 CHAR), 
692
	"REQUIRED_BY" DATE, 
693
	"ITERATION_AFFECTED" VARCHAR2(50 CHAR), 
694
	"MERGE_OLD_ID" VARCHAR2(150 CHAR), 
695
	"COMMENTS" CLOB, 
696
	"CHANGE_CONTROL" VARCHAR2(50 CHAR), 
697
	"MERGE_COMMENTS" CLOB, 
698
	"MERGE_CHANGE_CONTROL" VARCHAR2(50 CHAR), 
699
	"AWAITING_INFO_DESC" CLOB, 
700
	"REQUEST_CLOSE_DESC" CLOB, 
701
	"ROOT_CAUSE" VARCHAR2(50 CHAR), 
702
	"FLAGA" VARCHAR2(50 CHAR), 
703
	"FLAGB" VARCHAR2(50 CHAR), 
704
	"FLAGC" VARCHAR2(50 CHAR), 
705
	"SCHEDULED_RELEASE" VARCHAR2(60 CHAR), 
706
	"SEVERITY" VARCHAR2(50 CHAR), 
707
	"CUSTOM_FIELD_01" CLOB, 
708
	"CUSTOM_FIELD_02" CLOB, 
709
	"CUSTOM_FIELD_03" CLOB, 
710
	"CUSTOMER_REFERENCE" VARCHAR2(254 CHAR), 
711
	"TEAMLEADER" NUMBER(10,0), 
712
	"WIP" CLOB, 
713
	"RELEASEINFO" CLOB, 
714
	"SBOM" VARCHAR2(254 CHAR), 
715
	"NEW_EXTERNAL_NOTE" CLOB, 
716
	"EXTERNAL_NOTE_LOG" CLOB, 
717
	"CUSTOMER_REFERENCE_2" VARCHAR2(50 CHAR), 
718
	"CUSTOMER_REFERENCE_3" VARCHAR2(50 CHAR), 
719
	"CUSTOMER_REFERENCE_4" VARCHAR2(50 CHAR), 
720
	"CUSTOMER_REFERENCE_5" VARCHAR2(50 CHAR), 
721
	"TEST_CASES" CLOB, 
722
	"INTEGRATION_NOTES" CLOB, 
723
	"UPDATED_DESIGN_NOTES" VARCHAR2(50 CHAR), 
724
	"RELATED_DATABASE_PATCHES" VARCHAR2(50 CHAR), 
725
	"AFFECTED_PACKAGES" VARCHAR2(50 CHAR), 
726
	"CODEREVIEW_REFERENCE" CLOB, 
727
	"RISK" VARCHAR2(50 CHAR), 
728
	"DEPENDANT_DEVIS" VARCHAR2(50 CHAR), 
729
	"CUSTOM_FIELD_04" CLOB, 
730
	"CUSTOM_FIELD_05" CLOB, 
731
	"ITERATION_FOUND" VARCHAR2(50 CHAR)
5172 dpurdie 732
   ) SEGMENT CREATION IMMEDIATE 
733
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
734
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
735
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
736
  TABLESPACE "RELEASEM_DATA" 
737
 LOB ("DESCRIPTION") STORE AS BASICFILE (
738
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
739
  NOCACHE LOGGING 
740
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
741
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
742
 LOB ("NOTE_ENTRY") STORE AS BASICFILE (
743
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
744
  NOCACHE LOGGING 
745
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
746
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
747
 LOB ("NOTES_LOG") STORE AS BASICFILE (
748
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
749
  NOCACHE LOGGING 
750
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
751
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
752
 LOB ("FOR_INFORMATION") STORE AS BASICFILE (
753
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
754
  NOCACHE LOGGING 
755
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
756
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
757
 LOB ("ARTIFACTS_TO_BE_UPDATED_1") STORE AS BASICFILE (
758
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
759
  NOCACHE LOGGING 
760
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
761
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
762
 LOB ("CLONE_NOTE") STORE AS BASICFILE (
763
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
764
  NOCACHE LOGGING 
765
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
766
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
767
 LOB ("COMMENTS") STORE AS BASICFILE (
768
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
769
  NOCACHE LOGGING 
770
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
771
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
772
 LOB ("MERGE_COMMENTS") STORE AS BASICFILE (
773
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
774
  NOCACHE LOGGING 
775
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
776
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
777
 LOB ("AWAITING_INFO_DESC") STORE AS BASICFILE (
778
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
779
  NOCACHE LOGGING 
780
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
781
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
782
 LOB ("REQUEST_CLOSE_DESC") STORE AS BASICFILE (
783
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
784
  NOCACHE LOGGING 
785
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
786
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
787
 LOB ("CUSTOM_FIELD_01") STORE AS BASICFILE (
788
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
789
  NOCACHE LOGGING 
790
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
791
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
792
 LOB ("CUSTOM_FIELD_02") STORE AS BASICFILE (
793
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
794
  NOCACHE LOGGING 
795
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
796
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
797
 LOB ("CUSTOM_FIELD_03") STORE AS BASICFILE (
798
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
799
  NOCACHE LOGGING 
800
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
801
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
802
 LOB ("WIP") STORE AS BASICFILE (
803
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
804
  NOCACHE LOGGING 
805
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
806
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
807
 LOB ("RELEASEINFO") STORE AS BASICFILE (
808
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
809
  NOCACHE LOGGING 
810
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
811
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
812
 LOB ("NEW_EXTERNAL_NOTE") STORE AS BASICFILE (
813
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
814
  NOCACHE LOGGING 
815
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
816
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
817
 LOB ("EXTERNAL_NOTE_LOG") STORE AS BASICFILE (
818
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
819
  NOCACHE LOGGING 
820
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
821
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
822
 LOB ("TEST_CASES") STORE AS BASICFILE (
823
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
824
  NOCACHE LOGGING 
825
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
826
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
827
 LOB ("INTEGRATION_NOTES") STORE AS BASICFILE (
828
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
829
  NOCACHE LOGGING 
830
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
831
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
832
 LOB ("CODEREVIEW_REFERENCE") STORE AS BASICFILE (
833
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
834
  NOCACHE LOGGING 
835
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
836
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
837
 LOB ("CUSTOM_FIELD_04") STORE AS BASICFILE (
838
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
839
  NOCACHE LOGGING 
840
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
841
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
842
 LOB ("CUSTOM_FIELD_05") STORE AS BASICFILE (
843
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
844
  NOCACHE LOGGING 
845
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
846
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
5892 dpurdie 847
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "DM_READONLY";
848
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "MS_READONLY";
849
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "RM_READONLY";
850
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "DEPLOYMENT_MANAGER";
851
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "ACCESS_MANAGER";
4585 dpurdie 852
--------------------------------------------------------
853
--  DDL for Table CQ_STATEDEF
854
--------------------------------------------------------
855
 
5172 dpurdie 856
  CREATE TABLE "RELEASE_MANAGER"."CQ_STATEDEF" 
4585 dpurdie 857
   (	"ID" NUMBER(10,0), 
858
	"PACKAGE_OWNERSHIP" NUMBER(10,0), 
859
	"NAME" VARCHAR2(255 CHAR), 
860
	"ENTITYDEF_ID" NUMBER(10,0), 
861
	"ORDINAL" NUMBER(10,0)
5172 dpurdie 862
   ) SEGMENT CREATION IMMEDIATE 
863
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
864
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
865
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
866
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 867
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "DM_READONLY";
868
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "MS_READONLY";
869
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "RM_READONLY";
870
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "DEPLOYMENT_MANAGER";
871
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "ACCESS_MANAGER";
4585 dpurdie 872
--------------------------------------------------------
873
--  DDL for Table CQ_USERS
874
--------------------------------------------------------
875
 
5172 dpurdie 876
  CREATE TABLE "RELEASE_MANAGER"."CQ_USERS" 
877
   (	"DBID" VARCHAR2(8 BYTE), 
878
	"LOGIN_NAME" VARCHAR2(17 BYTE), 
879
	"FULLNAME" VARCHAR2(30 BYTE)
880
   ) SEGMENT CREATION IMMEDIATE 
881
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
882
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
883
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
884
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 885
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "DM_READONLY";
886
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "MS_READONLY";
887
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "RM_READONLY";
888
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "DEPLOYMENT_MANAGER";
889
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "ACCESS_MANAGER";
4040 dpurdie 890
--------------------------------------------------------
891
--  DDL for Table DAEMON_ACTION_LOG
892
--------------------------------------------------------
893
 
5172 dpurdie 894
  CREATE TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" 
4040 dpurdie 895
   (	"USER_ID" NUMBER, 
896
	"ACTION_DATETIME" DATE, 
897
	"RCON_ID" NUMBER, 
5172 dpurdie 898
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 899
	"ACTTYPE_ID" NUMBER
5172 dpurdie 900
   ) SEGMENT CREATION IMMEDIATE 
901
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
902
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
903
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
904
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 905
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_ACTION_LOG" TO "DM_READONLY";
906
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_ACTION_LOG" TO "MS_READONLY";
907
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_ACTION_LOG" TO "RM_READONLY";
4040 dpurdie 908
--------------------------------------------------------
909
--  DDL for Table DAEMON_INSTRUCTIONS
910
--------------------------------------------------------
911
 
5172 dpurdie 912
  CREATE TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" 
4040 dpurdie 913
   (	"DAEMON_INSTRUCTIONS_ID" NUMBER, 
914
	"OP_CODE" NUMBER(*,0), 
915
	"RTAG_ID" NUMBER, 
916
	"PV_ID" NUMBER, 
917
	"SCHEDULED_DATETIME" DATE, 
918
	"REPEAT_SECS" NUMBER(*,0), 
919
	"ADDED_DATETIME" DATE, 
920
	"USER_ID" NUMBER, 
5172 dpurdie 921
	"IN_PROGRESS" CHAR(1 BYTE)
922
   ) SEGMENT CREATION IMMEDIATE 
923
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
924
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
925
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
926
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 927
 
5172 dpurdie 928
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."OP_CODE" IS 'The instruction op-code';
929
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."SCHEDULED_DATETIME" IS 'The datetime after which the instruction can be carried out.';
930
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."REPEAT_SECS" IS 'The number of seconds to add to scheduled_datetime when instruction is repeating';
931
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."ADDED_DATETIME" IS 'The datetime the instruction was added to the table - informational only';
932
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."USER_ID" IS 'The user who added the instruction to the table  - informational only';
5892 dpurdie 933
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" TO "DM_READONLY";
934
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" TO "MS_READONLY";
935
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" TO "RM_READONLY";
4040 dpurdie 936
--------------------------------------------------------
937
--  DDL for Table DASH_BOARD
938
--------------------------------------------------------
939
 
5172 dpurdie 940
  CREATE TABLE "RELEASE_MANAGER"."DASH_BOARD" 
4040 dpurdie 941
   (	"PROJ_ID" NUMBER, 
942
	"RTAG_ID" NUMBER, 
943
	"LAST_BUILD_TIME" DATE, 
944
	"AUTOMATED_PACKAGES" NUMBER, 
945
	"TOTAL_PACKAGES" NUMBER
5172 dpurdie 946
   ) SEGMENT CREATION IMMEDIATE 
947
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
948
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
949
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
950
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 951
  GRANT SELECT ON "RELEASE_MANAGER"."DASH_BOARD" TO "DM_READONLY";
952
  GRANT SELECT ON "RELEASE_MANAGER"."DASH_BOARD" TO "MS_READONLY";
953
  GRANT SELECT ON "RELEASE_MANAGER"."DASH_BOARD" TO "RM_READONLY";
4040 dpurdie 954
--------------------------------------------------------
955
--  DDL for Table DEPRECATED_PACKAGES
956
--------------------------------------------------------
957
 
5172 dpurdie 958
  CREATE TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" 
4040 dpurdie 959
   (	"RTAG_ID" NUMBER, 
960
	"PKG_ID" NUMBER, 
5172 dpurdie 961
	"COMMENTS" VARCHAR2(4000 BYTE), 
962
	"V_EXT" VARCHAR2(50 BYTE)
963
   ) SEGMENT CREATION IMMEDIATE 
964
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
965
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
966
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
967
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 968
  GRANT SELECT ON "RELEASE_MANAGER"."DEPRECATED_PACKAGES" TO "DM_READONLY";
969
  GRANT SELECT ON "RELEASE_MANAGER"."DEPRECATED_PACKAGES" TO "MS_READONLY";
970
  GRANT SELECT ON "RELEASE_MANAGER"."DEPRECATED_PACKAGES" TO "RM_READONLY";
971
  GRANT INSERT ON "RELEASE_MANAGER"."DEPRECATED_PACKAGES" TO "ARCHIVE_MANAGER";
4040 dpurdie 972
--------------------------------------------------------
973
--  DDL for Table DO_NOT_RIPPLE
974
--------------------------------------------------------
975
 
5172 dpurdie 976
  CREATE TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" 
4040 dpurdie 977
   (	"RTAG_ID" NUMBER, 
978
	"PV_ID" NUMBER, 
979
	"ROOT_PV_ID" NUMBER, 
5172 dpurdie 980
	"ROOT_CAUSE" VARCHAR2(50 BYTE), 
981
	"ROOT_FILE" VARCHAR2(100 BYTE)
982
   ) SEGMENT CREATION IMMEDIATE 
983
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
984
  STORAGE(INITIAL 655360 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
985
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
986
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 987
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "DM_READONLY";
988
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "MS_READONLY";
989
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "RM_READONLY";
990
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "RELEASE_MANAGER_READ";
991
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "DEPLOYMENT_MANAGER";
992
  GRANT INSERT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "ARCHIVE_MANAGER";
993
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "CODE_INSPECTION";
4040 dpurdie 994
--------------------------------------------------------
995
--  DDL for Table GBE_MACHTYPE
996
--------------------------------------------------------
997
 
5172 dpurdie 998
  CREATE TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" 
4040 dpurdie 999
   (	"GBE_ID" NUMBER, 
5172 dpurdie 1000
	"GBE_VALUE" VARCHAR2(20 BYTE), 
4040 dpurdie 1001
	"BM_ID" NUMBER
5172 dpurdie 1002
   ) SEGMENT CREATION IMMEDIATE 
1003
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1004
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1005
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1006
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1007
  GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "DM_READONLY";
1008
  GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "MS_READONLY";
1009
  GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "RM_READONLY";
1010
  GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "DEPLOYMENT_MANAGER";
1011
  GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "CODE_INSPECTION";
4040 dpurdie 1012
--------------------------------------------------------
1013
--  DDL for Table IGNORE_WARNINGS
1014
--------------------------------------------------------
1015
 
5172 dpurdie 1016
  CREATE TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" 
4040 dpurdie 1017
   (	"RTAG_ID" NUMBER, 
1018
	"PV_ID" NUMBER, 
1019
	"DPV_ID" NUMBER, 
5172 dpurdie 1020
	"IS_PATCH_IGNORE" CHAR(1 BYTE)
1021
   ) SEGMENT CREATION IMMEDIATE 
1022
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1023
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1024
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1025
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1026
  GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "DM_READONLY";
1027
  GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "MS_READONLY";
1028
  GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "RM_READONLY";
1029
  GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "RELEASE_MANAGER_READ";
1030
  GRANT INSERT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "ARCHIVE_MANAGER";
4040 dpurdie 1031
--------------------------------------------------------
1032
--  DDL for Table JIRA_ISSUES
1033
--------------------------------------------------------
1034
 
5172 dpurdie 1035
  CREATE TABLE "RELEASE_MANAGER"."JIRA_ISSUES" 
4040 dpurdie 1036
   (	"PV_ID" NUMBER, 
5172 dpurdie 1037
	"ISS_KEY" VARCHAR2(4000 BYTE), 
4040 dpurdie 1038
	"DATE_TIME_STAMP" DATE
5172 dpurdie 1039
   ) SEGMENT CREATION IMMEDIATE 
1040
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1041
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1042
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1043
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1044
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "DM_READONLY";
1045
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "MS_READONLY";
1046
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "RM_READONLY";
1047
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "RELEASE_MANAGER_READ";
1048
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "DEPLOYMENT_MANAGER";
1049
  GRANT INSERT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "ARCHIVE_MANAGER";
4040 dpurdie 1050
--------------------------------------------------------
1051
--  DDL for Table LICENCES
1052
--------------------------------------------------------
1053
 
5172 dpurdie 1054
  CREATE TABLE "RELEASE_MANAGER"."LICENCES" 
4040 dpurdie 1055
   (	"LICENCE" NUMBER, 
5172 dpurdie 1056
	"NAME" VARCHAR2(50 BYTE)
1057
   ) SEGMENT CREATION IMMEDIATE 
1058
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1059
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1060
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1061
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1062
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCES" TO "DM_READONLY";
1063
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCES" TO "MS_READONLY";
1064
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCES" TO "RM_READONLY";
4040 dpurdie 1065
--------------------------------------------------------
1066
--  DDL for Table LICENCING
1067
--------------------------------------------------------
1068
 
5172 dpurdie 1069
  CREATE TABLE "RELEASE_MANAGER"."LICENCING" 
4040 dpurdie 1070
   (	"PV_ID" NUMBER, 
1071
	"LICENCE" NUMBER
5172 dpurdie 1072
   ) SEGMENT CREATION IMMEDIATE 
1073
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1074
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1075
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1076
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1077
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCING" TO "DM_READONLY";
1078
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCING" TO "MS_READONLY";
1079
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCING" TO "RM_READONLY";
4040 dpurdie 1080
--------------------------------------------------------
5384 dpurdie 1081
--  DDL for Table LXR_STATE
1082
--------------------------------------------------------
1083
 
1084
  CREATE TABLE "RELEASE_MANAGER"."LXR_STATE" 
1085
   (	"RTAG_ID" NUMBER, 
1086
	"LXRSERVER" CHAR(1 BYTE) DEFAULT 'N'
1087
   ) SEGMENT CREATION IMMEDIATE 
1088
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1089
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1090
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1091
  TABLESPACE "RELEASEM_DATA" ;
1092
 
1093
   COMMENT ON COLUMN "RELEASE_MANAGER"."LXR_STATE"."RTAG_ID" IS 'Link to Release_Tags';
1094
   COMMENT ON COLUMN "RELEASE_MANAGER"."LXR_STATE"."LXRSERVER" IS 'Written by server - I:Indexed, C:Closing, N:Not Known. May be InProgress.';
1095
   COMMENT ON TABLE "RELEASE_MANAGER"."LXR_STATE"  IS 'Contains data updated by the LXR server.
1096
This table is writable by a user known to the LXR Server';
5892 dpurdie 1097
  GRANT ALTER, DELETE, INSERT, SELECT, UPDATE ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";
5384 dpurdie 1098
--------------------------------------------------------
4040 dpurdie 1099
--  DDL for Table MEMBERS_GROUP
1100
--------------------------------------------------------
1101
 
5172 dpurdie 1102
  CREATE TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" 
4040 dpurdie 1103
   (	"GROUP_EMAIL_ID" NUMBER, 
1104
	"USER_ID" NUMBER
5172 dpurdie 1105
   ) SEGMENT CREATION IMMEDIATE 
1106
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1107
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1108
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1109
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1110
  GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "DM_READONLY";
1111
  GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "MS_READONLY";
1112
  GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "RM_READONLY";
1113
  GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "DEPLOYMENT_MANAGER";
1114
  GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "CODE_INSPECTION";
4040 dpurdie 1115
--------------------------------------------------------
1116
--  DDL for Table MESSAGE_BOARD
1117
--------------------------------------------------------
1118
 
5172 dpurdie 1119
  CREATE TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" 
4040 dpurdie 1120
   (	"MSG_ID" NUMBER, 
5172 dpurdie 1121
	"MSG_DETAILS" VARCHAR2(2000 BYTE), 
4040 dpurdie 1122
	"SUBMITION_DATE" DATE, 
1123
	"EXPIRY_DATE" DATE, 
1124
	"DUE_DATE" DATE
5172 dpurdie 1125
   ) SEGMENT CREATION IMMEDIATE 
1126
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1127
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1128
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1129
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1130
  GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "DM_READONLY";
1131
  GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "MS_READONLY";
1132
  GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "RM_READONLY";
1133
  GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1134
--------------------------------------------------------
1135
--  DDL for Table MICROSOFTDTPROPERTIES
1136
--------------------------------------------------------
1137
 
5172 dpurdie 1138
  CREATE TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" 
4040 dpurdie 1139
   (	"ID" NUMBER, 
1140
	"OBJECTID" NUMBER, 
5172 dpurdie 1141
	"PROPERTY" VARCHAR2(64 BYTE), 
1142
	"VALUE" VARCHAR2(255 BYTE), 
4040 dpurdie 1143
	"LVALUE" LONG RAW, 
1144
	"VERSION" NUMBER DEFAULT (0)
5172 dpurdie 1145
   ) SEGMENT CREATION IMMEDIATE 
1146
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1147
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1148
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1149
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1150
  GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "DM_READONLY";
1151
  GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "MS_READONLY";
1152
  GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "RM_READONLY";
1153
  GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1154
--------------------------------------------------------
1155
--  DDL for Table NOTE_MANAGER
1156
--------------------------------------------------------
1157
 
5172 dpurdie 1158
  CREATE TABLE "RELEASE_MANAGER"."NOTE_MANAGER" 
1159
   (	"NID" VARCHAR2(30 BYTE), 
1160
	"LAST_USER" VARCHAR2(20 BYTE), 
4040 dpurdie 1161
	"LAST_DATE" DATE, 
5172 dpurdie 1162
	"DESCRIPTION" VARCHAR2(4000 BYTE)
1163
   ) SEGMENT CREATION IMMEDIATE 
1164
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1165
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1166
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1167
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1168
  GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "DM_READONLY";
1169
  GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "MS_READONLY";
1170
  GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "RM_READONLY";
1171
  GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1172
--------------------------------------------------------
1173
--  DDL for Table NOTIFICATION_HISTORY
1174
--------------------------------------------------------
1175
 
5172 dpurdie 1176
  CREATE TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" 
4040 dpurdie 1177
   (	"RTAG_ID" NUMBER, 
1178
	"PV_ID" NUMBER, 
1179
	"USER_ID" NUMBER, 
1180
	"DATE_TIME_STAMP" DATE
5172 dpurdie 1181
   ) SEGMENT CREATION IMMEDIATE 
1182
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1183
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1184
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1185
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1186
  GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "DM_READONLY";
1187
  GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "MS_READONLY";
1188
  GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "RM_READONLY";
1189
  GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "RELEASE_MANAGER_READ";
1190
  GRANT INSERT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "ARCHIVE_MANAGER";
4040 dpurdie 1191
--------------------------------------------------------
1192
--  DDL for Table PACKAGES
1193
--------------------------------------------------------
1194
 
5172 dpurdie 1195
  CREATE TABLE "RELEASE_MANAGER"."PACKAGES" 
4040 dpurdie 1196
   (	"PKG_ID" NUMBER, 
5172 dpurdie 1197
	"PKG_NAME" VARCHAR2(255 BYTE), 
1198
	"SUNOS_ELECTRONIC_NAME" VARCHAR2(255 BYTE), 
1199
	"WIN_ELECTRONIC_NAME" VARCHAR2(255 BYTE), 
1200
	"DEFAULT_PEGGED" CHAR(1 BYTE), 
1201
	"DEFAULT_ADVISORY_RIPPLE" CHAR(1 BYTE)
1202
   ) SEGMENT CREATION IMMEDIATE 
1203
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1204
  STORAGE(INITIAL 196608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1205
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1206
  TABLESPACE "RELEASEM_DATA" ;
1207
 
1208
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGES"."DEFAULT_PEGGED" IS 'Default pegged state for packages that are added to a release.';
1209
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGES"."DEFAULT_ADVISORY_RIPPLE" IS 'Default advisiory ripple state for packages that are added to a release.';
5892 dpurdie 1210
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "DM_READONLY";
1211
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "MS_READONLY";
1212
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "RM_READONLY";
1213
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "RELEASE_MANAGER_READ";
1214
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER_READ";
1215
  GRANT DELETE, INSERT, SELECT, UPDATE ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER";
1216
  GRANT DELETE, INSERT, SELECT, UPDATE ON "RELEASE_MANAGER"."PACKAGES" TO "CODE_INSPECTION";
1217
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "CODE_INSPECTION_READ";
4040 dpurdie 1218
--------------------------------------------------------
1219
--  DDL for Table PACKAGE_BUILD_ENV
1220
--------------------------------------------------------
1221
 
5172 dpurdie 1222
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" 
4040 dpurdie 1223
   (	"PV_ID" NUMBER, 
1224
	"BE_ID" NUMBER, 
1225
	"BUILD_TYPE" NUMBER
5172 dpurdie 1226
   ) SEGMENT CREATION IMMEDIATE 
1227
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1228
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1229
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1230
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1231
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DM_READONLY";
1232
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "MS_READONLY";
1233
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "RM_READONLY";
1234
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "RELEASE_MANAGER_READ";
1235
  GRANT DELETE, INSERT, SELECT, UPDATE ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DEPLOYMENT_MANAGER";
1236
  GRANT INSERT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "ARCHIVE_MANAGER";
1237
  GRANT DELETE, INSERT, SELECT, UPDATE ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "CODE_INSPECTION";
4040 dpurdie 1238
--------------------------------------------------------
1239
--  DDL for Table PACKAGE_BUILD_INFO
1240
--------------------------------------------------------
1241
 
5172 dpurdie 1242
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" 
4040 dpurdie 1243
   (	"PV_ID" NUMBER, 
1244
	"BM_ID" NUMBER, 
1245
	"BSA_ID" NUMBER
5172 dpurdie 1246
   ) SEGMENT CREATION IMMEDIATE 
1247
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1248
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1249
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1250
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1251
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "DM_READONLY";
1252
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "MS_READONLY";
1253
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "RM_READONLY";
1254
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "DEPLOYMENT_MANAGER";
1255
  GRANT INSERT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "ARCHIVE_MANAGER";
1256
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "CODE_INSPECTION";
4040 dpurdie 1257
--------------------------------------------------------
1258
--  DDL for Table PACKAGE_DEPENDENCIES
1259
--------------------------------------------------------
1260
 
5172 dpurdie 1261
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" 
4040 dpurdie 1262
   (	"PV_ID" NUMBER, 
1263
	"DPV_ID" NUMBER, 
1264
	"PKG_ID" NUMBER, 
1265
	"DPKG_ID" NUMBER, 
5172 dpurdie 1266
	"BUILD_TYPE" CHAR(1 BYTE), 
4040 dpurdie 1267
	"DISPLAY_ORDER" NUMBER
5172 dpurdie 1268
   ) SEGMENT CREATION IMMEDIATE 
1269
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1270
  STORAGE(INITIAL 100663296 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1271
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1272
  TABLESPACE "RELEASEM_DATA" ;
5384 dpurdie 1273
 
1274
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES"."PV_ID" IS 'Package Version Identifier';
1275
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES"."DPV_ID" IS 'Depends on this package version';
1276
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES"."BUILD_TYPE" IS 'B:BuildPkgArchive, L:LinkPkgArchive';
5892 dpurdie 1277
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "DM_READONLY";
1278
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "MS_READONLY";
1279
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "RM_READONLY";
1280
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "RELEASE_MANAGER_READ";
1281
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "DEPLOYMENT_MANAGER";
1282
  GRANT INSERT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "ARCHIVE_MANAGER";
1283
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "CODE_INSPECTION";
4040 dpurdie 1284
--------------------------------------------------------
1285
--  DDL for Table PACKAGE_DOCUMENTS
1286
--------------------------------------------------------
1287
 
5172 dpurdie 1288
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" 
4040 dpurdie 1289
   (	"PV_ID" NUMBER, 
1290
	"TEST_ID" NUMBER, 
1291
	"DOC_ID" NUMBER, 
5172 dpurdie 1292
	"DOC_NUM" VARCHAR2(50 BYTE), 
1293
	"IS_LATEST" CHAR(1 BYTE)
1294
   ) SEGMENT CREATION IMMEDIATE 
1295
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1296
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1297
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1298
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1299
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "DM_READONLY";
1300
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "MS_READONLY";
1301
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "RM_READONLY";
1302
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "RELEASE_MANAGER_READ";
1303
  GRANT INSERT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "ARCHIVE_MANAGER";
4040 dpurdie 1304
--------------------------------------------------------
1305
--  DDL for Table PACKAGE_INTEREST
1306
--------------------------------------------------------
1307
 
5172 dpurdie 1308
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" 
4040 dpurdie 1309
   (	"PKG_ID" NUMBER, 
1310
	"PROJ_ID" NUMBER, 
1311
	"USER_ID" NUMBER
5172 dpurdie 1312
   ) SEGMENT CREATION IMMEDIATE 
1313
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1314
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1315
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1316
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1317
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_INTEREST" TO "DM_READONLY";
1318
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_INTEREST" TO "MS_READONLY";
1319
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_INTEREST" TO "RM_READONLY";
4040 dpurdie 1320
--------------------------------------------------------
1321
--  DDL for Table PACKAGE_METRICS
1322
--------------------------------------------------------
1323
 
5172 dpurdie 1324
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" 
4040 dpurdie 1325
   (	"PV_ID" NUMBER, 
1326
	"BRANCHES" NUMBER, 
5172 dpurdie 1327
	"BRANCH_LIST" VARCHAR2(4000 BYTE), 
4040 dpurdie 1328
	"CODE_FILES" NUMBER, 
1329
	"IGNORED_FILES" NUMBER, 
1330
	"DIRECTORIES" NUMBER, 
1331
	"DIRECTORY_DEPTH" NUMBER, 
1332
	"TOTAL_FILES" NUMBER, 
1333
	"MAKEFILES" NUMBER, 
1334
	"BLANK_LINES" NUMBER, 
1335
	"CODE_LINES" NUMBER, 
1336
	"COMMENT_LINES" NUMBER, 
1337
	"CREATED_STAMP" DATE
5172 dpurdie 1338
   ) SEGMENT CREATION IMMEDIATE 
1339
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1340
  STORAGE(INITIAL 12582912 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1341
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1342
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1343
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_METRICS" TO "DM_READONLY";
1344
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_METRICS" TO "MS_READONLY";
1345
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_METRICS" TO "RM_READONLY";
4040 dpurdie 1346
--------------------------------------------------------
1347
--  DDL for Table PACKAGE_PATCHES
1348
--------------------------------------------------------
1349
 
5172 dpurdie 1350
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" 
4040 dpurdie 1351
   (	"PV_ID" NUMBER, 
1352
	"PATCH_ID" NUMBER, 
1353
	"INSTALL_ORDER" NUMBER, 
1354
	"PATCH_OBSOLETED_BY" NUMBER
5172 dpurdie 1355
   ) SEGMENT CREATION IMMEDIATE 
1356
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1357
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1358
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1359
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1360
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "DM_READONLY";
1361
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "MS_READONLY";
1362
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "RM_READONLY";
1363
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "RELEASE_MANAGER_READ";
1364
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "DEPLOYMENT_MANAGER";
1365
  GRANT INSERT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "ARCHIVE_MANAGER";
1366
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "CODE_INSPECTION";
4040 dpurdie 1367
--------------------------------------------------------
1368
--  DDL for Table PACKAGE_PROCESSES
1369
--------------------------------------------------------
1370
 
5172 dpurdie 1371
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" 
4040 dpurdie 1372
   (	"PV_ID" NUMBER, 
1373
	"PROC_ID" NUMBER
5172 dpurdie 1374
   ) SEGMENT CREATION IMMEDIATE 
1375
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1376
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1377
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1378
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1379
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DM_READONLY";
1380
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "MS_READONLY";
1381
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "RM_READONLY";
1382
  GRANT DELETE, INSERT, SELECT, UPDATE ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DEPLOYMENT_MANAGER";
1383
  GRANT INSERT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "ARCHIVE_MANAGER";
1384
  GRANT DELETE, INSERT, SELECT, UPDATE ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "CODE_INSPECTION";
4040 dpurdie 1385
--------------------------------------------------------
1386
--  DDL for Table PACKAGE_VERSIONS
1387
--------------------------------------------------------
1388
 
5172 dpurdie 1389
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" 
4040 dpurdie 1390
   (	"PV_ID" NUMBER, 
1391
	"PKG_ID" NUMBER, 
5172 dpurdie 1392
	"PKG_VERSION" VARCHAR2(50 BYTE), 
1393
	"DLOCKED" CHAR(1 BYTE), 
4040 dpurdie 1394
	"RELEASED_AT" NUMBER, 
1395
	"MODIFIED_STAMP" DATE, 
1396
	"MODIFIER_ID" NUMBER, 
1397
	"CREATED_STAMP" DATE, 
1398
	"CREATOR_ID" NUMBER, 
5172 dpurdie 1399
	"COMMENTS" VARCHAR2(4000 BYTE), 
1400
	"V_MM" VARCHAR2(50 BYTE), 
1401
	"V_NMM" VARCHAR2(50 BYTE), 
1402
	"V_EXT" VARCHAR2(50 BYTE), 
1403
	"PKG_LABEL" VARCHAR2(60 BYTE), 
1404
	"SRC_PATH" VARCHAR2(2000 BYTE), 
1405
	"PV_DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1406
	"OWNER_ID" NUMBER, 
5172 dpurdie 1407
	"PV_OVERVIEW" VARCHAR2(4000 BYTE), 
1408
	"IS_PATCH" CHAR(1 BYTE), 
4040 dpurdie 1409
	"LAST_PV_ID" NUMBER, 
5172 dpurdie 1410
	"RELEASE_NOTES_INFO" VARCHAR2(1000 BYTE), 
1411
	"IS_DEPLOYABLE" CHAR(1 BYTE), 
1412
	"IS_BUILD_ENV_REQUIRED" CHAR(1 BYTE), 
1413
	"IS_OBSOLETE" CHAR(1 BYTE), 
1414
	"OBSOLETE_COMMENTS" VARCHAR2(4000 BYTE), 
1415
	"BUILD_TYPE" CHAR(1 BYTE), 
1416
	"CHANGE_TYPE" CHAR(1 BYTE), 
1417
	"LINK" VARCHAR2(4000 BYTE), 
1418
	"PATCH_ELECTRONIC_NAME" VARCHAR2(4000 BYTE), 
4040 dpurdie 1419
	"BS_ID" NUMBER, 
5172 dpurdie 1420
	"IS_AUTOBUILDABLE" CHAR(1 BYTE), 
1421
	"SBOM_PRIORITY" CHAR(1 BYTE), 
4040 dpurdie 1422
	"RIPPLE_FIELD" CHAR(1 CHAR), 
1423
	"MAXIMUM_BUILD_TIME" NUMBER, 
5892 dpurdie 1424
	"BUILD_TIME" NUMBER, 
4040 dpurdie 1425
	"MAJOR_LIMIT" NUMBER(10,0), 
1426
	"MINOR_LIMIT" NUMBER(10,0), 
1427
	"PATCH_LIMIT" NUMBER(10,0), 
1428
	"BUILD_NUMBER_LIMIT" NUMBER(10,0), 
5384 dpurdie 1429
	"VCS_TYPE_ID" NUMBER, 
1430
	"PKG_IDEXT" VARCHAR2(70 BYTE)
5172 dpurdie 1431
   ) SEGMENT CREATION IMMEDIATE 
1432
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1433
  STORAGE(INITIAL 134217728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1434
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1435
  TABLESPACE "RELEASEM_DATA" ;
1436
 
1437
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."RELEASED_AT" IS 'No longer used';
5892 dpurdie 1438
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."IS_DEPLOYABLE" IS 'null:No, NonNull:Yes Y:Yes';
1439
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."IS_AUTOBUILDABLE" IS 'Y: Indicates that the package has been built on a build machine';
1440
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."BUILD_TIME" IS 'Duration of last build';
1441
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DM_READONLY";
1442
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "MS_READONLY";
1443
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "RM_READONLY";
1444
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "RELEASE_MANAGER_READ";
1445
  GRANT DELETE, INSERT, SELECT, UPDATE ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DEPLOYMENT_MANAGER";
1446
  GRANT INSERT, SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "ARCHIVE_MANAGER";
1447
  GRANT DELETE, INSERT, SELECT, UPDATE ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "CODE_INSPECTION";
4040 dpurdie 1448
--------------------------------------------------------
1449
--  DDL for Table PEGGED_VERSIONS
1450
--------------------------------------------------------
1451
 
5172 dpurdie 1452
  CREATE TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" 
4040 dpurdie 1453
   (	"RTAG_ID" NUMBER, 
1454
	"PV_ID" NUMBER
5172 dpurdie 1455
   ) SEGMENT CREATION IMMEDIATE 
1456
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1457
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1458
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1459
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1460
  GRANT SELECT ON "RELEASE_MANAGER"."PEGGED_VERSIONS" TO "DM_READONLY";
1461
  GRANT SELECT ON "RELEASE_MANAGER"."PEGGED_VERSIONS" TO "MS_READONLY";
1462
  GRANT SELECT ON "RELEASE_MANAGER"."PEGGED_VERSIONS" TO "RM_READONLY";
4040 dpurdie 1463
--------------------------------------------------------
1464
--  DDL for Table PLANNED
1465
--------------------------------------------------------
1466
 
5172 dpurdie 1467
  CREATE TABLE "RELEASE_MANAGER"."PLANNED" 
4040 dpurdie 1468
   (	"RTAG_ID" NUMBER, 
1469
	"PV_ID" NUMBER, 
1470
	"VIEW_ID" NUMBER, 
5172 dpurdie 1471
	"OPERATION" CHAR(1 BYTE)
1472
   ) SEGMENT CREATION IMMEDIATE 
1473
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1474
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1475
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1476
  TABLESPACE "RELEASEM_DATA" ;
1477
 
1478
   COMMENT ON COLUMN "RELEASE_MANAGER"."PLANNED"."OPERATION" IS 'A: Add existing version.
1479
 
1480
S:Subtract existing Version. 
1481
 
1482
R:Add New Version';
1483
   COMMENT ON TABLE "RELEASE_MANAGER"."PLANNED"  IS 'This table contains WORK IN PROGRESS packages';
5892 dpurdie 1484
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "DM_READONLY";
1485
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "MS_READONLY";
1486
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "RM_READONLY";
1487
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "RELEASE_MANAGER_READ";
1488
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "DEPLOYMENT_MANAGER";
1489
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "CODE_INSPECTION";
4040 dpurdie 1490
--------------------------------------------------------
1491
--  DDL for Table PLANNED_VERSIONS
1492
--------------------------------------------------------
1493
 
5172 dpurdie 1494
  CREATE TABLE "RELEASE_MANAGER"."PLANNED_VERSIONS" 
4040 dpurdie 1495
   (	"PKG_ID" NUMBER, 
5172 dpurdie 1496
	"PKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 1497
	"PLANNED_TIME" DATE
5172 dpurdie 1498
   ) SEGMENT CREATION IMMEDIATE 
1499
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1500
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1501
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1502
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1503
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED_VERSIONS" TO "DM_READONLY";
1504
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED_VERSIONS" TO "MS_READONLY";
1505
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED_VERSIONS" TO "RM_READONLY";
4040 dpurdie 1506
--------------------------------------------------------
1507
--  DDL for Table PLATFORMS
1508
--------------------------------------------------------
1509
 
5172 dpurdie 1510
  CREATE TABLE "RELEASE_MANAGER"."PLATFORMS" 
4040 dpurdie 1511
   (	"CODE" NUMBER, 
5172 dpurdie 1512
	"NAME" VARCHAR2(255 BYTE)
1513
   ) SEGMENT CREATION IMMEDIATE 
1514
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1515
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1516
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1517
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1518
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "DM_READONLY";
1519
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "MS_READONLY";
1520
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "RM_READONLY";
1521
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "RELEASE_MANAGER_READ";
1522
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "DEPLOYMENT_MANAGER";
1523
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "CODE_INSPECTION";
4040 dpurdie 1524
--------------------------------------------------------
1525
--  DDL for Table PROCESSES
1526
--------------------------------------------------------
1527
 
5172 dpurdie 1528
  CREATE TABLE "RELEASE_MANAGER"."PROCESSES" 
4040 dpurdie 1529
   (	"PROC_ID" NUMBER, 
5172 dpurdie 1530
	"PROC_NAME" VARCHAR2(255 BYTE), 
1531
	"PROC_DESCRIPTION" VARCHAR2(255 BYTE), 
1532
	"RUN_AS" VARCHAR2(255 BYTE), 
1533
	"PKG_OWNER" VARCHAR2(4000 BYTE), 
1534
	"IS_INTERFACE" CHAR(1 BYTE)
1535
   ) SEGMENT CREATION IMMEDIATE 
1536
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1537
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1538
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1539
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1540
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "DM_READONLY";
1541
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "MS_READONLY";
1542
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "RM_READONLY";
1543
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "RELEASE_MANAGER_READ";
1544
  GRANT DELETE, INSERT, SELECT, UPDATE ON "RELEASE_MANAGER"."PROCESSES" TO "DEPLOYMENT_MANAGER";
1545
  GRANT INSERT, SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "ARCHIVE_MANAGER";
1546
  GRANT DELETE, INSERT, SELECT, UPDATE ON "RELEASE_MANAGER"."PROCESSES" TO "CODE_INSPECTION";
4040 dpurdie 1547
--------------------------------------------------------
1548
--  DDL for Table PRODUCT_COMPONENTS
1549
--------------------------------------------------------
1550
 
5172 dpurdie 1551
  CREATE TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" 
4040 dpurdie 1552
   (	"PV_ID" NUMBER, 
1553
	"OS_ID" NUMBER, 
5172 dpurdie 1554
	"FILE_PATH" VARCHAR2(4000 BYTE), 
1555
	"FILE_NAME" VARCHAR2(4000 BYTE), 
1556
	"DESTINATION_PATH" VARCHAR2(4000 BYTE), 
4040 dpurdie 1557
	"BYTE_SIZE" NUMBER, 
5172 dpurdie 1558
	"CRC_CKSUM" VARCHAR2(2000 BYTE)
1559
   ) SEGMENT CREATION IMMEDIATE 
1560
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1561
  STORAGE(INITIAL 31457280 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1562
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1563
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1564
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "DM_READONLY";
1565
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "MS_READONLY";
1566
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "RM_READONLY";
1567
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "RELEASE_MANAGER_READ";
1568
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "DEPLOYMENT_MANAGER";
1569
  GRANT INSERT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "ARCHIVE_MANAGER";
1570
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "CODE_INSPECTION";
4040 dpurdie 1571
--------------------------------------------------------
1572
--  DDL for Table PRODUCT_STATES
1573
--------------------------------------------------------
1574
 
5172 dpurdie 1575
  CREATE TABLE "RELEASE_MANAGER"."PRODUCT_STATES" 
4040 dpurdie 1576
   (	"STATE_ID" NUMBER, 
5172 dpurdie 1577
	"STATE" VARCHAR2(4000 BYTE)
1578
   ) SEGMENT CREATION IMMEDIATE 
1579
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1580
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1581
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1582
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1583
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_STATES" TO "DM_READONLY";
1584
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_STATES" TO "MS_READONLY";
1585
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_STATES" TO "RM_READONLY";
4040 dpurdie 1586
--------------------------------------------------------
1587
--  DDL for Table PROJECTS
1588
--------------------------------------------------------
1589
 
5172 dpurdie 1590
  CREATE TABLE "RELEASE_MANAGER"."PROJECTS" 
4040 dpurdie 1591
   (	"PROJ_ID" NUMBER, 
5172 dpurdie 1592
	"PROJ_NAME" VARCHAR2(50 BYTE), 
1593
	"BASE_URL" VARCHAR2(4000 BYTE), 
1594
	"JIRA_KEY" VARCHAR2(16 BYTE)
1595
   ) SEGMENT CREATION IMMEDIATE 
1596
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1597
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1598
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1599
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1600
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "DM_READONLY";
1601
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "MS_READONLY";
1602
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "RM_READONLY";
1603
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "RELEASE_MANAGER_READ";
1604
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER_READ";
1605
  GRANT DELETE, INSERT, SELECT, UPDATE ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER";
1606
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "ACCESS_MANAGER";
1607
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "ARCHIVE_MANAGER";
1608
  GRANT DELETE, INSERT, SELECT, UPDATE ON "RELEASE_MANAGER"."PROJECTS" TO "CODE_INSPECTION";
1609
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "CODE_INSPECTION_READ";
4040 dpurdie 1610
--------------------------------------------------------
1611
--  DDL for Table PROJECT_ACTION_LOG
1612
--------------------------------------------------------
1613
 
5172 dpurdie 1614
  CREATE TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" 
4040 dpurdie 1615
   (	"USER_ID" NUMBER, 
1616
	"ACTION_DATETIME" DATE, 
1617
	"PROJ_ID" NUMBER, 
5172 dpurdie 1618
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1619
	"ACTTYPE_ID" NUMBER, 
1620
	"RTAG_ID" NUMBER
5172 dpurdie 1621
   ) SEGMENT CREATION IMMEDIATE 
1622
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1623
  STORAGE(INITIAL 851968 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1624
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1625
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1626
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "DM_READONLY";
1627
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "MS_READONLY";
1628
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "RM_READONLY";
1629
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "RELEASE_MANAGER_READ";
1630
  GRANT INSERT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "ARCHIVE_MANAGER";
4040 dpurdie 1631
--------------------------------------------------------
1632
--  DDL for Table PROJECT_EXTENTIONS
1633
--------------------------------------------------------
1634
 
5172 dpurdie 1635
  CREATE TABLE "RELEASE_MANAGER"."PROJECT_EXTENTIONS" 
4040 dpurdie 1636
   (	"PROJ_ID" NUMBER, 
5172 dpurdie 1637
	"EXT_NAME" VARCHAR2(10 BYTE), 
1638
	"UCOMMENT" VARCHAR2(120 BYTE), 
1639
	"IS_VISIBLE" CHAR(1 BYTE) DEFAULT 'Y', 
1640
	"IS_COTS" CHAR(1 BYTE) DEFAULT 'N'
1641
   ) SEGMENT CREATION IMMEDIATE 
1642
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1643
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1644
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1645
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1646
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "DM_READONLY";
1647
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "MS_READONLY";
1648
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "RM_READONLY";
1649
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "RELEASE_MANAGER_READ";
1650
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "DEPLOYMENT_MANAGER";
1651
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "CODE_INSPECTION";
4040 dpurdie 1652
--------------------------------------------------------
1653
--  DDL for Table RELEASE_COMPONENTS
1654
--------------------------------------------------------
1655
 
5172 dpurdie 1656
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" 
4040 dpurdie 1657
   (	"PV_ID" NUMBER, 
5172 dpurdie 1658
	"FILE_NAME" VARCHAR2(255 BYTE), 
1659
	"FILE_PATH" VARCHAR2(2000 BYTE), 
4040 dpurdie 1660
	"BYTE_SIZE" NUMBER, 
5172 dpurdie 1661
	"CRC_CKSUM" VARCHAR2(50 BYTE), 
1662
	"CRC_MODCRC" VARCHAR2(50 BYTE)
1663
   ) SEGMENT CREATION IMMEDIATE 
1664
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1665
  STORAGE(INITIAL 2828009472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1666
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1667
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1668
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "DM_READONLY";
1669
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "MS_READONLY";
1670
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "RM_READONLY";
1671
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "RELEASE_MANAGER_READ";
1672
  GRANT INSERT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "ARCHIVE_MANAGER";
4040 dpurdie 1673
--------------------------------------------------------
1674
--  DDL for Table RELEASE_CONFIG
1675
--------------------------------------------------------
1676
 
5172 dpurdie 1677
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" 
4040 dpurdie 1678
   (	"RCON_ID" NUMBER, 
1679
	"RTAG_ID" NUMBER, 
1680
	"GBE_ID" NUMBER, 
5172 dpurdie 1681
	"DAEMON_HOSTNAME" VARCHAR2(50 BYTE), 
4040 dpurdie 1682
	"DAEMON_MODE" CHAR(1 CHAR), 
5172 dpurdie 1683
	"GBE_BUILDFILTER" VARCHAR2(255 BYTE), 
4308 dpurdie 1684
	"BMCON_ID" NUMBER
5172 dpurdie 1685
   ) SEGMENT CREATION IMMEDIATE 
1686
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1687
  STORAGE(INITIAL 196608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1688
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1689
  TABLESPACE "RELEASEM_DATA" ;
4308 dpurdie 1690
 
5172 dpurdie 1691
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."GBE_ID" IS 'Do not use. Data should come from build_machine_config';
1692
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."DAEMON_HOSTNAME" IS 'Do not use. Data should come from build_machine_config';
1693
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."BMCON_ID" IS 'Link to the build_machine_config table';
5892 dpurdie 1694
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "DM_READONLY";
1695
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "MS_READONLY";
1696
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "RM_READONLY";
1697
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "DEPLOYMENT_MANAGER";
1698
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "CODE_INSPECTION";
4040 dpurdie 1699
--------------------------------------------------------
1700
--  DDL for Table RELEASE_CONTENT
1701
--------------------------------------------------------
1702
 
5172 dpurdie 1703
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" 
4040 dpurdie 1704
   (	"RTAG_ID" NUMBER, 
1705
	"PV_ID" NUMBER, 
1706
	"BASE_VIEW_ID" NUMBER, 
1707
	"INSERT_STAMP" DATE, 
1708
	"INSERTOR_ID" NUMBER, 
1709
	"PKG_STATE" NUMBER, 
1710
	"PKG_ID" NUMBER, 
1711
	"DEPRECATED_STATE" NUMBER, 
5172 dpurdie 1712
	"PRODUCT_STATE" NUMBER, 
1713
	"SDKTAG_ID" NUMBER
1714
   ) SEGMENT CREATION IMMEDIATE 
1715
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1716
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1717
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1718
  TABLESPACE "RELEASEM_DATA" ;
1719
 
5384 dpurdie 1720
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."PKG_ID" IS 'NotUsed any more. Was:Package that has been deprecated';
5172 dpurdie 1721
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."DEPRECATED_STATE" IS '6: Deprecated Package, 7: Deprecated Dependent';
1722
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."SDKTAG_ID" IS 'Pkg imported via SDK';
5892 dpurdie 1723
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "DM_READONLY";
1724
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "MS_READONLY";
1725
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "RM_READONLY";
1726
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "RELEASE_MANAGER_READ";
1727
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "DEPLOYMENT_MANAGER";
1728
  GRANT INSERT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "ARCHIVE_MANAGER";
1729
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "CODE_INSPECTION";
4040 dpurdie 1730
--------------------------------------------------------
1731
--  DDL for Table RELEASE_LINKS
1732
--------------------------------------------------------
1733
 
5172 dpurdie 1734
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_LINKS" 
4040 dpurdie 1735
   (	"RTAG_ID" NUMBER, 
1736
	"REF_RTAG_ID" NUMBER
5172 dpurdie 1737
   ) SEGMENT CREATION IMMEDIATE 
1738
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1739
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1740
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1741
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1742
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "DM_READONLY";
1743
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "MS_READONLY";
1744
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "RM_READONLY";
1745
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1746
--------------------------------------------------------
1747
--  DDL for Table RELEASE_METRICS
1748
--------------------------------------------------------
1749
 
5172 dpurdie 1750
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_METRICS" 
4040 dpurdie 1751
   (	"RTAG_ID" NUMBER, 
1752
	"TOTAL_PACKAGES" NUMBER, 
1753
	"AUTOBUILT" NUMBER, 
1754
	"LINES_OF_CODE" NUMBER, 
1755
	"UNIT_TESTED" NUMBER, 
1756
	"AUTOTESTED" NUMBER, 
1757
	"BRANCHES" NUMBER, 
1758
	"LAST_BUILD_TIME" DATE
5172 dpurdie 1759
   ) SEGMENT CREATION IMMEDIATE 
1760
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1761
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1762
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1763
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1764
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_METRICS" TO "DM_READONLY";
1765
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_METRICS" TO "MS_READONLY";
1766
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_METRICS" TO "RM_READONLY";
5172 dpurdie 1767
--------------------------------------------------------
1768
--  DDL for Table RELEASE_MODIFIED
1769
--------------------------------------------------------
1770
 
1771
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" 
1772
   (	"RTAG_ID" NUMBER, 
1773
	"TIMESTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP, 
1774
	"SEQNUM" NUMBER
1775
   ) SEGMENT CREATION IMMEDIATE 
1776
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1777
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1778
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1779
  TABLESPACE "RELEASEM_DATA" ;
1780
 
1781
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."RTAG_ID" IS 'Link to Release';
1782
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."TIMESTAMP" IS 'Time of the modification';
1783
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."SEQNUM" IS 'Unique number indicating change';
1784
   COMMENT ON TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED"  IS 'This table conatins a single entry for each RELEASE_TAG.
1785
It is used by the build system to help detect changes to the content of a Release.
1786
A stored proceedure simplifies the use of this table: PK_RELEASE.SET_RELEASE_MODIFIED
1787
 
1788
This should be called whenever the package_versions in the release have changed in such
1789
a manner that the build daemons should examine the release. This includes:
1790
 - Packages added and removed
1791
 - Packages build status changed (re-included in the release )
1792
 - Packages made Pending Build';
4040 dpurdie 1793
--------------------------------------------------------
1794
--  DDL for Table RELEASE_TAGS
1795
--------------------------------------------------------
1796
 
5172 dpurdie 1797
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_TAGS" 
4040 dpurdie 1798
   (	"RTAG_ID" NUMBER, 
1799
	"VTREE_ID" NUMBER, 
5172 dpurdie 1800
	"RTAG_NAME" VARCHAR2(50 BYTE), 
1801
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1802
	"CREATED_STAMP" DATE, 
1803
	"CREATOR_ID" NUMBER, 
1804
	"OFFICIAL_STAMP" DATE, 
1805
	"RELEASOR_ID" NUMBER, 
5172 dpurdie 1806
	"OFFICIAL" CHAR(1 BYTE), 
1807
	"REBUILD_ENV" CHAR(1 BYTE), 
4040 dpurdie 1808
	"REBUILD_STAMP" NUMBER, 
5172 dpurdie 1809
	"RTAG_VERSION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1810
	"RTAG_LIFE_CYCLE" NUMBER, 
1811
	"PARENT_RTAG_ID" NUMBER, 
1812
	"PROJ_ID" NUMBER, 
1813
	"DISPLAY_ORDER" NUMBER, 
5172 dpurdie 1814
	"OWNER_EMAIL" VARCHAR2(1000 BYTE), 
4040 dpurdie 1815
	"ASSOC_MASS_REF" NUMBER, 
5172 dpurdie 1816
	"OWNER_PERSONAL_EMAIL" VARCHAR2(1000 BYTE), 
1817
	"CONFIG_SPEC_BRANCH" VARCHAR2(4000 BYTE), 
1818
	"PRODUCT_STATE_USED" CHAR(1 BYTE), 
1819
	"OFFICIAL_ID" NUMBER, 
5384 dpurdie 1820
	"BUILD_AGE" NUMBER DEFAULT 31, 
1821
	"LXR" CHAR(1 BYTE) DEFAULT 'N'
5172 dpurdie 1822
   ) SEGMENT CREATION IMMEDIATE 
1823
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1824
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1825
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1826
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1827
 
5384 dpurdie 1828
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."CREATED_STAMP" IS 'Date Release was created';
1829
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."CREATOR_ID" IS 'User who created the release';
1830
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL_STAMP" IS 'Date OFFICIAL state was changed';
1831
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."RELEASOR_ID" IS 'Not Used';
1832
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL" IS 'State of release. A:Archived, Y:Closed, C:CCB Mode, R:Restricted, N: Open';
1833
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."REBUILD_ENV" IS 'Y: Rebuild Package State';
1834
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."REBUILD_STAMP" IS 'Not used ?';
1835
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL_ID" IS 'User last changed OFFICIAL state';
5172 dpurdie 1836
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."BUILD_AGE" IS 'Days without building before warning is shown';
5384 dpurdie 1837
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."LXR" IS 'Y:Enable LXR';
5892 dpurdie 1838
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "DM_READONLY";
1839
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "MS_READONLY";
1840
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "RM_READONLY";
1841
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "RELEASE_MANAGER_READ";
1842
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "DEPLOYMENT_MANAGER";
1843
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "ARCHIVE_MANAGER";
1844
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "CODE_INSPECTION";
4040 dpurdie 1845
--------------------------------------------------------
1846
--  DDL for Table RM_PACKAGE_ISSUES
1847
--------------------------------------------------------
1848
 
5172 dpurdie 1849
  CREATE TABLE "RELEASE_MANAGER"."RM_PACKAGE_ISSUES" 
4040 dpurdie 1850
   (	"PKG_ID" NUMBER, 
5172 dpurdie 1851
	"PKG_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 1852
	"PV_ID" NUMBER, 
5172 dpurdie 1853
	"PKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 1854
	"DPV_ID" NUMBER, 
5172 dpurdie 1855
	"DPKG_NAME" VARCHAR2(50 BYTE), 
1856
	"DPKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 1857
	"ISS_DB" NUMBER, 
1858
	"ISS_ID" NUMBER
5172 dpurdie 1859
   ) SEGMENT CREATION IMMEDIATE 
1860
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1861
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1862
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1863
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1864
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES" TO "DM_READONLY";
1865
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES" TO "MS_READONLY";
1866
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES" TO "RM_READONLY";
1867
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1868
--------------------------------------------------------
1869
--  DDL for Table RM_PKG_ISSUES
1870
--------------------------------------------------------
1871
 
5172 dpurdie 1872
  CREATE GLOBAL TEMPORARY TABLE "RELEASE_MANAGER"."RM_PKG_ISSUES" 
4040 dpurdie 1873
   (	"PKG_ID" NUMBER, 
5172 dpurdie 1874
	"PKG_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 1875
	"PV_ID" NUMBER, 
5172 dpurdie 1876
	"PKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 1877
	"DPV_ID" NUMBER, 
5172 dpurdie 1878
	"DPKG_NAME" VARCHAR2(50 BYTE), 
1879
	"DPKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 1880
	"ISS_DB" NUMBER, 
1881
	"ISS_ID" NUMBER
1882
   ) ON COMMIT PRESERVE ROWS ;
5892 dpurdie 1883
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "DM_READONLY";
1884
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "MS_READONLY";
1885
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "RM_READONLY";
1886
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1887
--------------------------------------------------------
1888
--  DDL for Table RUNTIME_DEPENDENCIES
1889
--------------------------------------------------------
1890
 
5172 dpurdie 1891
  CREATE TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" 
4040 dpurdie 1892
   (	"PV_ID" NUMBER, 
1893
	"RTD_ID" NUMBER, 
5172 dpurdie 1894
	"RTD_COMMENTS" VARCHAR2(2000 BYTE), 
1895
	"RTD_URL" VARCHAR2(2000 BYTE), 
4040 dpurdie 1896
	"MOD_DATE" DATE, 
1897
	"MOD_USER" NUMBER
5172 dpurdie 1898
   ) SEGMENT CREATION IMMEDIATE 
1899
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1900
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1901
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1902
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 1903
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "DM_READONLY";
1904
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "MS_READONLY";
1905
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "RM_READONLY";
1906
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "RELEASE_MANAGER_READ";
1907
  GRANT INSERT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "ARCHIVE_MANAGER";
4040 dpurdie 1908
--------------------------------------------------------
1909
--  DDL for Table RUN_LEVEL
1910
--------------------------------------------------------
1911
 
5172 dpurdie 1912
  CREATE TABLE "RELEASE_MANAGER"."RUN_LEVEL" 
4040 dpurdie 1913
   (	"RCON_ID" NUMBER, 
1914
	"CURRENT_BUILD_FILES" CLOB, 
1915
	"CURRENT_RUN_LEVEL" NUMBER, 
1916
	"PAUSE" NUMBER, 
1917
	"CURRENT_PKG_ID_BEING_BUILT" NUMBER, 
4553 dpurdie 1918
	"KEEP_ALIVE" DATE, 
1919
	"CURRENT_PV_ID" NUMBER, 
1920
	"LAST_BUILD" DATE DEFAULT sysdate
5172 dpurdie 1921
   ) SEGMENT CREATION IMMEDIATE 
1922
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1923
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1924
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1925
  TABLESPACE "RELEASEM_DATA" 
1926
 LOB ("CURRENT_BUILD_FILES") STORE AS BASICFILE (
1927
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
1928
  NOCACHE LOGGING 
1929
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1930
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
4553 dpurdie 1931
 
5172 dpurdie 1932
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."RCON_ID" IS 'Link to the Release_config table';
1933
   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 1934
   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 1935
   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';
1936
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_PKG_ID_BEING_BUILT" IS 'pkg_id of the package currently being built';
1937
   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.';
1938
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_PV_ID" IS 'The PV_ID of the package currently being built.';
1939
   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.';
5892 dpurdie 1940
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL" TO "DM_READONLY";
1941
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL" TO "MS_READONLY";
1942
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL" TO "RM_READONLY";
4040 dpurdie 1943
--------------------------------------------------------
1944
--  DDL for Table RUN_LEVEL_SCHEDULE
1945
--------------------------------------------------------
1946
 
5172 dpurdie 1947
  CREATE TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" 
4040 dpurdie 1948
   (	"SCHEDULED_ID" NUMBER, 
1949
	"SCHEDULED_PAUSE" DATE, 
1950
	"SCHEDULED_RESUME" DATE, 
5172 dpurdie 1951
	"REPEAT" CHAR(1 BYTE), 
1952
	"INDEFINITE_PAUSE" CHAR(1 BYTE)
1953
   ) SEGMENT CREATION IMMEDIATE 
1954
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1955
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1956
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1957
  TABLESPACE "RELEASEM_DATA" ;
1958
 
1959
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_ID" IS 'Unique entry identifier';
1960
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_PAUSE" IS 'Start DateTime of the outage';
1961
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_RESUME" IS 'End DateTime of the outage';
1962
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."REPEAT" IS '0:Once, 1:Daily, 7:Weekly';
1963
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."INDEFINITE_PAUSE" IS 'Non Null indicates indefinite pause';
5892 dpurdie 1964
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" TO "DM_READONLY";
1965
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" TO "MS_READONLY";
1966
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" TO "RM_READONLY";
5172 dpurdie 1967
--------------------------------------------------------
1968
--  DDL for Table SDK_CONTENT
1969
--------------------------------------------------------
1970
 
1971
  CREATE TABLE "RELEASE_MANAGER"."SDK_CONTENT" 
1972
   (	"SDKTAG_ID" NUMBER, 
1973
	"PV_ID" NUMBER, 
1974
	"SDKPKG_STATE" CHAR(1 BYTE) DEFAULT '-'
1975
   ) SEGMENT CREATION IMMEDIATE 
1976
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1977
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1978
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1979
  TABLESPACE "RELEASEM_DATA" ;
1980
 
1981
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."SDKTAG_ID" IS 'Ref to SDK TAG';
1982
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."PV_ID" IS 'Ref to Package Versions';
1983
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."SDKPKG_STATE" IS 'Package State: -:Not exposed, E:Exposed';
1984
--------------------------------------------------------
1985
--  DDL for Table SDK_NAMES
1986
--------------------------------------------------------
1987
 
1988
  CREATE TABLE "RELEASE_MANAGER"."SDK_NAMES" 
1989
   (	"SDK_ID" NUMBER, 
1990
	"SDK_NAME" VARCHAR2(50 BYTE), 
1991
	"SDK_COMMENT" VARCHAR2(4000 BYTE), 
1992
	"VIEW_ID" NUMBER, 
1993
	"PROJ_ID" NUMBER
1994
   ) SEGMENT CREATION IMMEDIATE 
1995
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1996
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1997
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1998
  TABLESPACE "RELEASEM_DATA" ;
1999
 
2000
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_ID" IS 'Auto Created when row is created';
2001
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_NAME" IS 'Name of the SDK';
2002
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_COMMENT" IS 'User comment';
2003
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."VIEW_ID" IS 'Base View for display';
2004
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."PROJ_ID" IS 'Project ID for Security context';
2005
--------------------------------------------------------
2006
--  DDL for Table SDK_TAGS
2007
--------------------------------------------------------
2008
 
2009
  CREATE TABLE "RELEASE_MANAGER"."SDK_TAGS" 
2010
   (	"SDKTAG_ID" NUMBER, 
2011
	"SDKTAG_NAME" VARCHAR2(50 BYTE), 
2012
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
2013
	"SDK_ID" NUMBER, 
2014
	"RTAG_ID" NUMBER, 
2015
	"CREATED_STAMP" TIMESTAMP (6) DEFAULT SYSTIMESTAMP, 
2016
	"CREATOR_ID" NUMBER, 
2017
	"STATE_STAMP" TIMESTAMP (6) DEFAULT SYSTIMESTAMP, 
2018
	"STATE_ID" NUMBER, 
2019
	"SDK_STATE" CHAR(1 BYTE) DEFAULT 'U'
2020
   ) SEGMENT CREATION IMMEDIATE 
2021
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
2022
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2023
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2024
  TABLESPACE "RELEASEM_DATA" ;
2025
 
2026
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDKTAG_ID" IS 'Unique ID. Created automatically';
2027
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDKTAG_NAME" IS 'Name of the SDK Version';
2028
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."DESCRIPTION" IS 'General description';
2029
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDK_ID" IS 'Parent SDK';
2030
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."RTAG_ID" IS 'Release within which this SDK is maintained';
2031
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."CREATED_STAMP" IS 'When created';
2032
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."CREATOR_ID" IS 'Who Created the version';
2033
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."STATE_STAMP" IS 'Time of last change to this version';
2034
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."STATE_ID" IS 'User id who made the last state change';
2035
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDK_STATE" IS 'State: U-Under Development; R-Released; D-Deprecated';
4040 dpurdie 2036
--------------------------------------------------------
5384 dpurdie 2037
--  DDL for Table TEMP_ENV_DEPS
2038
--------------------------------------------------------
2039
 
2040
  CREATE TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" 
2041
   (	"SESSION_NUM" NUMBER, 
2042
	"PV_ID" NUMBER, 
2043
	"PKG_ID" NUMBER, 
2044
	"V_EXT" VARCHAR2(50 BYTE), 
2045
	"DPV_ID" NUMBER, 
2046
	"DPKG_ID" NUMBER, 
2047
	"DV_EXT" VARCHAR2(50 BYTE)
2048
   ) SEGMENT CREATION IMMEDIATE 
2049
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
2050
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2051
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2052
  TABLESPACE "RELEASEM_DATA" ;
2053
 
2054
   COMMENT ON TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS"  IS 'This table is used in the creation of the package_state information
2055
Data in the table is temporary. It should be cleared out after its been used.
2056
Data will only be used for a few seconds.
2057
 
2058
The table is used to map DPV_IDs to PV_IDs, but only for DPV_IDs that are of interest';
2059
--------------------------------------------------------
4040 dpurdie 2060
--  DDL for Table TEMP_ENV_STATES
2061
--------------------------------------------------------
2062
 
5172 dpurdie 2063
  CREATE TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" 
4040 dpurdie 2064
   (	"SESSION_NUM" NUMBER, 
2065
	"LEVEL_NUM" NUMBER, 
2066
	"PV_ID" NUMBER, 
2067
	"PKG_ID" NUMBER, 
5172 dpurdie 2068
	"V_EXT" VARCHAR2(50 BYTE), 
4040 dpurdie 2069
	"TES_STATE" NUMBER
5172 dpurdie 2070
   ) SEGMENT CREATION IMMEDIATE 
2071
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
2072
  STORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2073
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2074
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 2075
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "DM_READONLY";
2076
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "MS_READONLY";
2077
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "RM_READONLY";
2078
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2079
--------------------------------------------------------
2080
--  DDL for Table TEMP_SASH
2081
--------------------------------------------------------
2082
 
5172 dpurdie 2083
  CREATE TABLE "RELEASE_MANAGER"."TEMP_SASH" 
4040 dpurdie 2084
   (	"RTAG_ID" NUMBER, 
2085
	"PROJ_ID" NUMBER
5172 dpurdie 2086
   ) SEGMENT CREATION IMMEDIATE 
2087
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
2088
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2089
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2090
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 2091
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "DM_READONLY";
2092
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "MS_READONLY";
2093
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "RM_READONLY";
2094
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2095
--------------------------------------------------------
2096
--  DDL for Table TEMP_TREE_BROWSE
2097
--------------------------------------------------------
2098
 
5172 dpurdie 2099
  CREATE TABLE "RELEASE_MANAGER"."TEMP_TREE_BROWSE" 
4040 dpurdie 2100
   (	"SESSION_NUM" NUMBER, 
2101
	"LEVEL_NUM" NUMBER, 
2102
	"PV_ID" NUMBER, 
2103
	"PKG_ID" NUMBER, 
5172 dpurdie 2104
	"V_EXT" VARCHAR2(50 BYTE), 
4040 dpurdie 2105
	"DIRECTION" NUMBER
5172 dpurdie 2106
   ) SEGMENT CREATION IMMEDIATE 
2107
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
2108
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2109
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2110
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 2111
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "DM_READONLY";
2112
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "MS_READONLY";
2113
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "RM_READONLY";
2114
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "RELEASE_MANAGER_READ";
5172 dpurdie 2115
--------------------------------------------------------
2116
--  DDL for Table TEST_RUN
2117
--------------------------------------------------------
2118
 
2119
  CREATE TABLE "RELEASE_MANAGER"."TEST_RUN" 
2120
   (	"BUILD_ID" NUMBER, 
2121
	"PLATFORM" VARCHAR2(50 BYTE), 
2122
	"TYPE" VARCHAR2(1 BYTE), 
5384 dpurdie 2123
	"TEST_NAME" VARCHAR2(200 BYTE), 
5172 dpurdie 2124
	"TEST_OUTCOME" VARCHAR2(20 BYTE), 
2125
	"TIME_TAKEN" NUMBER, 
5892 dpurdie 2126
	"FAIL_MESSAGE" CLOB, 
2127
	"TESTRUN_ID" NUMBER
5172 dpurdie 2128
   ) SEGMENT CREATION IMMEDIATE 
2129
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
2130
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2131
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2132
  TABLESPACE "RELEASEM_DATA" 
2133
 LOB ("FAIL_MESSAGE") STORE AS BASICFILE (
2134
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
2135
  NOCACHE LOGGING 
2136
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2137
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
2138
 
2139
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."PLATFORM" IS 'Target Platform';
2140
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TYPE" IS 'P or D';
2141
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TEST_OUTCOME" IS 'PASS/FAIL/SKIP';
2142
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TIME_TAKEN" IS 'Test Duration in milliseconds';
2143
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."FAIL_MESSAGE" IS 'Failure Message';
5892 dpurdie 2144
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TESTRUN_ID" IS 'Unique Id. Used to generate a primary key.';
4040 dpurdie 2145
--------------------------------------------------------
2146
--  DDL for Table TEST_TYPES
2147
--------------------------------------------------------
2148
 
5172 dpurdie 2149
  CREATE TABLE "RELEASE_MANAGER"."TEST_TYPES" 
4040 dpurdie 2150
   (	"TEST_TYPE_ID" NUMBER, 
5172 dpurdie 2151
	"TEST_TYPE_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 2152
	"DISPLAY_ORDER" NUMBER
5172 dpurdie 2153
   ) SEGMENT CREATION IMMEDIATE 
2154
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
2155
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2156
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2157
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 2158
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "DM_READONLY";
2159
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "MS_READONLY";
2160
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "RM_READONLY";
2161
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "RELEASE_MANAGER_READ";
2162
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "DEPLOYMENT_MANAGER";
2163
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "ARCHIVE_MANAGER";
2164
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "CODE_INSPECTION";
4040 dpurdie 2165
--------------------------------------------------------
2166
--  DDL for Table UNIT_TESTS
2167
--------------------------------------------------------
2168
 
5172 dpurdie 2169
  CREATE TABLE "RELEASE_MANAGER"."UNIT_TESTS" 
4040 dpurdie 2170
   (	"TEST_ID" NUMBER, 
2171
	"PV_ID" NUMBER, 
2172
	"TEST_TYPES_FK" NUMBER, 
5172 dpurdie 2173
	"TEST_SUMMARY" VARCHAR2(4000 BYTE), 
4040 dpurdie 2174
	"COMPLETION_DATE" DATE, 
2175
	"COMPLETED_BY" NUMBER, 
5172 dpurdie 2176
	"RESULTS_URL" VARCHAR2(2000 BYTE), 
2177
	"RESULTS_ATTACHMENT_NAME" VARCHAR2(2000 BYTE), 
2178
	"TEST_ACCEPTED" CHAR(1 BYTE), 
4040 dpurdie 2179
	"ACCEPTANCE_DATE" DATE, 
2180
	"ACCEPTED_BY" NUMBER, 
5172 dpurdie 2181
	"REVIEW_COMMENTS" VARCHAR2(4000 BYTE), 
2182
	"NUMOF_TEST" VARCHAR2(50 BYTE)
2183
   ) SEGMENT CREATION IMMEDIATE 
2184
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
2185
  STORAGE(INITIAL 31457280 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2186
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2187
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 2188
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "DM_READONLY";
2189
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "MS_READONLY";
2190
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "RM_READONLY";
2191
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "RELEASE_MANAGER_READ";
2192
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "DEPLOYMENT_MANAGER";
2193
  GRANT INSERT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "ARCHIVE_MANAGER";
2194
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "CODE_INSPECTION";
4040 dpurdie 2195
--------------------------------------------------------
2196
--  DDL for Table VALIDATION_RULES
2197
--------------------------------------------------------
2198
 
5172 dpurdie 2199
  CREATE TABLE "RELEASE_MANAGER"."VALIDATION_RULES" 
2200
   (	"FIELD_NAME" VARCHAR2(1000 BYTE), 
2201
	"IS_REQUIRED" CHAR(1 BYTE), 
2202
	"IS_NUMERIC" CHAR(1 BYTE), 
4040 dpurdie 2203
	"MIN_NUMERIC_VALUE" NUMBER, 
2204
	"MAX_NUMERIC_VALUE" NUMBER, 
5172 dpurdie 2205
	"IS_DATE" CHAR(1 BYTE), 
4040 dpurdie 2206
	"START_DATE" DATE, 
2207
	"END_DATE" DATE, 
2208
	"MIN_STRING_LENGTH" NUMBER, 
2209
	"MAX_STRING_LENGTH" NUMBER, 
5172 dpurdie 2210
	"REGEXP" VARCHAR2(4000 BYTE), 
2211
	"REGEXP_DESCRIPTION" VARCHAR2(50 BYTE)
2212
   ) SEGMENT CREATION IMMEDIATE 
2213
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
2214
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2215
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2216
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 2217
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES" TO "DM_READONLY";
2218
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES" TO "MS_READONLY";
2219
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES" TO "RM_READONLY";
2220
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2221
--------------------------------------------------------
2222
--  DDL for Table VCS_TYPE
2223
--------------------------------------------------------
2224
 
5172 dpurdie 2225
  CREATE TABLE "RELEASE_MANAGER"."VCS_TYPE" 
4040 dpurdie 2226
   (	"VCS_TYPE_ID" NUMBER, 
5172 dpurdie 2227
	"NAME" VARCHAR2(128 BYTE), 
2228
	"TAG" VARCHAR2(32 BYTE)
2229
   ) SEGMENT CREATION IMMEDIATE 
2230
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
2231
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2232
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2233
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 2234
  GRANT SELECT ON "RELEASE_MANAGER"."VCS_TYPE" TO "DM_READONLY";
2235
  GRANT SELECT ON "RELEASE_MANAGER"."VCS_TYPE" TO "MS_READONLY";
2236
  GRANT SELECT ON "RELEASE_MANAGER"."VCS_TYPE" TO "RM_READONLY";
4040 dpurdie 2237
--------------------------------------------------------
2238
--  DDL for Table VIEWS
2239
--------------------------------------------------------
2240
 
5172 dpurdie 2241
  CREATE TABLE "RELEASE_MANAGER"."VIEWS" 
4040 dpurdie 2242
   (	"VIEW_ID" NUMBER, 
5172 dpurdie 2243
	"VIEW_NAME" VARCHAR2(30 BYTE), 
4040 dpurdie 2244
	"OWNER_ID" NUMBER, 
5172 dpurdie 2245
	"BASE_VIEW" CHAR(1 BYTE), 
2246
	"PUBLIC_READ" CHAR(1 BYTE)
2247
   ) SEGMENT CREATION IMMEDIATE 
2248
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
2249
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2250
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2251
  TABLESPACE "RELEASEM_DATA" ;
2252
 
2253
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEWS"."OWNER_ID" IS '0:Public';
2254
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEWS"."BASE_VIEW" IS 'Y:Base View';
5892 dpurdie 2255
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "DM_READONLY";
2256
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "MS_READONLY";
2257
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "RM_READONLY";
2258
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2259
--------------------------------------------------------
2260
--  DDL for Table VIEW_DEF
2261
--------------------------------------------------------
2262
 
5172 dpurdie 2263
  CREATE TABLE "RELEASE_MANAGER"."VIEW_DEF" 
4040 dpurdie 2264
   (	"VIEW_ID" NUMBER, 
2265
	"PKG_ID" NUMBER
5172 dpurdie 2266
   ) SEGMENT CREATION IMMEDIATE 
2267
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
2268
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2269
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2270
  TABLESPACE "RELEASEM_DATA" ;
2271
 
2272
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEW_DEF"."VIEW_ID" IS 'Non Base View ID';
2273
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEW_DEF"."PKG_ID" IS 'Package ID';
2274
   COMMENT ON TABLE "RELEASE_MANAGER"."VIEW_DEF"  IS 'Packages in a non-baseview';
5892 dpurdie 2275
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "DM_READONLY";
2276
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "MS_READONLY";
2277
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "RM_READONLY";
2278
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2279
--------------------------------------------------------
2280
--  DDL for Table VIEW_SETTINGS
2281
--------------------------------------------------------
2282
 
5172 dpurdie 2283
  CREATE TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" 
4040 dpurdie 2284
   (	"USER_ID" NUMBER, 
2285
	"VIEW_ID" NUMBER
5172 dpurdie 2286
   ) SEGMENT CREATION IMMEDIATE 
2287
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
2288
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2289
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2290
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 2291
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "DM_READONLY";
2292
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "MS_READONLY";
2293
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "RM_READONLY";
2294
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2295
--------------------------------------------------------
2296
--  DDL for Table VTREES
2297
--------------------------------------------------------
2298
 
5172 dpurdie 2299
  CREATE TABLE "RELEASE_MANAGER"."VTREES" 
4040 dpurdie 2300
   (	"VTREE_ID" NUMBER, 
2301
	"PROJ_ID" NUMBER, 
5172 dpurdie 2302
	"VTREE_NAME" VARCHAR2(50 BYTE), 
2303
	"HIDE" CHAR(1 BYTE)
2304
   ) SEGMENT CREATION IMMEDIATE 
2305
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
2306
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2307
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2308
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 2309
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "DM_READONLY";
2310
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "MS_READONLY";
2311
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "RM_READONLY";
2312
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "RELEASE_MANAGER_READ";
2313
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "DEPLOYMENT_MANAGER";
2314
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "CODE_INSPECTION";
4040 dpurdie 2315
--------------------------------------------------------
2316
--  DDL for Table VTREES_WORLD
2317
--------------------------------------------------------
2318
 
5172 dpurdie 2319
  CREATE TABLE "RELEASE_MANAGER"."VTREES_WORLD" 
4040 dpurdie 2320
   (	"WORLD_ID" NUMBER, 
2321
	"VTREE_ID" NUMBER
5172 dpurdie 2322
   ) SEGMENT CREATION IMMEDIATE 
2323
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
2324
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2325
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2326
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 2327
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "DM_READONLY";
2328
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "MS_READONLY";
2329
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "RM_READONLY";
2330
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "RELEASE_MANAGER_READ";
2331
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "DEPLOYMENT_MANAGER";
2332
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "CODE_INSPECTION";
4040 dpurdie 2333
--------------------------------------------------------
2334
--  DDL for Table WORK_IN_PROGRESS
2335
--------------------------------------------------------
2336
 
5172 dpurdie 2337
  CREATE TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" 
4040 dpurdie 2338
   (	"RTAG_ID" NUMBER, 
2339
	"PV_ID" NUMBER, 
2340
	"VIEW_ID" NUMBER
5172 dpurdie 2341
   ) SEGMENT CREATION IMMEDIATE 
2342
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
2343
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2344
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2345
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 2346
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "DM_READONLY";
2347
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "MS_READONLY";
2348
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "RM_READONLY";
2349
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2350
--------------------------------------------------------
2351
--  DDL for Table WORLDS
2352
--------------------------------------------------------
2353
 
5172 dpurdie 2354
  CREATE TABLE "RELEASE_MANAGER"."WORLDS" 
4040 dpurdie 2355
   (	"WORLD_ID" NUMBER, 
5172 dpurdie 2356
	"WORLD_NAME" VARCHAR2(30 BYTE), 
2357
	"WORLD_DESC" VARCHAR2(255 BYTE)
2358
   ) SEGMENT CREATION IMMEDIATE 
2359
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
2360
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2361
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2362
  TABLESPACE "RELEASEM_DATA" ;
5892 dpurdie 2363
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "DM_READONLY";
2364
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "MS_READONLY";
2365
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "RM_READONLY";
2366
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2367
--------------------------------------------------------
2368
--  DDL for View ENVIRONMENT_VIEW
2369
--------------------------------------------------------
2370
 
5172 dpurdie 2371
  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 2372
  SELECT 2 AS ENV_AREA,
2373
    rc.PV_ID,
2374
    rc.RTAG_ID,
2375
    rc.BASE_VIEW_ID AS VIEW_ID,
2376
    rc.PKG_STATE,
2377
 rc.DEPRECATED_STATE,
2378
    rc.INSERTOR_ID,
2379
    rc.INSERT_STAMP,
2380
    ' ' AS OPERATION
2381
  FROM RELEASE_CONTENT rc
2382
UNION
2383
SELECT 0 AS ENV_AREA,
2384
    wip.PV_ID,
2385
    wip.RTAG_ID,
2386
    wip.VIEW_ID,
2387
    NULL AS PKG_STATE,
2388
 NULL AS DEPRECATED_STATE,
2389
    NULL AS INSERTOR_ID,
2390
    NULL AS INSERT_STAMP,
2391
    ' ' AS OPERATION
2392
  FROM WORK_IN_PROGRESS wip
2393
UNION
2394
SELECT 1 AS ENV_AREA,
2395
    pl.PV_ID,
2396
    pl.RTAG_ID,
2397
    pl.VIEW_ID,
2398
    NULL AS PKG_STATE,
2399
 NULL AS DEPRECATED_STATE,
2400
    NULL AS INSERTOR_ID,
2401
    NULL AS INSERT_STAMP,
2402
    pl.operation
2403
FROM PLANNED pl;
5892 dpurdie 2404
  GRANT SELECT ON "RELEASE_MANAGER"."ENVIRONMENT_VIEW" TO "MS_READONLY";
2405
  GRANT SELECT ON "RELEASE_MANAGER"."ENVIRONMENT_VIEW" TO "RM_READONLY";
2406
  GRANT SELECT ON "RELEASE_MANAGER"."ENVIRONMENT_VIEW" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2407
--------------------------------------------------------
2408
--  DDL for View RM_PKG_ISSUES_ID
2409
--------------------------------------------------------
2410
 
5172 dpurdie 2411
  CREATE OR REPLACE FORCE VIEW "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" ("ISS_ID", "PKG_VERSION") AS 
4040 dpurdie 2412
  SELECT DISTINCT ISS_ID, PKG_VERSION FROM RM_PACKAGE_ISSUES WHERE ISS_ID IS NOT NULL
2413
 
2414
;
5892 dpurdie 2415
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" TO "MS_READONLY";
2416
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" TO "RM_READONLY";
2417
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2418
--------------------------------------------------------
4211 dpurdie 2419
--  DDL for Index PK_LICENCES
4040 dpurdie 2420
--------------------------------------------------------
2421
 
5172 dpurdie 2422
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_LICENCES" ON "RELEASE_MANAGER"."LICENCES" ("LICENCE") 
2423
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2424
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2425
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2426
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2427
--------------------------------------------------------
4211 dpurdie 2428
--  DDL for Index UNQ_PKG_BUILD_ENV
4040 dpurdie 2429
--------------------------------------------------------
2430
 
5172 dpurdie 2431
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PKG_BUILD_ENV" ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ("PV_ID", "BE_ID") 
2432
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2433
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2434
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2435
  TABLESPACE "RELEASEM_INDX" ;
2436
--------------------------------------------------------
2437
--  DDL for Index SDK_NAMES_UK1
2438
--------------------------------------------------------
2439
 
2440
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_NAMES_UK1" ON "RELEASE_MANAGER"."SDK_NAMES" ("SDK_NAME") 
2441
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2442
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2443
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2444
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 2445
--------------------------------------------------------
4211 dpurdie 2446
--  DDL for Index UNQ_PACKAGES
4040 dpurdie 2447
--------------------------------------------------------
2448
 
5172 dpurdie 2449
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGES" ON "RELEASE_MANAGER"."PACKAGES" ("PKG_NAME") 
2450
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2451
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2452
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2453
  TABLESPACE "RELEASEM_INDX" ;
2454
--------------------------------------------------------
2455
--  DDL for Index INX_PACKAGES_ALIAS
2456
--------------------------------------------------------
2457
 
5384 dpurdie 2458
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."INX_PACKAGES_ALIAS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID", "PKG_ID", "V_EXT") 
5172 dpurdie 2459
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2460
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2461
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2462
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 2463
--------------------------------------------------------
2464
--  DDL for Index CODE_REVIEW_URL_PK
2465
--------------------------------------------------------
2466
 
5172 dpurdie 2467
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CODE_REVIEW_URL_PK" ON "RELEASE_MANAGER"."CODE_REVIEW_URL" ("CR_ID") 
2468
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2469
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2470
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2471
  TABLESPACE "RELEASEM_INDX" ;
2472
--------------------------------------------------------
2473
--  DDL for Index SDK_NAMES_PK
2474
--------------------------------------------------------
2475
 
2476
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_NAMES_PK" ON "RELEASE_MANAGER"."SDK_NAMES" ("SDK_ID") 
2477
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2478
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2479
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2480
  TABLESPACE "RELEASEM_DATA" ;
2481
--------------------------------------------------------
2482
--  DDL for Index INX_ACTION_TIMESTAMP
2483
--------------------------------------------------------
2484
 
2485
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_TIMESTAMP" ON "RELEASE_MANAGER"."ACTION_LOG" ("ACTION_TIMESTAMP") 
2486
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2487
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2488
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2489
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 2490
--------------------------------------------------------
4211 dpurdie 2491
--  DDL for Index INX_UT_COMPLETED
4040 dpurdie 2492
--------------------------------------------------------
2493
 
5172 dpurdie 2494
  CREATE INDEX "RELEASE_MANAGER"."INX_UT_COMPLETED" ON "RELEASE_MANAGER"."UNIT_TESTS" ("COMPLETION_DATE", "COMPLETED_BY") 
2495
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2496
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2497
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2498
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2499
--------------------------------------------------------
4308 dpurdie 2500
--  DDL for Index INX_PV_ID_PKGDOC
2501
--------------------------------------------------------
4040 dpurdie 2502
 
5172 dpurdie 2503
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_ID_PKGDOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID") 
2504
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2505
  STORAGE(INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2506
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2507
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2508
--------------------------------------------------------
2509
--  DDL for Index UNQ_VIEW_SETTINGS
2510
--------------------------------------------------------
4040 dpurdie 2511
 
5172 dpurdie 2512
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEW_SETTINGS" ON "RELEASE_MANAGER"."VIEW_SETTINGS" ("USER_ID", "VIEW_ID") 
2513
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2514
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2515
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2516
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2517
--------------------------------------------------------
2518
--  DDL for Index INX_PP_PV_ID
2519
--------------------------------------------------------
4040 dpurdie 2520
 
5172 dpurdie 2521
  CREATE INDEX "RELEASE_MANAGER"."INX_PP_PV_ID" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PV_ID") 
2522
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2523
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2524
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2525
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2526
--------------------------------------------------------
2527
--  DDL for Index PK_VIEWS
2528
--------------------------------------------------------
4040 dpurdie 2529
 
5172 dpurdie 2530
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_VIEWS" ON "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") 
2531
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2532
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2533
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2534
  TABLESPACE "RELEASEM_INDX" ;
5384 dpurdie 2535
--------------------------------------------------------
2536
--  DDL for Index CQ_USERS_PK
2537
--------------------------------------------------------
2538
 
2539
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_USERS_PK" ON "RELEASE_MANAGER"."CQ_USERS" ("DBID") 
2540
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2541
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2542
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2543
  TABLESPACE "RELEASEM_DATA" ;
4308 dpurdie 2544
--------------------------------------------------------
2545
--  DDL for Index PK_PACKAGES
2546
--------------------------------------------------------
4040 dpurdie 2547
 
5172 dpurdie 2548
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PACKAGES" ON "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") 
2549
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2550
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2551
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2552
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2553
--------------------------------------------------------
2554
--  DDL for Index PK_TEST_TYPES
2555
--------------------------------------------------------
4040 dpurdie 2556
 
5172 dpurdie 2557
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_TEST_TYPES" ON "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_ID") 
2558
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2559
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2560
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2561
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2562
--------------------------------------------------------
2563
--  DDL for Index UNQ_ACTTYPE_ID
2564
--------------------------------------------------------
4040 dpurdie 2565
 
5172 dpurdie 2566
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_ACTTYPE_ID" ON "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") 
2567
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2568
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2569
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2570
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2571
--------------------------------------------------------
2572
--  DDL for Index INX_PROJ_ACTION_DATE_TIME
2573
--------------------------------------------------------
4040 dpurdie 2574
 
5172 dpurdie 2575
  CREATE INDEX "RELEASE_MANAGER"."INX_PROJ_ACTION_DATE_TIME" ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ("ACTION_DATETIME") 
2576
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2577
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2578
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2579
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2580
--------------------------------------------------------
2581
--  DDL for Index INX_RC_PKG_STATE
2582
--------------------------------------------------------
4040 dpurdie 2583
 
5172 dpurdie 2584
  CREATE INDEX "RELEASE_MANAGER"."INX_RC_PKG_STATE" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("PKG_STATE") 
2585
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2586
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2587
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2588
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2589
--------------------------------------------------------
2590
--  DDL for Index PROCESSES_PK
2591
--------------------------------------------------------
4040 dpurdie 2592
 
5172 dpurdie 2593
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PROCESSES_PK" ON "RELEASE_MANAGER"."PROCESSES" ("PROC_ID") 
2594
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2595
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2596
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2597
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2598
--------------------------------------------------------
2599
--  DDL for Index INX_PACKAGE_DEPS_DPV_ID
2600
--------------------------------------------------------
4040 dpurdie 2601
 
5172 dpurdie 2602
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_DPV_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("DPV_ID") 
2603
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2604
  STORAGE(INITIAL 75497472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2605
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2606
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2607
--------------------------------------------------------
2608
--  DDL for Index INX_PACKAGES_PKG_VERSION
2609
--------------------------------------------------------
4040 dpurdie 2610
 
5172 dpurdie 2611
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_PKG_VERSION" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_VERSION") 
2612
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2613
  STORAGE(INITIAL 10485760 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2614
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2615
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2616
--------------------------------------------------------
2617
--  DDL for Index UNQ_PACKAGE_METRICS
2618
--------------------------------------------------------
4040 dpurdie 2619
 
5172 dpurdie 2620
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_METRICS" ON "RELEASE_MANAGER"."PACKAGE_METRICS" ("PV_ID") 
2621
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2622
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2623
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2624
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2625
--------------------------------------------------------
2626
--  DDL for Index UNQ_PLATFORM
2627
--------------------------------------------------------
4040 dpurdie 2628
 
5172 dpurdie 2629
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PLATFORM" ON "RELEASE_MANAGER"."PLATFORMS" ("NAME") 
2630
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2631
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2632
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2633
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2634
--------------------------------------------------------
2635
--  DDL for Index UNQ_VIEWS
2636
--------------------------------------------------------
4040 dpurdie 2637
 
5172 dpurdie 2638
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEWS" ON "RELEASE_MANAGER"."VIEWS" ("VIEW_NAME", "OWNER_ID") 
2639
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2640
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2641
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2642
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2643
--------------------------------------------------------
4211 dpurdie 2644
--  DDL for Index PRODUCT_STATES_PK
4040 dpurdie 2645
--------------------------------------------------------
2646
 
5172 dpurdie 2647
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PRODUCT_STATES_PK" ON "RELEASE_MANAGER"."PRODUCT_STATES" ("STATE_ID") 
2648
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2649
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2650
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2651
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2652
--------------------------------------------------------
4211 dpurdie 2653
--  DDL for Index PK_MESSAGE_BOARD
4040 dpurdie 2654
--------------------------------------------------------
2655
 
5172 dpurdie 2656
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_MESSAGE_BOARD" ON "RELEASE_MANAGER"."MESSAGE_BOARD" ("MSG_ID") 
2657
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2658
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2659
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2660
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2661
--------------------------------------------------------
2662
--  DDL for Index PK_BUILD_MACHINE_CONFIG
2663
--------------------------------------------------------
4040 dpurdie 2664
 
5172 dpurdie 2665
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_BUILD_MACHINE_CONFIG" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ("BMCON_ID") 
2666
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2667
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2668
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2669
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2670
--------------------------------------------------------
2671
--  DDL for Index INX_MSGBOARD
2672
--------------------------------------------------------
4040 dpurdie 2673
 
5172 dpurdie 2674
  CREATE INDEX "RELEASE_MANAGER"."INX_MSGBOARD" ON "RELEASE_MANAGER"."MESSAGE_BOARD" ("EXPIRY_DATE", "DUE_DATE") 
2675
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2676
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2677
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2678
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2679
--------------------------------------------------------
2680
--  DDL for Index PK_VTREES
2681
--------------------------------------------------------
4040 dpurdie 2682
 
5172 dpurdie 2683
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_VTREES" ON "RELEASE_MANAGER"."VTREES" ("VTREE_ID") 
2684
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2685
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2686
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2687
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2688
--------------------------------------------------------
2689
--  DDL for Index UNQ_UT_PART1
2690
--------------------------------------------------------
4040 dpurdie 2691
 
5172 dpurdie 2692
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_UT_PART1" ON "RELEASE_MANAGER"."UNIT_TESTS" ("PV_ID", "TEST_ID") 
2693
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2694
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2695
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2696
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2697
--------------------------------------------------------
2698
--  DDL for Index UNQ_BUILD_ENV
2699
--------------------------------------------------------
4040 dpurdie 2700
 
5172 dpurdie 2701
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ENV" ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_NAME") 
2702
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2703
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2704
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2705
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2706
--------------------------------------------------------
4211 dpurdie 2707
--  DDL for Index INX_ACTION_DATE_TIME
4040 dpurdie 2708
--------------------------------------------------------
2709
 
5172 dpurdie 2710
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_DATE_TIME" ON "RELEASE_MANAGER"."ACTION_LOG" ("ACTION_DATETIME") 
2711
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2712
  STORAGE(INITIAL 92274688 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2713
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2714
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2715
--------------------------------------------------------
4308 dpurdie 2716
--  DDL for Index UNQ_BUILD_MACHINE_CONFIG02
2717
--------------------------------------------------------
4040 dpurdie 2718
 
5172 dpurdie 2719
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_MACHINE_CONFIG02" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ("MACHINE_HOSTNAME") 
2720
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2721
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2722
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2723
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2724
--------------------------------------------------------
5384 dpurdie 2725
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX6
2726
--------------------------------------------------------
2727
 
2728
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX6" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("NEW_NUM") 
2729
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2730
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2731
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2732
  TABLESPACE "RELEASEM_DATA" ;
2733
--------------------------------------------------------
4308 dpurdie 2734
--  DDL for Index BUILD_MACHINES_PK
2735
--------------------------------------------------------
4040 dpurdie 2736
 
5172 dpurdie 2737
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_MACHINES_PK" ON "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") 
2738
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2739
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2740
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2741
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2742
--------------------------------------------------------
2743
--  DDL for Index INX_TTB_SESSION
2744
--------------------------------------------------------
4040 dpurdie 2745
 
5172 dpurdie 2746
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_SESSION" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("SESSION_NUM") 
2747
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2748
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2749
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2750
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2751
--------------------------------------------------------
2752
--  DDL for Index UNQ_RTD
2753
--------------------------------------------------------
4040 dpurdie 2754
 
5172 dpurdie 2755
  CREATE INDEX "RELEASE_MANAGER"."UNQ_RTD" ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ("PV_ID", "RTD_ID") 
2756
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2757
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2758
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2759
  TABLESPACE "RELEASEM_INDX" ;
2760
--------------------------------------------------------
5892 dpurdie 2761
--  DDL for Index BUILD_PLAN_PK
2762
--------------------------------------------------------
2763
 
2764
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_PLAN_PK" ON "RELEASE_MANAGER"."BUILD_PLAN" ("RTAG_ID", "BUILD_ORDER", "PV_ID") 
2765
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2766
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2767
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2768
  TABLESPACE "RELEASEM_DATA" ;
2769
--------------------------------------------------------
5172 dpurdie 2770
--  DDL for Index SDK_CONTENT_INDEX1
2771
--------------------------------------------------------
2772
 
2773
  CREATE INDEX "RELEASE_MANAGER"."SDK_CONTENT_INDEX1" ON "RELEASE_MANAGER"."SDK_CONTENT" ("SDKTAG_ID") 
2774
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2775
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2776
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2777
  TABLESPACE "RELEASEM_DATA" ;
5384 dpurdie 2778
--------------------------------------------------------
2779
--  DDL for Index CQ_STATEDEF_PK
2780
--------------------------------------------------------
2781
 
2782
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_STATEDEF_PK" ON "RELEASE_MANAGER"."CQ_STATEDEF" ("ID") 
2783
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2784
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2785
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2786
  TABLESPACE "RELEASEM_DATA" ;
4308 dpurdie 2787
--------------------------------------------------------
4211 dpurdie 2788
--  DDL for Index INX_RL_RTAG_ID
4040 dpurdie 2789
--------------------------------------------------------
2790
 
5172 dpurdie 2791
  CREATE INDEX "RELEASE_MANAGER"."INX_RL_RTAG_ID" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("RTAG_ID") 
2792
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2793
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2794
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2795
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2796
--------------------------------------------------------
4211 dpurdie 2797
--  DDL for Index UNQ_VIEW_DEF
4040 dpurdie 2798
--------------------------------------------------------
2799
 
5172 dpurdie 2800
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEW_DEF" ON "RELEASE_MANAGER"."VIEW_DEF" ("VIEW_ID", "PKG_ID") 
2801
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2802
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2803
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2804
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2805
--------------------------------------------------------
4211 dpurdie 2806
--  DDL for Index INX_PACKAGES_PKG_NAME
4040 dpurdie 2807
--------------------------------------------------------
2808
 
5172 dpurdie 2809
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_PKG_NAME" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID") 
2810
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2811
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2812
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2813
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2814
--------------------------------------------------------
4211 dpurdie 2815
--  DDL for Index INX_PCOMP_FK_PV_ID
4040 dpurdie 2816
--------------------------------------------------------
2817
 
5172 dpurdie 2818
  CREATE INDEX "RELEASE_MANAGER"."INX_PCOMP_FK_PV_ID" ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" ("PV_ID") 
2819
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2820
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2821
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2822
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2823
--------------------------------------------------------
4211 dpurdie 2824
--  DDL for Index DAEMON_INSTRUCTIONS_UK1
4040 dpurdie 2825
--------------------------------------------------------
2826
 
5172 dpurdie 2827
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS_UK1" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("OP_CODE", "RTAG_ID", "PV_ID") 
2828
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2829
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2830
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2831
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2832
--------------------------------------------------------
4211 dpurdie 2833
--  DDL for Index INX_FILE_NAME
4040 dpurdie 2834
--------------------------------------------------------
2835
 
5172 dpurdie 2836
  CREATE INDEX "RELEASE_MANAGER"."INX_FILE_NAME" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" (UPPER("FILE_NAME")) 
2837
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2838
  STORAGE(INITIAL 1147142144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2839
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2840
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2841
--------------------------------------------------------
4211 dpurdie 2842
--  DDL for Index INX_IS_PATCH_IGNORE
4040 dpurdie 2843
--------------------------------------------------------
2844
 
5172 dpurdie 2845
  CREATE INDEX "RELEASE_MANAGER"."INX_IS_PATCH_IGNORE" ON "RELEASE_MANAGER"."IGNORE_WARNINGS" ("IS_PATCH_IGNORE") 
2846
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2847
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2848
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2849
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2850
--------------------------------------------------------
4211 dpurdie 2851
--  DDL for Index UNQ_BUILD_ENV_DOCS
4040 dpurdie 2852
--------------------------------------------------------
2853
 
5172 dpurdie 2854
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ENV_DOCS" ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" ("BE_ID", "DOC_NUM") 
2855
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2856
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2857
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2858
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2859
--------------------------------------------------------
4211 dpurdie 2860
--  DDL for Index INX_PROJ_ACTION_LOG_PROJ
4040 dpurdie 2861
--------------------------------------------------------
2862
 
5172 dpurdie 2863
  CREATE INDEX "RELEASE_MANAGER"."INX_PROJ_ACTION_LOG_PROJ" ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ("PROJ_ID") 
2864
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2865
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2866
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2867
  TABLESPACE "RELEASEM_INDX" ;
2868
--------------------------------------------------------
5384 dpurdie 2869
--  DDL for Index LICENCING_PK
2870
--------------------------------------------------------
2871
 
2872
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."LICENCING_PK" ON "RELEASE_MANAGER"."LICENCING" ("PV_ID", "LICENCE") 
2873
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2874
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2875
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2876
  TABLESPACE "RELEASEM_DATA" ;
2877
--------------------------------------------------------
5892 dpurdie 2878
--  DDL for Index TEST_RUN_INDEX1
2879
--------------------------------------------------------
2880
 
2881
  CREATE INDEX "RELEASE_MANAGER"."TEST_RUN_INDEX1" ON "RELEASE_MANAGER"."TEST_RUN" ("BUILD_ID") 
2882
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2883
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2884
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2885
  TABLESPACE "RELEASEM_DATA" ;
2886
--------------------------------------------------------
2887
--  DDL for Index RUN_LEVEL_PK
2888
--------------------------------------------------------
2889
 
2890
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."RUN_LEVEL_PK" ON "RELEASE_MANAGER"."RUN_LEVEL" ("RCON_ID") 
2891
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2892
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2893
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2894
  TABLESPACE "RELEASEM_DATA" ;
2895
--------------------------------------------------------
5172 dpurdie 2896
--  DDL for Index BUILD_SERVICE_CONFIG_INDEX1
2897
--------------------------------------------------------
2898
 
2899
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG_INDEX1" ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" ("SERVICE") 
2900
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2901
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2902
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2903
  TABLESPACE "RELEASEM_DATA" ;
2904
--------------------------------------------------------
2905
--  DDL for Index RELEASE_MODIFIED_PK
2906
--------------------------------------------------------
2907
 
2908
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."RELEASE_MODIFIED_PK" ON "RELEASE_MANAGER"."RELEASE_MODIFIED" ("RTAG_ID") 
2909
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2910
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2911
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2912
  TABLESPACE "RELEASEM_DATA" ;
5384 dpurdie 2913
--------------------------------------------------------
2914
--  DDL for Index CQ_HISTORY_INDEX2
2915
--------------------------------------------------------
2916
 
2917
  CREATE INDEX "RELEASE_MANAGER"."CQ_HISTORY_INDEX2" ON "RELEASE_MANAGER"."CQ_HISTORY" ("ENTITYDEF_ID") 
2918
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2919
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2920
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2921
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 2922
--------------------------------------------------------
2923
--  DDL for Index INX_TTB_LEVEL_NUM
2924
--------------------------------------------------------
2925
 
5172 dpurdie 2926
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_LEVEL_NUM" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("LEVEL_NUM") 
2927
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2928
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2929
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2930
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2931
--------------------------------------------------------
4211 dpurdie 2932
--  DDL for Index UNQ_WORK_IN_PROGRESS
4040 dpurdie 2933
--------------------------------------------------------
2934
 
5172 dpurdie 2935
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_WORK_IN_PROGRESS" ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" ("RTAG_ID", "PV_ID") 
2936
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2937
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2938
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2939
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2940
--------------------------------------------------------
4211 dpurdie 2941
--  DDL for Index INX_PACKAGES_V_NMM
4040 dpurdie 2942
--------------------------------------------------------
2943
 
5172 dpurdie 2944
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_NMM" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_NMM") 
2945
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2946
  STORAGE(INITIAL 9437184 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2947
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2948
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2949
--------------------------------------------------------
4211 dpurdie 2950
--  DDL for Index UNQ_PLANNED
4040 dpurdie 2951
--------------------------------------------------------
2952
 
5172 dpurdie 2953
  CREATE INDEX "RELEASE_MANAGER"."UNQ_PLANNED" ON "RELEASE_MANAGER"."PLANNED" ("RTAG_ID", "PV_ID") 
2954
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2955
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2956
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2957
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2958
--------------------------------------------------------
4211 dpurdie 2959
--  DDL for Index INX_TES_PKGEXT
4040 dpurdie 2960
--------------------------------------------------------
2961
 
5172 dpurdie 2962
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_PKGEXT" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("PKG_ID", "V_EXT") 
2963
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2964
  STORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2965
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2966
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2967
--------------------------------------------------------
2968
--  DDL for Index UNQ_BUILD_MACHINE_CONFIG01
2969
--------------------------------------------------------
4040 dpurdie 2970
 
5172 dpurdie 2971
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_MACHINE_CONFIG01" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" (LOWER("DISPLAY_NAME")) 
2972
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2973
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2974
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2975
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2976
--------------------------------------------------------
5384 dpurdie 2977
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX2
2978
--------------------------------------------------------
2979
 
2980
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX2" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("STATE") 
2981
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2982
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2983
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2984
  TABLESPACE "RELEASEM_DATA" ;
2985
--------------------------------------------------------
2986
--  DDL for Index TEMP_ENV_DEPS_PK
2987
--------------------------------------------------------
2988
 
2989
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."TEMP_ENV_DEPS_PK" ON "RELEASE_MANAGER"."TEMP_ENV_DEPS" ("PV_ID", "SESSION_NUM", "DPV_ID") 
2990
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2991
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2992
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2993
  TABLESPACE "RELEASEM_DATA" ;
2994
--------------------------------------------------------
4211 dpurdie 2995
--  DDL for Index UNQ_RELEASE_LINKS
4040 dpurdie 2996
--------------------------------------------------------
2997
 
5172 dpurdie 2998
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_LINKS" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("RTAG_ID", "REF_RTAG_ID") 
2999
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3000
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3001
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3002
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3003
--------------------------------------------------------
3004
--  DDL for Index UNQ_PKG_DOC
3005
--------------------------------------------------------
4040 dpurdie 3006
 
5172 dpurdie 3007
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PKG_DOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID", "DOC_NUM") 
3008
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3009
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3010
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3011
  TABLESPACE "RELEASEM_INDX" ;
5384 dpurdie 3012
--------------------------------------------------------
3013
--  DDL for Index LXR_STATE_PK
3014
--------------------------------------------------------
3015
 
3016
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."LXR_STATE_PK" ON "RELEASE_MANAGER"."LXR_STATE" ("RTAG_ID") 
3017
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3018
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3019
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3020
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 3021
--------------------------------------------------------
4211 dpurdie 3022
--  DDL for Index DAEMON_INSTRUCTIONS_PK
4040 dpurdie 3023
--------------------------------------------------------
3024
 
5172 dpurdie 3025
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS_PK" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("DAEMON_INSTRUCTIONS_ID") 
3026
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3027
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3028
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3029
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3030
--------------------------------------------------------
3031
--  DDL for Index INX_DAEMON_INST_SCHED_DATETIME
3032
--------------------------------------------------------
4040 dpurdie 3033
 
5172 dpurdie 3034
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_SCHED_DATETIME" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("SCHEDULED_DATETIME") 
3035
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3036
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3037
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3038
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 3039
--------------------------------------------------------
4211 dpurdie 3040
--  DDL for Index INX_TTB_PKG
4040 dpurdie 3041
--------------------------------------------------------
3042
 
5172 dpurdie 3043
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_PKG" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("PKG_ID", "V_EXT") 
3044
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3045
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3046
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3047
  TABLESPACE "RELEASEM_INDX" ;
5384 dpurdie 3048
--------------------------------------------------------
3049
--  DDL for Index PACKAGE_VERSIONS_MODIFER_ID
3050
--------------------------------------------------------
3051
 
3052
  CREATE INDEX "RELEASE_MANAGER"."PACKAGE_VERSIONS_MODIFER_ID" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("MODIFIER_ID") 
3053
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3054
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3055
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3056
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 3057
--------------------------------------------------------
4211 dpurdie 3058
--  DDL for Index UNQ_VALIDATION_RULES
4040 dpurdie 3059
--------------------------------------------------------
3060
 
5172 dpurdie 3061
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VALIDATION_RULES" ON "RELEASE_MANAGER"."VALIDATION_RULES" ("FIELD_NAME") 
3062
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3063
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3064
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3065
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3066
--------------------------------------------------------
3067
--  DDL for Index BUILD_STANDARDS_ADDENDUM_PK
3068
--------------------------------------------------------
4040 dpurdie 3069
 
5172 dpurdie 3070
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM_PK" ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ("BSA_ID") 
3071
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3072
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3073
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3074
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 3075
--------------------------------------------------------
4211 dpurdie 3076
--  DDL for Index INX_PV_OWNER_ID
4040 dpurdie 3077
--------------------------------------------------------
3078
 
5172 dpurdie 3079
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_OWNER_ID" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("OWNER_ID") 
3080
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3081
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3082
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3083
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 3084
--------------------------------------------------------
4211 dpurdie 3085
--  DDL for Index INX_TES_TES_STATE
4040 dpurdie 3086
--------------------------------------------------------
3087
 
5172 dpurdie 3088
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_TES_STATE" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("TES_STATE") 
3089
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3090
  STORAGE(INITIAL 458752 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3091
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3092
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 3093
--------------------------------------------------------
4308 dpurdie 3094
--  DDL for Index UNQ_AN_PART1
3095
--------------------------------------------------------
4040 dpurdie 3096
 
5172 dpurdie 3097
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_AN_PART1" ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" ("PV_ID", "NOTE_ID") 
3098
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3099
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3100
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3101
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3102
--------------------------------------------------------
4211 dpurdie 3103
--  DDL for Index UNQ_RELEASE_CONTENTS
4040 dpurdie 3104
--------------------------------------------------------
3105
 
5172 dpurdie 3106
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_CONTENTS" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("RTAG_ID", "PV_ID") 
3107
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3108
  STORAGE(INITIAL 10485760 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3109
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3110
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3111
--------------------------------------------------------
3112
--  DDL for Index INX_ACTION_LOG_PV_ID
3113
--------------------------------------------------------
4040 dpurdie 3114
 
5172 dpurdie 3115
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_LOG_PV_ID" ON "RELEASE_MANAGER"."ACTION_LOG" ("PV_ID") 
3116
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3117
  STORAGE(INITIAL 109051904 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3118
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3119
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 3120
--------------------------------------------------------
4211 dpurdie 3121
--  DDL for Index UNQ_TEST_TYPE_NAME
4040 dpurdie 3122
--------------------------------------------------------
3123
 
5172 dpurdie 3124
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_TEST_TYPE_NAME" ON "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_NAME") 
3125
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3126
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3127
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3128
  TABLESPACE "RELEASEM_INDX" ;
3129
--------------------------------------------------------
3130
--  DDL for Index PEGGED_VERSIONS_INDEX1
3131
--------------------------------------------------------
3132
 
3133
  CREATE INDEX "RELEASE_MANAGER"."PEGGED_VERSIONS_INDEX1" ON "RELEASE_MANAGER"."PEGGED_VERSIONS" ("RTAG_ID", "PV_ID") 
3134
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3135
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3136
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3137
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 3138
--------------------------------------------------------
4308 dpurdie 3139
--  DDL for Index PKNOTE_MANAGER1
3140
--------------------------------------------------------
4040 dpurdie 3141
 
5172 dpurdie 3142
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PKNOTE_MANAGER1" ON "RELEASE_MANAGER"."NOTE_MANAGER" ("NID") 
3143
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3144
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3145
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3146
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3147
--------------------------------------------------------
3148
--  DDL for Index INX_PACKAGES_V_MM
3149
--------------------------------------------------------
4040 dpurdie 3150
 
5172 dpurdie 3151
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_MM" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_MM") 
3152
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3153
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3154
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3155
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3156
--------------------------------------------------------
3157
--  DDL for Index INX_CODE_REVIEW
3158
--------------------------------------------------------
4040 dpurdie 3159
 
5172 dpurdie 3160
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."INX_CODE_REVIEW" ON "RELEASE_MANAGER"."CODE_REVIEWS" ("PV_ID") 
3161
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3162
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3163
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3164
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3165
--------------------------------------------------------
4211 dpurdie 3166
--  DDL for Index UNQ_VTREES
4040 dpurdie 3167
--------------------------------------------------------
3168
 
5172 dpurdie 3169
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VTREES" ON "RELEASE_MANAGER"."VTREES" ("PROJ_ID", "VTREE_NAME") 
3170
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3171
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3172
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3173
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3174
--------------------------------------------------------
3175
--  DDL for Index INX_PACKAGE_DEPS_PKG_ID
3176
--------------------------------------------------------
4040 dpurdie 3177
 
5172 dpurdie 3178
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_PKG_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PKG_ID") 
3179
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3180
  STORAGE(INITIAL 83886080 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3181
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3182
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 3183
--------------------------------------------------------
4211 dpurdie 3184
--  DDL for Index UNQ_PROJECTS
4040 dpurdie 3185
--------------------------------------------------------
3186
 
5172 dpurdie 3187
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PROJECTS" ON "RELEASE_MANAGER"."PROJECTS" ("PROJ_NAME") 
3188
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3189
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3190
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3191
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3192
--------------------------------------------------------
3193
--  DDL for Index INX_PACKAGES_V_EXT
3194
--------------------------------------------------------
4040 dpurdie 3195
 
5172 dpurdie 3196
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_EXT" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_EXT") 
3197
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3198
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3199
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3200
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 3201
--------------------------------------------------------
4211 dpurdie 3202
--  DDL for Index PK_PROJECTS
4040 dpurdie 3203
--------------------------------------------------------
3204
 
5172 dpurdie 3205
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PROJECTS" ON "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") 
3206
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3207
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3208
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3209
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3210
--------------------------------------------------------
3211
--  DDL for Index INX_TES_PV
3212
--------------------------------------------------------
4040 dpurdie 3213
 
5172 dpurdie 3214
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_PV" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("PV_ID") 
3215
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3216
  STORAGE(INITIAL 851968 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3217
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3218
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 3219
--------------------------------------------------------
5384 dpurdie 3220
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX5
3221
--------------------------------------------------------
3222
 
3223
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX5" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PRODUCT") 
3224
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3225
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3226
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3227
  TABLESPACE "RELEASEM_DATA" ;
3228
--------------------------------------------------------
4211 dpurdie 3229
--  DDL for Index UNQ_VTREE_WORLD
4040 dpurdie 3230
--------------------------------------------------------
3231
 
5172 dpurdie 3232
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VTREE_WORLD" ON "RELEASE_MANAGER"."VTREES_WORLD" ("WORLD_ID", "VTREE_ID") 
3233
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3234
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3235
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3236
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 3237
--------------------------------------------------------
4308 dpurdie 3238
--  DDL for Index UNQ_IGW
3239
--------------------------------------------------------
4040 dpurdie 3240
 
5172 dpurdie 3241
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_IGW" ON "RELEASE_MANAGER"."IGNORE_WARNINGS" ("RTAG_ID", "PV_ID", "DPV_ID") 
3242
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3243
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3244
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3245
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3246
--------------------------------------------------------
3247
--  DDL for Index INX_DAEMON_INST_RTAG_ID
3248
--------------------------------------------------------
4040 dpurdie 3249
 
5172 dpurdie 3250
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_RTAG_ID" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("RTAG_ID") 
3251
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3252
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3253
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3254
  TABLESPACE "RELEASEM_INDX" ;
3255
--------------------------------------------------------
3256
--  DDL for Index SDK_TAGS_PK
3257
--------------------------------------------------------
3258
 
3259
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_TAGS_PK" ON "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") 
3260
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3261
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3262
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3263
  TABLESPACE "RELEASEM_DATA" ;
5384 dpurdie 3264
--------------------------------------------------------
3265
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX7
3266
--------------------------------------------------------
3267
 
3268
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX7" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("DEPENDANT_DEVIS") 
3269
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3270
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3271
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3272
  TABLESPACE "RELEASEM_DATA" ;
4308 dpurdie 3273
--------------------------------------------------------
3274
--  DDL for Index PK_NOTIFICATION_HISTORY
3275
--------------------------------------------------------
4040 dpurdie 3276
 
5172 dpurdie 3277
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_NOTIFICATION_HISTORY" ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ("RTAG_ID", "PV_ID", "USER_ID") 
3278
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3279
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3280
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3281
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3282
--------------------------------------------------------
3283
--  DDL for Index UNQ_PACKAGE_DEPENDENCIES
3284
--------------------------------------------------------
4040 dpurdie 3285
 
5172 dpurdie 3286
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_DEPENDENCIES" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PV_ID", "DPV_ID") 
3287
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3288
  STORAGE(INITIAL 100663296 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3289
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3290
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3291
--------------------------------------------------------
3292
--  DDL for Index INX_PACKAGE_DEPS_PV_ID
3293
--------------------------------------------------------
4040 dpurdie 3294
 
5172 dpurdie 3295
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_PV_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PV_ID") 
3296
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3297
  STORAGE(INITIAL 75497472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3298
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3299
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3300
--------------------------------------------------------
4211 dpurdie 3301
--  DDL for Index BUILD_STANDARDS_PK
4040 dpurdie 3302
--------------------------------------------------------
3303
 
5172 dpurdie 3304
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_STANDARDS_PK" ON "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") 
3305
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3306
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3307
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3308
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3309
--------------------------------------------------------
3310
--  DDL for Index UNQ_CQ
3311
--------------------------------------------------------
4040 dpurdie 3312
 
5172 dpurdie 3313
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_CQ" ON "RELEASE_MANAGER"."CQ_ISSUES" ("PV_ID", "ISS_ID", "ISS_DB") 
3314
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3315
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3316
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3317
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 3318
--------------------------------------------------------
4211 dpurdie 3319
--  DDL for Index UNQ_PACKAGE_VERSIONS
4040 dpurdie 3320
--------------------------------------------------------
3321
 
5172 dpurdie 3322
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_VERSIONS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID", "PKG_VERSION") 
3323
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3324
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3325
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3326
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3327
--------------------------------------------------------
3328
--  DDL for Index INX_PV_ID_TEST_ID_PKGDOC
3329
--------------------------------------------------------
4040 dpurdie 3330
 
5172 dpurdie 3331
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_ID_TEST_ID_PKGDOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID", "TEST_ID") 
3332
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3333
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3334
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3335
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 3336
--------------------------------------------------------
4211 dpurdie 3337
--  DDL for Index UNQ_PACKAGE_PATCHES
4040 dpurdie 3338
--------------------------------------------------------
3339
 
5172 dpurdie 3340
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_PATCHES" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PATCH_ID") 
3341
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3342
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3343
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3344
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 3345
--------------------------------------------------------
5384 dpurdie 3346
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX3
3347
--------------------------------------------------------
3348
 
3349
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX3" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PACKAGE_REF") 
3350
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3351
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3352
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3353
  TABLESPACE "RELEASEM_DATA" ;
3354
--------------------------------------------------------
3355
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX4
3356
--------------------------------------------------------
3357
 
3358
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX4" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PROJECT") 
3359
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3360
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3361
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3362
  TABLESPACE "RELEASEM_DATA" ;
3363
--------------------------------------------------------
4308 dpurdie 3364
--  DDL for Index UNQ_REL_COMPONENTS
3365
--------------------------------------------------------
4040 dpurdie 3366
 
5172 dpurdie 3367
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_REL_COMPONENTS" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" ("PV_ID", "FILE_NAME", "FILE_PATH") 
3368
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3369
  STORAGE(INITIAL 3489660928 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3370
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3371
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3372
--------------------------------------------------------
3373
--  DDL for Index PK_PACKAGE_VERSIONS
3374
--------------------------------------------------------
4040 dpurdie 3375
 
5172 dpurdie 3376
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PACKAGE_VERSIONS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") 
3377
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3378
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3379
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3380
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3381
--------------------------------------------------------
3382
--  DDL for Index UNQ_RELEASE_METRICS
3383
--------------------------------------------------------
4040 dpurdie 3384
 
5172 dpurdie 3385
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_METRICS" ON "RELEASE_MANAGER"."RELEASE_METRICS" ("RTAG_ID") 
3386
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3387
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3388
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3389
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3390
--------------------------------------------------------
3391
--  DDL for Index UNQ_BUILD_ORDER
3392
--------------------------------------------------------
4040 dpurdie 3393
 
5172 dpurdie 3394
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ORDER" ON "RELEASE_MANAGER"."BUILD_ORDER" ("RTAG_ID", "PV_ID", "STEP_NUM") 
3395
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3396
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3397
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3398
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3399
--------------------------------------------------------
3400
--  DDL for Index PK_BUILD_ENVIRONMENTS
3401
--------------------------------------------------------
4040 dpurdie 3402
 
5172 dpurdie 3403
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_BUILD_ENVIRONMENTS" ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") 
3404
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3405
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3406
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3407
  TABLESPACE "RELEASEM_INDX" ;
5384 dpurdie 3408
--------------------------------------------------------
3409
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX1
3410
--------------------------------------------------------
3411
 
3412
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX1" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("DBID") 
3413
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3414
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3415
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3416
  TABLESPACE "RELEASEM_DATA" ;
4308 dpurdie 3417
--------------------------------------------------------
3418
--  DDL for Index INX_PACKAGE_DEPS_DPKG_ID
3419
--------------------------------------------------------
4040 dpurdie 3420
 
5172 dpurdie 3421
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_DPKG_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("DPKG_ID") 
3422
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3423
  STORAGE(INITIAL 83886080 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3424
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3425
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3426
--------------------------------------------------------
3427
--  DDL for Index INX_RL_REFRTAG_ID
3428
--------------------------------------------------------
4040 dpurdie 3429
 
5172 dpurdie 3430
  CREATE INDEX "RELEASE_MANAGER"."INX_RL_REFRTAG_ID" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("REF_RTAG_ID") 
3431
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3432
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3433
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3434
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3435
--------------------------------------------------------
3436
--  DDL for Index INX_RC_BASE_VIEW_ID
3437
--------------------------------------------------------
4040 dpurdie 3438
 
5172 dpurdie 3439
  CREATE INDEX "RELEASE_MANAGER"."INX_RC_BASE_VIEW_ID" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("BASE_VIEW_ID") 
3440
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3441
  STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3442
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3443
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3444
--------------------------------------------------------
3445
--  DDL for Index INX_DAEMON_INST_PV_ID
3446
--------------------------------------------------------
4211 dpurdie 3447
 
5172 dpurdie 3448
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_PV_ID" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("PV_ID") 
3449
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3450
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3451
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3452
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3453
--------------------------------------------------------
4040 dpurdie 3454
--  DDL for Index UNQ_PROJECT_EXT
3455
--------------------------------------------------------
3456
 
5172 dpurdie 3457
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PROJECT_EXT" ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" ("PROJ_ID", "EXT_NAME") 
3458
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3459
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3460
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3461
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3462
--------------------------------------------------------
3463
--  DDL for Index VCS_TYPE_PK
3464
--------------------------------------------------------
4040 dpurdie 3465
 
5172 dpurdie 3466
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."VCS_TYPE_PK" ON "RELEASE_MANAGER"."VCS_TYPE" ("VCS_TYPE_ID") 
3467
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3468
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3469
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3470
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 3471
--------------------------------------------------------
4211 dpurdie 3472
--  DDL for Index INX_PC_FILE_NAME
4040 dpurdie 3473
--------------------------------------------------------
3474
 
5172 dpurdie 3475
  CREATE INDEX "RELEASE_MANAGER"."INX_PC_FILE_NAME" ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" (UPPER("FILE_NAME")) 
3476
  PCTFREE 10 INITRANS 2 MAXTRANS 167 COMPUTE STATISTICS 
3477
  STORAGE(INITIAL 18874368 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3478
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3479
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3480
--------------------------------------------------------
3481
--  DDL for Index PK_RELEASE_TAGS
3482
--------------------------------------------------------
4040 dpurdie 3483
 
5172 dpurdie 3484
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_RELEASE_TAGS" ON "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") 
3485
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3486
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3487
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3488
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 3489
--------------------------------------------------------
4211 dpurdie 3490
--  DDL for Index FK_PROJ_ID_RELEASE_TAGS
4040 dpurdie 3491
--------------------------------------------------------
3492
 
5172 dpurdie 3493
  CREATE INDEX "RELEASE_MANAGER"."FK_PROJ_ID_RELEASE_TAGS" ON "RELEASE_MANAGER"."RELEASE_TAGS" ("PROJ_ID") 
3494
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3495
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3496
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3497
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 3498
--------------------------------------------------------
4211 dpurdie 3499
--  DDL for Index INX_RCOMP_PV_ID
4040 dpurdie 3500
--------------------------------------------------------
3501
 
5172 dpurdie 3502
  CREATE INDEX "RELEASE_MANAGER"."INX_RCOMP_PV_ID" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" ("PV_ID") 
3503
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3504
  STORAGE(INITIAL 724566016 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3505
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3506
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3507
--------------------------------------------------------
3508
--  DDL for Index MICROSOFT_PK_DTPROPERTIES
3509
--------------------------------------------------------
4040 dpurdie 3510
 
5172 dpurdie 3511
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."MICROSOFT_PK_DTPROPERTIES" ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" ("ID", "PROPERTY") 
3512
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3513
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3514
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3515
  TABLESPACE "RELEASEM_INDX" ;
3516
--------------------------------------------------------
3517
--  DDL for Index BUILD_ID
3518
--------------------------------------------------------
3519
 
3520
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_ID" ON "RELEASE_MANAGER"."BUILD_INSTANCES" ("BUILD_ID") 
3521
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3522
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3523
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3524
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 3525
--------------------------------------------------------
4308 dpurdie 3526
--  DDL for Index INX_UT_PV_TEST_TYPE
3527
--------------------------------------------------------
4040 dpurdie 3528
 
5172 dpurdie 3529
  CREATE INDEX "RELEASE_MANAGER"."INX_UT_PV_TEST_TYPE" ON "RELEASE_MANAGER"."UNIT_TESTS" ("PV_ID", "TEST_TYPES_FK") 
3530
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3531
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3532
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3533
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3534
--------------------------------------------------------
3535
--  DDL for Index PK_WORLDS
3536
--------------------------------------------------------
4040 dpurdie 3537
 
5172 dpurdie 3538
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_WORLDS" ON "RELEASE_MANAGER"."WORLDS" ("WORLD_ID") 
3539
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3540
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3541
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3542
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3543
--------------------------------------------------------
5892 dpurdie 3544
--  DDL for Index TEST_RUN_PK
3545
--------------------------------------------------------
3546
 
3547
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."TEST_RUN_PK" ON "RELEASE_MANAGER"."TEST_RUN" ("TESTRUN_ID") 
3548
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3549
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3550
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3551
  TABLESPACE "RELEASEM_DATA" ;
3552
--------------------------------------------------------
5384 dpurdie 3553
--  DDL for Index CQ_HISTORY_INDEX1
3554
--------------------------------------------------------
3555
 
3556
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_HISTORY_INDEX1" ON "RELEASE_MANAGER"."CQ_HISTORY" ("DBID") 
3557
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3558
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3559
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3560
  TABLESPACE "RELEASEM_DATA" ;
3561
--------------------------------------------------------
4308 dpurdie 3562
--  DDL for Index UNQ_AN_PART2
3563
--------------------------------------------------------
4040 dpurdie 3564
 
5172 dpurdie 3565
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_AN_PART2" ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" ("PV_ID", "NOTE_TITLE") 
3566
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3567
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3568
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3569
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3570
--------------------------------------------------------
4211 dpurdie 3571
--  Constraints for Table RELEASE_TAGS
4040 dpurdie 3572
--------------------------------------------------------
3573
 
5892 dpurdie 3574
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3575
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" ADD CONSTRAINT "PK_RELEASE_TAGS" PRIMARY KEY ("RTAG_ID")
3576
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3577
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3578
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3579
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3580
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("PROJ_ID" NOT NULL ENABLE);
3581
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("PARENT_RTAG_ID" NOT NULL ENABLE);
3582
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("REBUILD_STAMP" NOT NULL ENABLE);
3583
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("REBUILD_ENV" NOT NULL ENABLE);
3584
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("OFFICIAL" NOT NULL ENABLE);
3585
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("RTAG_NAME" NOT NULL ENABLE);
3586
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3587
--------------------------------------------------------
3588
--  Constraints for Table SDK_NAMES
3589
--------------------------------------------------------
3590
 
5892 dpurdie 3591
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3592
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("VIEW_ID" NOT NULL ENABLE);
3593
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("PROJ_ID" NOT NULL ENABLE);
3594
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_PK" PRIMARY KEY ("SDK_ID")
3595
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3596
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3597
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3598
  TABLESPACE "RELEASEM_DATA"  ENABLE;
3599
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_UK1" UNIQUE ("SDK_NAME")
3600
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3601
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3602
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3603
  TABLESPACE "RELEASEM_DATA"  ENABLE;
3604
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("SDK_NAME" NOT NULL ENABLE);
3605
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("SDK_ID" NOT NULL ENABLE);
4040 dpurdie 3606
--------------------------------------------------------
5172 dpurdie 3607
--  Constraints for Table SDK_TAGS
3608
--------------------------------------------------------
3609
 
5892 dpurdie 3610
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3611
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_PK" PRIMARY KEY ("SDKTAG_ID")
3612
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3613
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3614
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3615
  TABLESPACE "RELEASEM_DATA"  ENABLE;
3616
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDK_STATE" NOT NULL ENABLE);
3617
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3618
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDK_ID" NOT NULL ENABLE);
3619
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDKTAG_NAME" NOT NULL ENABLE);
3620
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDKTAG_ID" NOT NULL ENABLE);
3621
--------------------------------------------------------
4211 dpurdie 3622
--  Constraints for Table RUNTIME_DEPENDENCIES
4040 dpurdie 3623
--------------------------------------------------------
3624
 
5892 dpurdie 3625
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3626
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("MOD_USER" NOT NULL ENABLE);
3627
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
3628
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("PV_ID" NOT NULL ENABLE);
5384 dpurdie 3629
--------------------------------------------------------
3630
--  Constraints for Table LXR_STATE
3631
--------------------------------------------------------
3632
 
5892 dpurdie 3633
  ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5384 dpurdie 3634
  ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3635
  ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" ADD CONSTRAINT "LXR_STATE_PK" PRIMARY KEY ("RTAG_ID")
3636
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3637
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3638
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3639
  TABLESPACE "RELEASEM_DATA"  ENABLE;
4308 dpurdie 3640
--------------------------------------------------------
3641
--  Constraints for Table PACKAGE_PROCESSES
3642
--------------------------------------------------------
4040 dpurdie 3643
 
5892 dpurdie 3644
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3645
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" MODIFY ("PROC_ID" NOT NULL ENABLE);
3646
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 3647
--------------------------------------------------------
4211 dpurdie 3648
--  Constraints for Table DO_NOT_RIPPLE
4040 dpurdie 3649
--------------------------------------------------------
3650
 
5172 dpurdie 3651
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" MODIFY ("RTAG_ID" NOT NULL ENABLE);
5892 dpurdie 3652
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3653
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 3654
--------------------------------------------------------
4211 dpurdie 3655
--  Constraints for Table RELEASE_COMPONENTS
4040 dpurdie 3656
--------------------------------------------------------
3657
 
5892 dpurdie 3658
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3659
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 3660
--------------------------------------------------------
3661
--  Constraints for Table VIEW_SETTINGS
3662
--------------------------------------------------------
4211 dpurdie 3663
 
5892 dpurdie 3664
  ALTER TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3665
  ALTER TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
3666
  ALTER TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" MODIFY ("USER_ID" NOT NULL ENABLE);
4040 dpurdie 3667
--------------------------------------------------------
4211 dpurdie 3668
--  Constraints for Table WORLDS
4040 dpurdie 3669
--------------------------------------------------------
3670
 
5892 dpurdie 3671
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3672
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" ADD CONSTRAINT "PK_WORLDS" PRIMARY KEY ("WORLD_ID")
3673
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3674
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3675
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3676
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3677
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" MODIFY ("WORLD_NAME" NOT NULL ENABLE);
3678
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" MODIFY ("WORLD_ID" NOT NULL ENABLE);
4040 dpurdie 3679
--------------------------------------------------------
4211 dpurdie 3680
--  Constraints for Table UNIT_TESTS
4040 dpurdie 3681
--------------------------------------------------------
3682
 
5892 dpurdie 3683
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3684
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("TEST_TYPES_FK" NOT NULL ENABLE);
3685
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("PV_ID" NOT NULL ENABLE);
3686
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("TEST_ID" NOT NULL ENABLE);
4040 dpurdie 3687
--------------------------------------------------------
4211 dpurdie 3688
--  Constraints for Table PACKAGE_DOCUMENTS
4040 dpurdie 3689
--------------------------------------------------------
3690
 
5892 dpurdie 3691
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3692
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("DOC_NUM" NOT NULL ENABLE);
3693
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("DOC_ID" NOT NULL ENABLE);
3694
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 3695
--------------------------------------------------------
4211 dpurdie 3696
--  Constraints for Table PACKAGE_BUILD_INFO
4040 dpurdie 3697
--------------------------------------------------------
3698
 
5892 dpurdie 3699
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3700
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" MODIFY ("BM_ID" NOT NULL ENABLE);
3701
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 3702
--------------------------------------------------------
3703
--  Constraints for Table ADVISORY_RIPPLE
3704
--------------------------------------------------------
3705
 
5172 dpurdie 3706
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" MODIFY ("PV_ID" NOT NULL ENABLE);
3707
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" MODIFY ("RTAG_ID" NOT NULL ENABLE);
5892 dpurdie 3708
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
4040 dpurdie 3709
--------------------------------------------------------
4211 dpurdie 3710
--  Constraints for Table PRODUCT_STATES
4040 dpurdie 3711
--------------------------------------------------------
3712
 
5892 dpurdie 3713
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3714
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" ADD CONSTRAINT "PRODUCT_STATES_PK" PRIMARY KEY ("STATE_ID")
3715
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3716
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3717
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3718
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3719
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" MODIFY ("STATE" NOT NULL ENABLE);
3720
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" MODIFY ("STATE_ID" NOT NULL ENABLE);
4308 dpurdie 3721
--------------------------------------------------------
3722
--  Constraints for Table PRODUCT_COMPONENTS
3723
--------------------------------------------------------
4040 dpurdie 3724
 
5892 dpurdie 3725
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3726
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" MODIFY ("OS_ID" NOT NULL ENABLE);
3727
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 3728
--------------------------------------------------------
3729
--  Constraints for Table PACKAGE_PATCHES
3730
--------------------------------------------------------
4040 dpurdie 3731
 
5892 dpurdie 3732
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3733
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("INSTALL_ORDER" NOT NULL ENABLE);
3734
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("PATCH_ID" NOT NULL ENABLE);
3735
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 3736
--------------------------------------------------------
3737
--  Constraints for Table RUN_LEVEL_SCHEDULE
3738
--------------------------------------------------------
4040 dpurdie 3739
 
5892 dpurdie 3740
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3741
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" ADD PRIMARY KEY ("SCHEDULED_ID")
3742
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3743
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3744
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3745
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3746
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" MODIFY ("SCHEDULED_ID" NOT NULL ENABLE);
4040 dpurdie 3747
--------------------------------------------------------
4211 dpurdie 3748
--  Constraints for Table MICROSOFTDTPROPERTIES
4040 dpurdie 3749
--------------------------------------------------------
3750
 
5892 dpurdie 3751
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3752
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" ADD CONSTRAINT "MICROSOFT_PK_DTPROPERTIES" PRIMARY KEY ("ID", "PROPERTY")
3753
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3754
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3755
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3756
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3757
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("VERSION" CONSTRAINT "MICROSOFT_NN_VERSION" NOT NULL ENABLE);
3758
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("PROPERTY" CONSTRAINT "MICROSOFT_NN_PROPERTY" NOT NULL ENABLE);
3759
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("ID" CONSTRAINT "MICROSOFT_NN_ID" NOT NULL ENABLE);
4040 dpurdie 3760
--------------------------------------------------------
4211 dpurdie 3761
--  Constraints for Table NOTE_MANAGER
4040 dpurdie 3762
--------------------------------------------------------
3763
 
5892 dpurdie 3764
  ALTER TABLE "RELEASE_MANAGER"."NOTE_MANAGER" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3765
  ALTER TABLE "RELEASE_MANAGER"."NOTE_MANAGER" ADD CONSTRAINT "PKNOTE_MANAGER1" PRIMARY KEY ("NID")
3766
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3767
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3768
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3769
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3770
  ALTER TABLE "RELEASE_MANAGER"."NOTE_MANAGER" MODIFY ("NID" NOT NULL ENABLE);
4040 dpurdie 3771
--------------------------------------------------------
4308 dpurdie 3772
--  Constraints for Table BUILD_SERVICE_CONFIG
3773
--------------------------------------------------------
4040 dpurdie 3774
 
5892 dpurdie 3775
  ALTER TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3776
  ALTER TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" MODIFY ("CONFIG" NOT NULL ENABLE);
3777
  ALTER TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" MODIFY ("SERVICE" NOT NULL ENABLE);
4308 dpurdie 3778
--------------------------------------------------------
3779
--  Constraints for Table GBE_MACHTYPE
3780
--------------------------------------------------------
4040 dpurdie 3781
 
5892 dpurdie 3782
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3783
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("BM_ID" NOT NULL ENABLE);
3784
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" ADD PRIMARY KEY ("GBE_ID")
3785
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3786
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3787
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3788
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3789
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("GBE_VALUE" NOT NULL ENABLE);
3790
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("GBE_ID" NOT NULL ENABLE);
4308 dpurdie 3791
--------------------------------------------------------
4211 dpurdie 3792
--  Constraints for Table ACTION_LOG
4040 dpurdie 3793
--------------------------------------------------------
3794
 
5172 dpurdie 3795
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
3796
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("PV_ID" NOT NULL ENABLE);
3797
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTION_DATETIME" NOT NULL ENABLE);
3798
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
5892 dpurdie 3799
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3800
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTION_TIMESTAMP" NOT NULL ENABLE);
3801
--------------------------------------------------------
3802
--  Constraints for Table SDK_CONTENT
3803
--------------------------------------------------------
3804
 
5892 dpurdie 3805
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3806
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("SDKPKG_STATE" NOT NULL ENABLE);
3807
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("PV_ID" NOT NULL ENABLE);
3808
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("SDKTAG_ID" NOT NULL ENABLE);
4308 dpurdie 3809
--------------------------------------------------------
3810
--  Constraints for Table ADDITIONAL_NOTES
3811
--------------------------------------------------------
4040 dpurdie 3812
 
5172 dpurdie 3813
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("MOD_USER" NOT NULL ENABLE);
3814
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
3815
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("NOTE_TITLE" NOT NULL ENABLE);
3816
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("PV_ID" NOT NULL ENABLE);
3817
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("NOTE_ID" NOT NULL ENABLE);
5892 dpurdie 3818
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
4040 dpurdie 3819
--------------------------------------------------------
4308 dpurdie 3820
--  Constraints for Table BUILD_STANDARDS_ADDENDUM
3821
--------------------------------------------------------
4040 dpurdie 3822
 
5172 dpurdie 3823
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ADD CONSTRAINT "BUILD_STANDARDS_ADDENDUM_PK" PRIMARY KEY ("BSA_ID")
3824
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3825
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3826
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3827
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3828
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BS_ID" NOT NULL ENABLE);
3829
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BSA_NAME" NOT NULL ENABLE);
3830
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BSA_ID" NOT NULL ENABLE);
5892 dpurdie 3831
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
4308 dpurdie 3832
--------------------------------------------------------
4211 dpurdie 3833
--  Constraints for Table TEST_TYPES
4040 dpurdie 3834
--------------------------------------------------------
3835
 
5892 dpurdie 3836
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3837
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" ADD CONSTRAINT "PK_TEST_TYPES" PRIMARY KEY ("TEST_TYPE_ID")
3838
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3839
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3840
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3841
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3842
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" MODIFY ("TEST_TYPE_NAME" NOT NULL ENABLE);
3843
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" MODIFY ("TEST_TYPE_ID" NOT NULL ENABLE);
3844
--------------------------------------------------------
3845
--  Constraints for Table BUILD_INSTANCES
3846
--------------------------------------------------------
3847
 
5892 dpurdie 3848
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3849
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("STATE" NOT NULL ENABLE);
3850
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("BUILD_ID" NOT NULL ENABLE);
3851
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3852
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("PV_ID" NOT NULL ENABLE);
3853
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("TIMESTAMP" NOT NULL ENABLE);
3854
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_ID" PRIMARY KEY ("BUILD_ID")
3855
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3856
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3857
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3858
  TABLESPACE "RELEASEM_DATA"  ENABLE;
4040 dpurdie 3859
--------------------------------------------------------
4211 dpurdie 3860
--  Constraints for Table TEMP_ENV_STATES
4040 dpurdie 3861
--------------------------------------------------------
3862
 
5892 dpurdie 3863
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3864
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("TES_STATE" NOT NULL ENABLE);
3865
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("PKG_ID" NOT NULL ENABLE);
3866
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("PV_ID" NOT NULL ENABLE);
3867
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("LEVEL_NUM" NOT NULL ENABLE);
3868
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("SESSION_NUM" NOT NULL ENABLE);
4040 dpurdie 3869
--------------------------------------------------------
4211 dpurdie 3870
--  Constraints for Table VTREES_WORLD
4040 dpurdie 3871
--------------------------------------------------------
3872
 
5892 dpurdie 3873
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3874
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" MODIFY ("VTREE_ID" NOT NULL ENABLE);
3875
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" MODIFY ("WORLD_ID" NOT NULL ENABLE);
4040 dpurdie 3876
--------------------------------------------------------
4211 dpurdie 3877
--  Constraints for Table RELEASE_CONFIG
4040 dpurdie 3878
--------------------------------------------------------
3879
 
5892 dpurdie 3880
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3881
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD PRIMARY KEY ("RCON_ID")
3882
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3883
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3884
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3885
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3886
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3887
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" MODIFY ("RCON_ID" NOT NULL ENABLE);
4040 dpurdie 3888
--------------------------------------------------------
4211 dpurdie 3889
--  Constraints for Table VIEWS
4040 dpurdie 3890
--------------------------------------------------------
3891
 
5892 dpurdie 3892
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3893
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" ADD CONSTRAINT "PK_VIEWS" PRIMARY KEY ("VIEW_ID")
3894
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3895
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3896
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3897
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3898
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("PUBLIC_READ" NOT NULL ENABLE);
3899
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("BASE_VIEW" NOT NULL ENABLE);
3900
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("OWNER_ID" NOT NULL ENABLE);
3901
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("VIEW_NAME" NOT NULL ENABLE);
3902
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4040 dpurdie 3903
--------------------------------------------------------
4211 dpurdie 3904
--  Constraints for Table JIRA_ISSUES
4040 dpurdie 3905
--------------------------------------------------------
3906
 
5892 dpurdie 3907
  ALTER TABLE "RELEASE_MANAGER"."JIRA_ISSUES" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3908
  ALTER TABLE "RELEASE_MANAGER"."JIRA_ISSUES" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 3909
--------------------------------------------------------
3910
--  Constraints for Table PLATFORMS
3911
--------------------------------------------------------
4040 dpurdie 3912
 
5892 dpurdie 3913
  ALTER TABLE "RELEASE_MANAGER"."PLATFORMS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3914
  ALTER TABLE "RELEASE_MANAGER"."PLATFORMS" MODIFY ("NAME" NOT NULL ENABLE);
3915
  ALTER TABLE "RELEASE_MANAGER"."PLATFORMS" MODIFY ("CODE" NOT NULL ENABLE);
4040 dpurdie 3916
--------------------------------------------------------
3917
--  Constraints for Table IGNORE_WARNINGS
3918
--------------------------------------------------------
3919
 
5892 dpurdie 3920
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3921
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("DPV_ID" NOT NULL ENABLE);
3922
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("PV_ID" NOT NULL ENABLE);
3923
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 3924
--------------------------------------------------------
4211 dpurdie 3925
--  Constraints for Table DASH_BOARD
4040 dpurdie 3926
--------------------------------------------------------
3927
 
5172 dpurdie 3928
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("TOTAL_PACKAGES" NOT NULL ENABLE);
3929
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("AUTOMATED_PACKAGES" NOT NULL ENABLE);
3930
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("LAST_BUILD_TIME" NOT NULL ENABLE);
3931
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3932
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("PROJ_ID" NOT NULL ENABLE);
5892 dpurdie 3933
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
4040 dpurdie 3934
--------------------------------------------------------
4211 dpurdie 3935
--  Constraints for Table ACTION_TYPE
4040 dpurdie 3936
--------------------------------------------------------
3937
 
5172 dpurdie 3938
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" ADD CONSTRAINT "UNQ_ACTTYPE_ID" PRIMARY KEY ("ACTTYPE_ID")
3939
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3940
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3941
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3942
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3943
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" MODIFY ("NAME" NOT NULL ENABLE);
3944
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
5892 dpurdie 3945
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
4040 dpurdie 3946
--------------------------------------------------------
4211 dpurdie 3947
--  Constraints for Table PACKAGE_VERSIONS
4040 dpurdie 3948
--------------------------------------------------------
3949
 
5892 dpurdie 3950
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3951
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD CONSTRAINT "PK_PACKAGE_VERSIONS" PRIMARY KEY ("PV_ID")
3952
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3953
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3954
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3955
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3956
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("BUILD_TYPE" NOT NULL ENABLE);
3957
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("LAST_PV_ID" NOT NULL ENABLE);
3958
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("OWNER_ID" NOT NULL ENABLE);
3959
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("CREATOR_ID" NOT NULL ENABLE);
3960
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("MODIFIER_ID" NOT NULL ENABLE);
3961
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("DLOCKED" NOT NULL ENABLE);
3962
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PKG_VERSION" NOT NULL ENABLE);
3963
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PKG_ID" NOT NULL ENABLE);
3964
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 3965
--------------------------------------------------------
5384 dpurdie 3966
--  Constraints for Table CQ_SOFTWARE_ISSUE
3967
--------------------------------------------------------
3968
 
5892 dpurdie 3969
  ALTER TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5384 dpurdie 3970
  ALTER TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ADD CONSTRAINT "CQ_SOFTWARE_ISSUE_PK" PRIMARY KEY ("DBID")
3971
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3972
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3973
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3974
  TABLESPACE "RELEASEM_DATA"  ENABLE;
3975
  ALTER TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" MODIFY ("DBID" NOT NULL ENABLE);
3976
--------------------------------------------------------
4211 dpurdie 3977
--  Constraints for Table PACKAGE_INTEREST
4040 dpurdie 3978
--------------------------------------------------------
3979
 
5892 dpurdie 3980
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3981
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("USER_ID" NOT NULL ENABLE);
3982
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("PROJ_ID" NOT NULL ENABLE);
3983
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("PKG_ID" NOT NULL ENABLE);
4040 dpurdie 3984
--------------------------------------------------------
4211 dpurdie 3985
--  Constraints for Table RELEASE_CONTENT
4040 dpurdie 3986
--------------------------------------------------------
3987
 
5892 dpurdie 3988
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 3989
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("PKG_STATE" NOT NULL ENABLE);
3990
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("INSERTOR_ID" NOT NULL ENABLE);
3991
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("INSERT_STAMP" NOT NULL ENABLE);
3992
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("BASE_VIEW_ID" NOT NULL ENABLE);
3993
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("PV_ID" NOT NULL ENABLE);
3994
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 3995
--------------------------------------------------------
4211 dpurdie 3996
--  Constraints for Table RELEASE_METRICS
4040 dpurdie 3997
--------------------------------------------------------
3998
 
5892 dpurdie 3999
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4000
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" ADD CONSTRAINT "UNQ_RELEASE_METRICS" UNIQUE ("RTAG_ID")
4001
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4002
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4003
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4004
  TABLESPACE "RELEASEM_INDX"  ENABLE;
4005
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 4006
--------------------------------------------------------
4211 dpurdie 4007
--  Constraints for Table PROJECT_EXTENTIONS
4040 dpurdie 4008
--------------------------------------------------------
4009
 
5892 dpurdie 4010
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_EXTENTIONS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4011
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_EXTENTIONS" MODIFY ("EXT_NAME" NOT NULL ENABLE);
4040 dpurdie 4012
--------------------------------------------------------
5892 dpurdie 4013
--  Constraints for Table RUN_LEVEL
4014
--------------------------------------------------------
4015
 
4016
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD CONSTRAINT "RUN_LEVEL_PK" PRIMARY KEY ("RCON_ID")
4017
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4018
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4019
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4020
  TABLESPACE "RELEASEM_DATA"  ENABLE;
4021
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" MODIFY ("RCON_ID" NOT NULL ENABLE);
4022
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
4023
--------------------------------------------------------
4211 dpurdie 4024
--  Constraints for Table ABT_ACTION_LOG
4040 dpurdie 4025
--------------------------------------------------------
4026
 
5172 dpurdie 4027
  ALTER TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" MODIFY ("RCON_ID" NOT NULL ENABLE);
5892 dpurdie 4028
  ALTER TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
4040 dpurdie 4029
--------------------------------------------------------
4211 dpurdie 4030
--  Constraints for Table DAEMON_ACTION_LOG
4040 dpurdie 4031
--------------------------------------------------------
4032
 
5172 dpurdie 4033
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" MODIFY ("RCON_ID" NOT NULL ENABLE);
4034
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
5892 dpurdie 4035
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
4040 dpurdie 4036
--------------------------------------------------------
4211 dpurdie 4037
--  Constraints for Table PACKAGE_METRICS
4040 dpurdie 4038
--------------------------------------------------------
4039
 
5892 dpurdie 4040
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4041
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" ADD CONSTRAINT "UNQ_PACKAGE_METRICS" UNIQUE ("PV_ID")
4042
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4043
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4044
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4045
  TABLESPACE "RELEASEM_INDX"  ENABLE;
4046
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 4047
--------------------------------------------------------
5384 dpurdie 4048
--  Constraints for Table CQ_USERS
4049
--------------------------------------------------------
4050
 
5892 dpurdie 4051
  ALTER TABLE "RELEASE_MANAGER"."CQ_USERS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5384 dpurdie 4052
  ALTER TABLE "RELEASE_MANAGER"."CQ_USERS" ADD CONSTRAINT "CQ_USERS_PK" PRIMARY KEY ("DBID")
4053
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4054
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4055
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4056
  TABLESPACE "RELEASEM_DATA"  ENABLE;
4057
  ALTER TABLE "RELEASE_MANAGER"."CQ_USERS" MODIFY ("DBID" NOT NULL ENABLE);
4058
--------------------------------------------------------
4211 dpurdie 4059
--  Constraints for Table CODE_REVIEW_URL
4040 dpurdie 4060
--------------------------------------------------------
4061
 
5172 dpurdie 4062
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PK" PRIMARY KEY ("CR_ID")
4063
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4064
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4065
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4066
  TABLESPACE "RELEASEM_INDX"  ENABLE;
4067
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("DATE_OF_REVIEW" NOT NULL ENABLE);
4068
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("URL" NOT NULL ENABLE);
4069
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4070
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("PV_ID" NOT NULL ENABLE);
4071
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("CR_ID" NOT NULL ENABLE);
5892 dpurdie 4072
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5384 dpurdie 4073
--------------------------------------------------------
4074
--  Constraints for Table CQ_STATEDEF
4075
--------------------------------------------------------
4076
 
5892 dpurdie 4077
  ALTER TABLE "RELEASE_MANAGER"."CQ_STATEDEF" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5384 dpurdie 4078
  ALTER TABLE "RELEASE_MANAGER"."CQ_STATEDEF" ADD CONSTRAINT "CQ_STATEDEF_PK" PRIMARY KEY ("ID")
4079
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4080
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4081
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4082
  TABLESPACE "RELEASEM_DATA"  ENABLE;
4083
  ALTER TABLE "RELEASE_MANAGER"."CQ_STATEDEF" MODIFY ("ID" NOT NULL ENABLE);
4040 dpurdie 4084
--------------------------------------------------------
4211 dpurdie 4085
--  Constraints for Table AUTOBUILD_FAILURE
4040 dpurdie 4086
--------------------------------------------------------
4087
 
5172 dpurdie 4088
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD PRIMARY KEY ("GROUP_EMAIL_ID")
4089
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4090
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4091
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4092
  TABLESPACE "RELEASEM_INDX"  ENABLE;
4093
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" MODIFY ("GROUP_EMAIL_ID" NOT NULL ENABLE);
5892 dpurdie 4094
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
4040 dpurdie 4095
--------------------------------------------------------
4211 dpurdie 4096
--  Constraints for Table BUILD_MACHINE_CONFIG
4040 dpurdie 4097
--------------------------------------------------------
4098
 
5172 dpurdie 4099
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ADD CONSTRAINT "PK_BUILD_MACHINE_CONFIG" PRIMARY KEY ("BMCON_ID")
4100
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4101
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4102
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4103
  TABLESPACE "RELEASEM_INDX"  ENABLE;
4104
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("GBE_ID" NOT NULL ENABLE);
4105
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("MACHINE_HOSTNAME" NOT NULL ENABLE);
4106
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("DISPLAY_NAME" NOT NULL ENABLE);
4107
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("BMCON_ID" NOT NULL ENABLE);
5892 dpurdie 4108
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4109
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("ACTIVE" NOT NULL ENABLE);
4110
--------------------------------------------------------
4111
--  Constraints for Table TEST_RUN
4112
--------------------------------------------------------
4113
 
5892 dpurdie 4114
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" ADD CONSTRAINT "TEST_RUN_PK" PRIMARY KEY ("TESTRUN_ID")
4115
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4116
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4117
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4118
  TABLESPACE "RELEASEM_DATA"  ENABLE;
4119
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TESTRUN_ID" NOT NULL ENABLE);
4120
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4121
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TYPE" NOT NULL ENABLE);
4122
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("PLATFORM" NOT NULL ENABLE);
4123
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TEST_OUTCOME" NOT NULL ENABLE);
4124
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TEST_NAME" NOT NULL ENABLE);
4125
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("BUILD_ID" NOT NULL ENABLE);
4040 dpurdie 4126
--------------------------------------------------------
4211 dpurdie 4127
--  Constraints for Table VIEW_DEF
4040 dpurdie 4128
--------------------------------------------------------
4129
 
5892 dpurdie 4130
  ALTER TABLE "RELEASE_MANAGER"."VIEW_DEF" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4131
  ALTER TABLE "RELEASE_MANAGER"."VIEW_DEF" MODIFY ("PKG_ID" NOT NULL ENABLE);
4132
  ALTER TABLE "RELEASE_MANAGER"."VIEW_DEF" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4040 dpurdie 4133
--------------------------------------------------------
4211 dpurdie 4134
--  Constraints for Table BUILD_STANDARDS
4040 dpurdie 4135
--------------------------------------------------------
4136
 
5172 dpurdie 4137
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" ADD CONSTRAINT "BUILD_STANDARDS_PK" PRIMARY KEY ("BS_ID")
4138
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4139
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4140
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4141
  TABLESPACE "RELEASEM_INDX"  ENABLE;
4142
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" MODIFY ("BS_NAME" NOT NULL ENABLE);
4143
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" MODIFY ("BS_ID" NOT NULL ENABLE);
5892 dpurdie 4144
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
4308 dpurdie 4145
--------------------------------------------------------
4146
--  Constraints for Table PACKAGE_BUILD_ENV
4147
--------------------------------------------------------
4040 dpurdie 4148
 
5892 dpurdie 4149
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4150
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" MODIFY ("BE_ID" NOT NULL ENABLE);
4151
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" MODIFY ("PV_ID" NOT NULL ENABLE);
4152
--------------------------------------------------------
4153
--  Constraints for Table RELEASE_MODIFIED
4154
--------------------------------------------------------
4155
 
5892 dpurdie 4156
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4157
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4158
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" ADD CONSTRAINT "RELEASE_MODIFIED_PK" PRIMARY KEY ("RTAG_ID")
4159
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4160
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4161
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4162
  TABLESPACE "RELEASEM_DATA"  ENABLE;
4040 dpurdie 4163
--------------------------------------------------------
5384 dpurdie 4164
--  Constraints for Table TEMP_ENV_DEPS
4165
--------------------------------------------------------
4166
 
5892 dpurdie 4167
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5384 dpurdie 4168
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("PV_ID" NOT NULL ENABLE);
4169
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("PKG_ID" NOT NULL ENABLE);
4170
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("DPV_ID" NOT NULL ENABLE);
4171
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("SESSION_NUM" NOT NULL ENABLE);
4172
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("DPKG_ID" NOT NULL ENABLE);
4173
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" ADD CONSTRAINT "TEMP_ENV_DEPS_PK" PRIMARY KEY ("PV_ID", "SESSION_NUM", "DPV_ID")
4174
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4175
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4176
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4177
  TABLESPACE "RELEASEM_DATA"  ENABLE;
4178
--------------------------------------------------------
4211 dpurdie 4179
--  Constraints for Table VTREES
4040 dpurdie 4180
--------------------------------------------------------
4181
 
5892 dpurdie 4182
  ALTER TABLE "RELEASE_MANAGER"."VTREES" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4183
  ALTER TABLE "RELEASE_MANAGER"."VTREES" ADD CONSTRAINT "PK_VTREES" PRIMARY KEY ("VTREE_ID")
4184
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4185
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4186
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4187
  TABLESPACE "RELEASEM_INDX"  ENABLE;
4188
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("HIDE" NOT NULL ENABLE);
4189
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("VTREE_NAME" NOT NULL ENABLE);
4190
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4191
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("VTREE_ID" NOT NULL ENABLE);
4040 dpurdie 4192
--------------------------------------------------------
4308 dpurdie 4193
--  Constraints for Table NOTIFICATION_HISTORY
4194
--------------------------------------------------------
4040 dpurdie 4195
 
5892 dpurdie 4196
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4197
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "PK_NOTIFICATION_HISTORY" PRIMARY KEY ("RTAG_ID", "PV_ID", "USER_ID")
4198
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4199
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4200
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4201
  TABLESPACE "RELEASEM_INDX"  ENABLE;
4202
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("DATE_TIME_STAMP" NOT NULL ENABLE);
4203
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("USER_ID" NOT NULL ENABLE);
4204
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("PV_ID" NOT NULL ENABLE);
4205
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 4206
--------------------------------------------------------
4207
--  Constraints for Table RELEASE_LINKS
4208
--------------------------------------------------------
4040 dpurdie 4209
 
5892 dpurdie 4210
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4211
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" MODIFY ("REF_RTAG_ID" NOT NULL ENABLE);
4212
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 4213
--------------------------------------------------------
4214
--  Constraints for Table PACKAGES
4215
--------------------------------------------------------
4040 dpurdie 4216
 
5892 dpurdie 4217
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4218
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" ADD CONSTRAINT "PK_PACKAGES" PRIMARY KEY ("PKG_ID")
4219
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4220
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4221
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4222
  TABLESPACE "RELEASEM_INDX"  ENABLE;
4223
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" MODIFY ("PKG_NAME" NOT NULL ENABLE);
4224
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" MODIFY ("PKG_ID" NOT NULL ENABLE);
4308 dpurdie 4225
--------------------------------------------------------
4226
--  Constraints for Table PROJECTS
4227
--------------------------------------------------------
4040 dpurdie 4228
 
5892 dpurdie 4229
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4230
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" ADD CONSTRAINT "PK_PROJECTS" PRIMARY KEY ("PROJ_ID")
4231
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4232
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4233
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4234
  TABLESPACE "RELEASEM_INDX"  ENABLE;
4235
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" MODIFY ("PROJ_NAME" NOT NULL ENABLE);
4236
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4308 dpurdie 4237
--------------------------------------------------------
4238
--  Constraints for Table LICENCING
4239
--------------------------------------------------------
4040 dpurdie 4240
 
5892 dpurdie 4241
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5384 dpurdie 4242
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD CONSTRAINT "LICENCING_PK" PRIMARY KEY ("PV_ID", "LICENCE")
4243
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4244
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4245
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4246
  TABLESPACE "RELEASEM_DATA"  ENABLE;
5172 dpurdie 4247
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" MODIFY ("LICENCE" NOT NULL ENABLE);
4248
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 4249
--------------------------------------------------------
4250
--  Constraints for Table MESSAGE_BOARD
4251
--------------------------------------------------------
4040 dpurdie 4252
 
5892 dpurdie 4253
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4254
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" ADD CONSTRAINT "PK_MESSAGE_BOARD" PRIMARY KEY ("MSG_ID")
4255
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4256
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4257
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4258
  TABLESPACE "RELEASEM_INDX"  ENABLE;
4259
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("SUBMITION_DATE" NOT NULL ENABLE);
4260
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("MSG_DETAILS" NOT NULL ENABLE);
4261
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("MSG_ID" NOT NULL ENABLE);
4308 dpurdie 4262
--------------------------------------------------------
4263
--  Constraints for Table PROJECT_ACTION_LOG
4264
--------------------------------------------------------
4040 dpurdie 4265
 
5892 dpurdie 4266
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4267
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
4268
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4269
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("ACTION_DATETIME" NOT NULL ENABLE);
4270
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4308 dpurdie 4271
--------------------------------------------------------
4272
--  Constraints for Table ARCHIVE_DATA
4273
--------------------------------------------------------
4040 dpurdie 4274
 
5172 dpurdie 4275
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" MODIFY ("PV_ID" NOT NULL ENABLE);
4276
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" MODIFY ("RTAG_ID" NOT NULL ENABLE);
5892 dpurdie 4277
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
4308 dpurdie 4278
--------------------------------------------------------
5892 dpurdie 4279
--  Constraints for Table BUILD_PLAN
4280
--------------------------------------------------------
4281
 
4282
  ALTER TABLE "RELEASE_MANAGER"."BUILD_PLAN" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
4283
  ALTER TABLE "RELEASE_MANAGER"."BUILD_PLAN" ADD CONSTRAINT "BUILD_PLAN_PK" PRIMARY KEY ("RTAG_ID", "BUILD_ORDER", "PV_ID")
4284
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4285
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4286
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4287
  TABLESPACE "RELEASEM_DATA"  ENABLE;
4288
--------------------------------------------------------
4308 dpurdie 4289
--  Constraints for Table VALIDATION_RULES
4290
--------------------------------------------------------
4040 dpurdie 4291
 
5892 dpurdie 4292
  ALTER TABLE "RELEASE_MANAGER"."VALIDATION_RULES" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4293
  ALTER TABLE "RELEASE_MANAGER"."VALIDATION_RULES" MODIFY ("IS_REQUIRED" NOT NULL ENABLE);
4294
  ALTER TABLE "RELEASE_MANAGER"."VALIDATION_RULES" MODIFY ("FIELD_NAME" NOT NULL ENABLE);
4308 dpurdie 4295
--------------------------------------------------------
4296
--  Constraints for Table LICENCES
4297
--------------------------------------------------------
4040 dpurdie 4298
 
5892 dpurdie 4299
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4300
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" ADD CONSTRAINT "PK_LICENCES" PRIMARY KEY ("LICENCE")
4301
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4302
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4303
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4304
  TABLESPACE "RELEASEM_INDX"  ENABLE;
4305
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" MODIFY ("NAME" NOT NULL ENABLE);
4306
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" MODIFY ("LICENCE" NOT NULL ENABLE);
4308 dpurdie 4307
--------------------------------------------------------
4308
--  Constraints for Table MEMBERS_GROUP
4309
--------------------------------------------------------
4040 dpurdie 4310
 
5892 dpurdie 4311
  ALTER TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4312
  ALTER TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" MODIFY ("GROUP_EMAIL_ID" NOT NULL ENABLE);
4308 dpurdie 4313
--------------------------------------------------------
4314
--  Constraints for Table CQ_ISSUES
4315
--------------------------------------------------------
4040 dpurdie 4316
 
5172 dpurdie 4317
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
4318
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_STATE" NOT NULL ENABLE);
4319
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_ID" NOT NULL ENABLE);
4320
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_DB" NOT NULL ENABLE);
4321
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("PV_ID" NOT NULL ENABLE);
5892 dpurdie 4322
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
4308 dpurdie 4323
--------------------------------------------------------
4324
--  Constraints for Table ARCHIVE_ACTION_LOG
4325
--------------------------------------------------------
4040 dpurdie 4326
 
5172 dpurdie 4327
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("DESCRIPTION" NOT NULL ENABLE);
4328
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4329
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("DATE_TIME_STAMP" NOT NULL ENABLE);
4330
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
5892 dpurdie 4331
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
4308 dpurdie 4332
--------------------------------------------------------
4211 dpurdie 4333
--  Constraints for Table CODE_REVIEWS
4040 dpurdie 4334
--------------------------------------------------------
4335
 
5172 dpurdie 4336
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEWS" MODIFY ("PV_ID" NOT NULL ENABLE);
5892 dpurdie 4337
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEWS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
4308 dpurdie 4338
--------------------------------------------------------
4339
--  Constraints for Table PLANNED
4340
--------------------------------------------------------
4040 dpurdie 4341
 
5892 dpurdie 4342
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4343
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "UNIQUE_PV_RTAG" UNIQUE ("PV_ID", "RTAG_ID")
4344
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4345
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4346
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4347
  TABLESPACE "RELEASEM_INDX"  ENABLE;
4348
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4349
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("PV_ID" NOT NULL ENABLE);
4350
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 4351
--------------------------------------------------------
4352
--  Constraints for Table VCS_TYPE
4353
--------------------------------------------------------
4040 dpurdie 4354
 
5892 dpurdie 4355
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4356
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" ADD CONSTRAINT "VCS_TYPE_PK" PRIMARY KEY ("VCS_TYPE_ID")
4357
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4358
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4359
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4360
  TABLESPACE "RELEASEM_INDX"  ENABLE;
4361
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("TAG" NOT NULL ENABLE);
4362
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("NAME" NOT NULL ENABLE);
4363
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("VCS_TYPE_ID" NOT NULL ENABLE);
4308 dpurdie 4364
--------------------------------------------------------
4365
--  Constraints for Table BUILD_MACHINES
4366
--------------------------------------------------------
4040 dpurdie 4367
 
5172 dpurdie 4368
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" ADD CONSTRAINT "BUILD_MACHINES_PK" PRIMARY KEY ("BM_ID")
4369
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4370
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4371
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4372
  TABLESPACE "RELEASEM_INDX"  ENABLE;
4373
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" MODIFY ("BM_NAME" NOT NULL ENABLE);
4374
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" MODIFY ("BM_ID" NOT NULL ENABLE);
5892 dpurdie 4375
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
4308 dpurdie 4376
--------------------------------------------------------
4377
--  Constraints for Table PEGGED_VERSIONS
4378
--------------------------------------------------------
4040 dpurdie 4379
 
5892 dpurdie 4380
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4381
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" MODIFY ("PV_ID" NOT NULL ENABLE);
4382
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 4383
--------------------------------------------------------
4384
--  Constraints for Table DAEMON_INSTRUCTIONS
4385
--------------------------------------------------------
4040 dpurdie 4386
 
5172 dpurdie 4387
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_UK1" UNIQUE ("OP_CODE", "RTAG_ID", "PV_ID")
4388
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4389
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4390
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4391
  TABLESPACE "RELEASEM_INDX"  ENABLE;
4392
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_PK" PRIMARY KEY ("DAEMON_INSTRUCTIONS_ID")
4393
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4394
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4395
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4396
  TABLESPACE "RELEASEM_INDX"  ENABLE;
4397
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" MODIFY ("OP_CODE" NOT NULL ENABLE);
4398
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" MODIFY ("DAEMON_INSTRUCTIONS_ID" NOT NULL ENABLE);
5892 dpurdie 4399
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
4040 dpurdie 4400
--------------------------------------------------------
4211 dpurdie 4401
--  Constraints for Table WORK_IN_PROGRESS
4040 dpurdie 4402
--------------------------------------------------------
4403
 
5892 dpurdie 4404
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4405
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4406
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("PV_ID" NOT NULL ENABLE);
4407
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 4408
--------------------------------------------------------
4308 dpurdie 4409
--  Constraints for Table BUILD_ENV_DOCUMENTS
4410
--------------------------------------------------------
4040 dpurdie 4411
 
5172 dpurdie 4412
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" MODIFY ("DOC_NUM" NOT NULL ENABLE);
4413
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" MODIFY ("BE_ID" NOT NULL ENABLE);
5892 dpurdie 4414
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
4308 dpurdie 4415
--------------------------------------------------------
4211 dpurdie 4416
--  Constraints for Table BUILD_ORDER
4040 dpurdie 4417
--------------------------------------------------------
4418
 
5172 dpurdie 4419
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("PV_ID" NOT NULL ENABLE);
4420
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("STEP_NUM" NOT NULL ENABLE);
4421
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("RTAG_ID" NOT NULL ENABLE);
5892 dpurdie 4422
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
4308 dpurdie 4423
--------------------------------------------------------
4424
--  Constraints for Table PACKAGE_DEPENDENCIES
4425
--------------------------------------------------------
4040 dpurdie 4426
 
5892 dpurdie 4427
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4428
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("BUILD_TYPE" NOT NULL ENABLE);
4429
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("DPKG_ID" NOT NULL ENABLE);
4430
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("PKG_ID" NOT NULL ENABLE);
4431
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("DPV_ID" NOT NULL ENABLE);
4432
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 4433
--------------------------------------------------------
4434
--  Constraints for Table PROCESSES
4435
--------------------------------------------------------
4040 dpurdie 4436
 
5892 dpurdie 4437
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5172 dpurdie 4438
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" ADD CONSTRAINT "PROCESSES_PK" PRIMARY KEY ("PROC_ID")
4439
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4440
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4441
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4442
  TABLESPACE "RELEASEM_INDX"  ENABLE;
4443
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" MODIFY ("PROC_NAME" NOT NULL ENABLE);
4444
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" MODIFY ("PROC_ID" NOT NULL ENABLE);
4308 dpurdie 4445
--------------------------------------------------------
4446
--  Constraints for Table BUILD_ENVIRONMENTS
4447
--------------------------------------------------------
4040 dpurdie 4448
 
5172 dpurdie 4449
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ADD CONSTRAINT "PK_BUILD_ENVIRONMENTS" PRIMARY KEY ("BE_ID")
4450
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4451
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4452
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4453
  TABLESPACE "RELEASEM_INDX"  ENABLE;
4454
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" MODIFY ("BE_NAME" NOT NULL ENABLE);
4455
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" MODIFY ("BE_ID" NOT NULL ENABLE);
5892 dpurdie 4456
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
4308 dpurdie 4457
--------------------------------------------------------
4458
--  Constraints for Table DEPRECATED_PACKAGES
4459
--------------------------------------------------------
4040 dpurdie 4460
 
5172 dpurdie 4461
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("COMMENTS" NOT NULL ENABLE);
4462
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("PKG_ID" NOT NULL ENABLE);
4463
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("RTAG_ID" NOT NULL ENABLE);
5892 dpurdie 4464
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
4040 dpurdie 4465
--------------------------------------------------------
4466
--  Ref Constraints for Table ABT_ACTION_LOG
4467
--------------------------------------------------------
4468
 
5172 dpurdie 4469
  ALTER TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" ADD FOREIGN KEY ("RCON_ID")
4470
	  REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;
4040 dpurdie 4471
--------------------------------------------------------
4472
--  Ref Constraints for Table ACTION_LOG
4473
--------------------------------------------------------
4474
 
5172 dpurdie 4475
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" ADD CONSTRAINT "REFACTION_TYPE48" FOREIGN KEY ("ACTTYPE_ID")
4476
	  REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;
4040 dpurdie 4477
--------------------------------------------------------
4478
--  Ref Constraints for Table ADDITIONAL_NOTES
4479
--------------------------------------------------------
4480
 
5172 dpurdie 4481
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" ADD CONSTRAINT "FK_ADDITION_REF_PV_ID" FOREIGN KEY ("PV_ID")
4482
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4483
--------------------------------------------------------
4484
--  Ref Constraints for Table ADVISORY_RIPPLE
4485
--------------------------------------------------------
4486
 
5172 dpurdie 4487
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" ADD FOREIGN KEY ("RTAG_ID")
4488
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4489
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" ADD FOREIGN KEY ("PV_ID")
4490
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4491
--------------------------------------------------------
4492
--  Ref Constraints for Table AUTOBUILD_FAILURE
4493
--------------------------------------------------------
4494
 
5172 dpurdie 4495
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD FOREIGN KEY ("PROJ_ID")
4496
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
4497
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD FOREIGN KEY ("VIEW_ID")
4498
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
4040 dpurdie 4499
--------------------------------------------------------
4500
--  Ref Constraints for Table BUILD_ENV_DOCUMENTS
4501
--------------------------------------------------------
4502
 
5172 dpurdie 4503
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" ADD CONSTRAINT "FK_BUILD_E_DOCS_REF_BUILD_ENV" FOREIGN KEY ("BE_ID")
4504
	  REFERENCES "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") ENABLE;
4505
--------------------------------------------------------
4506
--  Ref Constraints for Table BUILD_INSTANCES
4507
--------------------------------------------------------
4508
 
4509
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_INSTANCES_FK1" FOREIGN KEY ("RTAG_ID")
4510
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
4511
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_INSTANCES_FK2" FOREIGN KEY ("PV_ID")
4512
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
4040 dpurdie 4513
--------------------------------------------------------
4514
--  Ref Constraints for Table BUILD_MACHINE_CONFIG
4515
--------------------------------------------------------
4516
 
5172 dpurdie 4517
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ADD CONSTRAINT "FK_BM_GBE_ID" FOREIGN KEY ("GBE_ID")
4518
	  REFERENCES "RELEASE_MANAGER"."GBE_MACHTYPE" ("GBE_ID") ENABLE;
4040 dpurdie 4519
--------------------------------------------------------
4520
--  Ref Constraints for Table BUILD_ORDER
4521
--------------------------------------------------------
4522
 
5172 dpurdie 4523
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" ADD CONSTRAINT "FK_BO_PV_ID" FOREIGN KEY ("PV_ID")
4524
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") DISABLE;
4525
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" ADD CONSTRAINT "FK_BO_RTAG_ID" FOREIGN KEY ("RTAG_ID")
4526
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
5892 dpurdie 4527
--------------------------------------------------------
4528
--  Ref Constraints for Table BUILD_PLAN
4529
--------------------------------------------------------
4530
 
4531
  ALTER TABLE "RELEASE_MANAGER"."BUILD_PLAN" ADD CONSTRAINT "BUILD_PLAN_FK1" FOREIGN KEY ("PV_ID")
4532
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
4533
  ALTER TABLE "RELEASE_MANAGER"."BUILD_PLAN" ADD CONSTRAINT "BUILD_PLAN_FK2" FOREIGN KEY ("RTAG_ID")
4534
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
4040 dpurdie 4535
--------------------------------------------------------
4536
--  Ref Constraints for Table BUILD_STANDARDS_ADDENDUM
4537
--------------------------------------------------------
4538
 
5172 dpurdie 4539
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ADD CONSTRAINT "BUILD_STANDARDS_ADDENDUM_R01" FOREIGN KEY ("BS_ID")
4540
	  REFERENCES "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") ENABLE;
4040 dpurdie 4541
--------------------------------------------------------
4542
--  Ref Constraints for Table CODE_REVIEWS
4543
--------------------------------------------------------
4544
 
5172 dpurdie 4545
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEWS" ADD CONSTRAINT "FK_CODE_REV_REF_PV_ID" FOREIGN KEY ("PV_ID")
4546
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4547
--------------------------------------------------------
4548
--  Ref Constraints for Table CODE_REVIEW_URL
4549
--------------------------------------------------------
4550
 
5172 dpurdie 4551
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PACKAGE_V_FK1" FOREIGN KEY ("PV_ID")
4552
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4553
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PROJECT_V_FK1" FOREIGN KEY ("PROJ_ID")
4554
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
4040 dpurdie 4555
--------------------------------------------------------
4556
--  Ref Constraints for Table CQ_ISSUES
4557
--------------------------------------------------------
4558
 
5172 dpurdie 4559
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" ADD CONSTRAINT "FK_CQ_PV_ID" FOREIGN KEY ("PV_ID")
4560
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4561
--------------------------------------------------------
4562
--  Ref Constraints for Table DAEMON_ACTION_LOG
4563
--------------------------------------------------------
4564
 
5172 dpurdie 4565
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" ADD FOREIGN KEY ("RCON_ID")
4566
	  REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;
4567
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" ADD FOREIGN KEY ("ACTTYPE_ID")
4568
	  REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;
4040 dpurdie 4569
--------------------------------------------------------
4570
--  Ref Constraints for Table DAEMON_INSTRUCTIONS
4571
--------------------------------------------------------
4572
 
5172 dpurdie 4573
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_PV_ID_FK" FOREIGN KEY ("PV_ID")
4574
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4575
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_RTAG_ID_FK" FOREIGN KEY ("RTAG_ID")
4576
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4577
--------------------------------------------------------
4578
--  Ref Constraints for Table DASH_BOARD
4579
--------------------------------------------------------
4580
 
5172 dpurdie 4581
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" ADD FOREIGN KEY ("PROJ_ID")
4582
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
4583
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" ADD FOREIGN KEY ("RTAG_ID")
4584
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4585
--------------------------------------------------------
4586
--  Ref Constraints for Table DO_NOT_RIPPLE
4587
--------------------------------------------------------
4588
 
5172 dpurdie 4589
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" ADD FOREIGN KEY ("PV_ID")
4590
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4591
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" ADD FOREIGN KEY ("RTAG_ID")
4592
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4593
--------------------------------------------------------
4594
--  Ref Constraints for Table GBE_MACHTYPE
4595
--------------------------------------------------------
4596
 
5172 dpurdie 4597
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" ADD CONSTRAINT "GBE_MACHTYPE_BUILD_MACHIN_FK1" FOREIGN KEY ("BM_ID")
4598
	  REFERENCES "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") ENABLE;
4040 dpurdie 4599
--------------------------------------------------------
4600
--  Ref Constraints for Table IGNORE_WARNINGS
4601
--------------------------------------------------------
4602
 
5172 dpurdie 4603
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_DPV_ID" FOREIGN KEY ("DPV_ID")
4604
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4605
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_PV_ID" FOREIGN KEY ("PV_ID")
4606
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4607
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_RTAG_ID" FOREIGN KEY ("RTAG_ID")
4608
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4609
--------------------------------------------------------
4610
--  Ref Constraints for Table JIRA_ISSUES
4611
--------------------------------------------------------
4612
 
5172 dpurdie 4613
  ALTER TABLE "RELEASE_MANAGER"."JIRA_ISSUES" ADD CONSTRAINT "FK_JIRA_PV_ID" FOREIGN KEY ("PV_ID")
4614
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4615
--------------------------------------------------------
4616
--  Ref Constraints for Table LICENCING
4617
--------------------------------------------------------
4618
 
5172 dpurdie 4619
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD FOREIGN KEY ("PV_ID")
4620
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4621
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD FOREIGN KEY ("LICENCE")
4622
	  REFERENCES "RELEASE_MANAGER"."LICENCES" ("LICENCE") ENABLE;
4040 dpurdie 4623
--------------------------------------------------------
5384 dpurdie 4624
--  Ref Constraints for Table LXR_STATE
4625
--------------------------------------------------------
4626
 
4627
  ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" ADD CONSTRAINT "LXR_STATE_FK1" FOREIGN KEY ("RTAG_ID")
4628
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
4629
--------------------------------------------------------
4040 dpurdie 4630
--  Ref Constraints for Table MEMBERS_GROUP
4631
--------------------------------------------------------
4632
 
5172 dpurdie 4633
  ALTER TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" ADD FOREIGN KEY ("GROUP_EMAIL_ID")
4634
	  REFERENCES "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ("GROUP_EMAIL_ID") ENABLE;
4040 dpurdie 4635
--------------------------------------------------------
4636
--  Ref Constraints for Table NOTIFICATION_HISTORY
4637
--------------------------------------------------------
4638
 
5172 dpurdie 4639
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "FK_NH_RTAG_ID" FOREIGN KEY ("RTAG_ID")
4640
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4641
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "FK_NK_PV_ID" FOREIGN KEY ("PV_ID")
4642
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") DISABLE;
4040 dpurdie 4643
--------------------------------------------------------
4644
--  Ref Constraints for Table PACKAGE_BUILD_ENV
4645
--------------------------------------------------------
4646
 
5172 dpurdie 4647
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ADD CONSTRAINT "FK_PKG_BUILD_E_REF_BUILD_ENV" FOREIGN KEY ("BE_ID")
4648
	  REFERENCES "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") ENABLE;
4649
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ADD CONSTRAINT "FK_PKG_BUILD_E_REF_PKG_VERSION" FOREIGN KEY ("PV_ID")
4650
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4651
--------------------------------------------------------
4652
--  Ref Constraints for Table PACKAGE_BUILD_INFO
4653
--------------------------------------------------------
4654
 
5172 dpurdie 4655
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" ADD FOREIGN KEY ("PV_ID")
4656
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4657
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" ADD FOREIGN KEY ("BM_ID")
4658
	  REFERENCES "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") ENABLE;
4040 dpurdie 4659
--------------------------------------------------------
5892 dpurdie 4660
--  Ref Constraints for Table PACKAGE_DEPENDENCIES
4661
--------------------------------------------------------
4662
 
4663
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK1" FOREIGN KEY ("PV_ID")
4664
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
4665
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK2" FOREIGN KEY ("DPV_ID")
4666
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
4667
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK3" FOREIGN KEY ("DPKG_ID")
4668
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ON DELETE CASCADE ENABLE;
4669
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK4" FOREIGN KEY ("PKG_ID")
4670
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ON DELETE CASCADE ENABLE;
4671
--------------------------------------------------------
4040 dpurdie 4672
--  Ref Constraints for Table PACKAGE_DOCUMENTS
4673
--------------------------------------------------------
4674
 
5172 dpurdie 4675
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ADD CONSTRAINT "FK_PKGDOCS_REF_PV" FOREIGN KEY ("PV_ID")
4676
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4677
--------------------------------------------------------
4678
--  Ref Constraints for Table PACKAGE_INTEREST
4679
--------------------------------------------------------
4680
 
5172 dpurdie 4681
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" ADD FOREIGN KEY ("PROJ_ID")
4682
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
4040 dpurdie 4683
--------------------------------------------------------
4684
--  Ref Constraints for Table PACKAGE_METRICS
4685
--------------------------------------------------------
4686
 
5172 dpurdie 4687
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" ADD CONSTRAINT "FK_PACKAGE_METRICS_PV_ID" FOREIGN KEY ("PV_ID")
4688
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4689
--------------------------------------------------------
4690
--  Ref Constraints for Table PACKAGE_PATCHES
4691
--------------------------------------------------------
4692
 
5172 dpurdie 4693
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" ADD CONSTRAINT "FK_PP_PATCH_ID" FOREIGN KEY ("PATCH_ID")
4694
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4695
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" ADD CONSTRAINT "FK_PP_PV_ID" FOREIGN KEY ("PV_ID")
4696
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4697
--------------------------------------------------------
4698
--  Ref Constraints for Table PACKAGE_PROCESSES
4699
--------------------------------------------------------
4700
 
5172 dpurdie 4701
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" ADD CONSTRAINT "PACKAGE_PROCESSES_R01" FOREIGN KEY ("PV_ID")
4702
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4703
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" ADD CONSTRAINT "PACKAGE_PROCESSES_R02" FOREIGN KEY ("PROC_ID")
4704
	  REFERENCES "RELEASE_MANAGER"."PROCESSES" ("PROC_ID") ENABLE;
4040 dpurdie 4705
--------------------------------------------------------
4706
--  Ref Constraints for Table PACKAGE_VERSIONS
4707
--------------------------------------------------------
4708
 
5172 dpurdie 4709
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD CONSTRAINT "PACKAGE_VERSIONS_VCS_TYPE" FOREIGN KEY ("VCS_TYPE_ID")
4710
	  REFERENCES "RELEASE_MANAGER"."VCS_TYPE" ("VCS_TYPE_ID") ENABLE;
4711
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD FOREIGN KEY ("BS_ID")
4712
	  REFERENCES "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") ENABLE;
4040 dpurdie 4713
--------------------------------------------------------
4714
--  Ref Constraints for Table PEGGED_VERSIONS
4715
--------------------------------------------------------
4716
 
5172 dpurdie 4717
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" ADD CONSTRAINT "PEGGED_VERSIONS_PACKAG_FK1" FOREIGN KEY ("PV_ID")
4718
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4719
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" ADD CONSTRAINT "PEGGED_VERSIONS_RELEAS_FK1" FOREIGN KEY ("RTAG_ID")
4720
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4721
--------------------------------------------------------
4722
--  Ref Constraints for Table PLANNED
4723
--------------------------------------------------------
4724
 
5172 dpurdie 4725
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFPACKAGE_VERSIONS54" FOREIGN KEY ("PV_ID")
4726
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4727
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFRELEASE_TAGS53" FOREIGN KEY ("RTAG_ID")
4728
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4729
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFVIEWS55" FOREIGN KEY ("VIEW_ID")
4730
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
4040 dpurdie 4731
--------------------------------------------------------
4732
--  Ref Constraints for Table PLANNED_VERSIONS
4733
--------------------------------------------------------
4734
 
5172 dpurdie 4735
  ALTER TABLE "RELEASE_MANAGER"."PLANNED_VERSIONS" ADD FOREIGN KEY ("PKG_ID")
4736
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
4040 dpurdie 4737
--------------------------------------------------------
4738
--  Ref Constraints for Table PRODUCT_COMPONENTS
4739
--------------------------------------------------------
4740
 
5172 dpurdie 4741
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" ADD CONSTRAINT "REFPACKAGE_VERSIONS49" FOREIGN KEY ("PV_ID")
4742
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4743
--------------------------------------------------------
4744
--  Ref Constraints for Table PROJECT_ACTION_LOG
4745
--------------------------------------------------------
4746
 
5172 dpurdie 4747
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ADD CONSTRAINT "REFACTION_TYPE63" FOREIGN KEY ("ACTTYPE_ID")
4748
	  REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;
4749
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ADD FOREIGN KEY ("RTAG_ID")
4750
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") DISABLE;
4040 dpurdie 4751
--------------------------------------------------------
4752
--  Ref Constraints for Table RELEASE_COMPONENTS
4753
--------------------------------------------------------
4754
 
5172 dpurdie 4755
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" ADD CONSTRAINT "FK_RCONT_PV_ID" FOREIGN KEY ("PV_ID")
4756
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4757
--------------------------------------------------------
4758
--  Ref Constraints for Table RELEASE_CONFIG
4759
--------------------------------------------------------
4760
 
5172 dpurdie 4761
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD FOREIGN KEY ("RTAG_ID")
4762
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4763
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD FOREIGN KEY ("GBE_ID")
4764
	  REFERENCES "RELEASE_MANAGER"."GBE_MACHTYPE" ("GBE_ID") ENABLE;
4040 dpurdie 4765
--------------------------------------------------------
4766
--  Ref Constraints for Table RELEASE_CONTENT
4767
--------------------------------------------------------
4768
 
5172 dpurdie 4769
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD CONSTRAINT "RELEASE_CONTENT_FK1" FOREIGN KEY ("SDKTAG_ID")
4770
	  REFERENCES "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") ENABLE;
4771
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD FOREIGN KEY ("PKG_ID")
4772
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
4773
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD FOREIGN KEY ("PRODUCT_STATE")
4774
	  REFERENCES "RELEASE_MANAGER"."PRODUCT_STATES" ("STATE_ID") ENABLE;
4040 dpurdie 4775
--------------------------------------------------------
4776
--  Ref Constraints for Table RELEASE_LINKS
4777
--------------------------------------------------------
4778
 
5172 dpurdie 4779
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" ADD CONSTRAINT "REFRELEASE_TAGS56" FOREIGN KEY ("RTAG_ID")
4780
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4781
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" ADD CONSTRAINT "REFRELEASE_TAGS58" FOREIGN KEY ("REF_RTAG_ID")
4782
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4783
--------------------------------------------------------
4784
--  Ref Constraints for Table RELEASE_METRICS
4785
--------------------------------------------------------
4786
 
5172 dpurdie 4787
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" ADD CONSTRAINT "FK_RELEASE_METRICS_RTAG_ID" FOREIGN KEY ("RTAG_ID")
4788
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4789
--------------------------------------------------------
4790
--  Ref Constraints for Table RELEASE_MODIFIED
4791
--------------------------------------------------------
4792
 
4793
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" ADD CONSTRAINT "RELEASE_MODIFIED_RELEASE__FK1" FOREIGN KEY ("RTAG_ID")
4794
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
4040 dpurdie 4795
--------------------------------------------------------
4796
--  Ref Constraints for Table RUNTIME_DEPENDENCIES
4797
--------------------------------------------------------
4798
 
5172 dpurdie 4799
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ADD CONSTRAINT "FK_RTD_PV_ID" FOREIGN KEY ("PV_ID")
4800
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4801
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ADD CONSTRAINT "FK_RTD_RTD_ID" FOREIGN KEY ("RTD_ID")
4802
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4803
--------------------------------------------------------
4804
--  Ref Constraints for Table RUN_LEVEL
4805
--------------------------------------------------------
4806
 
5172 dpurdie 4807
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD FOREIGN KEY ("RCON_ID")
4808
	  REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;
4809
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD FOREIGN KEY ("CURRENT_PKG_ID_BEING_BUILT")
4810
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
4811
--------------------------------------------------------
4812
--  Ref Constraints for Table SDK_CONTENT
4813
--------------------------------------------------------
4814
 
4815
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" ADD CONSTRAINT "SDK_CONTENT_FK1" FOREIGN KEY ("PV_ID")
4816
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4817
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" ADD CONSTRAINT "SDK_CONTENT_FK2" FOREIGN KEY ("SDKTAG_ID")
4818
	  REFERENCES "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") ENABLE;
4819
--------------------------------------------------------
4820
--  Ref Constraints for Table SDK_NAMES
4821
--------------------------------------------------------
4822
 
4823
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_FK1" FOREIGN KEY ("VIEW_ID")
4824
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
4825
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_FK2" FOREIGN KEY ("PROJ_ID")
4826
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
4827
--------------------------------------------------------
4828
--  Ref Constraints for Table SDK_TAGS
4829
--------------------------------------------------------
4830
 
4831
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_FK1" FOREIGN KEY ("SDK_ID")
4832
	  REFERENCES "RELEASE_MANAGER"."SDK_NAMES" ("SDK_ID") ENABLE;
4833
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_FK2" FOREIGN KEY ("RTAG_ID")
4834
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4835
--------------------------------------------------------
4836
--  Ref Constraints for Table TEST_RUN
4837
--------------------------------------------------------
4838
 
4839
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" ADD CONSTRAINT "TEST_RUN_FK1" FOREIGN KEY ("BUILD_ID")
4840
	  REFERENCES "RELEASE_MANAGER"."BUILD_INSTANCES" ("BUILD_ID") ON DELETE CASCADE ENABLE;
4040 dpurdie 4841
--------------------------------------------------------
4842
--  Ref Constraints for Table UNIT_TESTS
4843
--------------------------------------------------------
4844
 
5172 dpurdie 4845
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" ADD CONSTRAINT "FK_UT_REF_PV_ID" FOREIGN KEY ("PV_ID")
4846
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4847
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" ADD CONSTRAINT "FK_UT_REF_TEST_TYPES" FOREIGN KEY ("TEST_TYPES_FK")
4848
	  REFERENCES "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_ID") ENABLE;
4040 dpurdie 4849
--------------------------------------------------------
4850
--  Ref Constraints for Table VTREES_WORLD
4851
--------------------------------------------------------
4852
 
5172 dpurdie 4853
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" ADD CONSTRAINT "FK_VW_REF_VTREE_ID" FOREIGN KEY ("VTREE_ID")
4854
	  REFERENCES "RELEASE_MANAGER"."VTREES" ("VTREE_ID") ENABLE;
4855
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" ADD CONSTRAINT "FK_VW_REF_WORLD_ID" FOREIGN KEY ("WORLD_ID")
4856
	  REFERENCES "RELEASE_MANAGER"."WORLDS" ("WORLD_ID") ENABLE;
4040 dpurdie 4857
--------------------------------------------------------
4858
--  Ref Constraints for Table WORK_IN_PROGRESS
4859
--------------------------------------------------------
4860
 
5172 dpurdie 4861
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFPACKAGE_VERSIONS51" FOREIGN KEY ("PV_ID")
4862
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4863
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFRELEASE_TAGS50" FOREIGN KEY ("RTAG_ID")
4864
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4865
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFVIEWS52" FOREIGN KEY ("VIEW_ID")
4866
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
4867
--------------------------------------------------------
4868
--  DDL for Trigger TRIGGER_BSA_ID
4869
--------------------------------------------------------
4870
 
4871
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_BSA_ID" 
4872
BEFORE INSERT ON BUILD_STANDARDS_ADDENDUM 
4873
for each row
4874
BEGIN
4875
  select SEQ_BSA_ID.nextval
4876
  into :new.BSA_ID
4877
  from DUAL;
4878
END;
4040 dpurdie 4879
/
5172 dpurdie 4880
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_BSA_ID" ENABLE;
4881
--------------------------------------------------------
4882
--  DDL for Trigger TRIGGER_BUILD_INSTANCE
4883
--------------------------------------------------------
4884
 
4885
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_BUILD_INSTANCE" 
4886
BEFORE INSERT ON BUILD_INSTANCES 
4887
for each row
4888
BEGIN
4889
  select SEQ_BUILD_INSTANCE.nextval
4890
  into :new.BUILD_ID
4891
  from DUAL;
4892
END;
4893
/
4894
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_BUILD_INSTANCE" ENABLE;
4895
--------------------------------------------------------
4896
--  DDL for Trigger TRIGGER_SDK_NAMES
4897
--------------------------------------------------------
4898
 
4899
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_NAMES" 
4900
BEFORE INSERT ON SDK_NAMES 
4901
for each row
4902
BEGIN
4903
  select SEQ_SDK_ID.nextval
4904
  into :new.SDK_ID
4905
  from DUAL;
4906
END;
4907
/
4908
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_NAMES" ENABLE;
4909
--------------------------------------------------------
4910
--  DDL for Trigger TRIGGER_SDK_TAGS
4911
--------------------------------------------------------
4912
 
4913
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_TAGS" 
4914
BEFORE INSERT ON SDK_TAGS 
4915
for each row
4916
BEGIN
4917
  select SEQ_SDKTAG_ID.nextval
4918
  into :new.SDKTAG_ID
4919
  from DUAL;
4920
END;
4921
/
4922
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_TAGS" ENABLE;
4040 dpurdie 4923
--------------------------------------------------------
5892 dpurdie 4924
--  DDL for Trigger TRIGGER_TEST_RUNS
4925
--------------------------------------------------------
4926
 
4927
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_TEST_RUNS" 
4928
BEFORE INSERT ON TEST_RUN 
4929
for each row
4930
BEGIN
4931
  select SEQ_TESTRUN_ID.nextval
4932
  into :new.TESTRUN_ID
4933
  from DUAL;
4934
END;
4935
/
4936
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_TEST_RUNS" ENABLE;
4937
--------------------------------------------------------
4040 dpurdie 4938
--  DDL for Function CAN_EDIT_PKG_IN_PROJECT
4939
--------------------------------------------------------
4940
 
5172 dpurdie 4941
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."CAN_EDIT_PKG_IN_PROJECT" ( nPvId IN NUMBER, nRtagId IN NUMBER ) RETURN NUMBER IS
5384 dpurdie 4942
-- Returns 0 : Package is not editable in this Release
4943
--         1 : Package is editable in this release
1373 dpurdie 4944
/* ---------------------------------------------------------------------------
4945
    Version: 3.0.0
4946
   --------------------------------------------------------------------------- */
4947
 
5384 dpurdie 4948
  VExt PACKAGE_VERSIONS.V_EXT%TYPE;
4949
  ProjId NUMBER;
4950
  RowCount NUMBER;
4951
  cReleaseMode CHAR(1);
1373 dpurdie 4952
 
4953
BEGIN
5384 dpurdie 4954
 
4955
  /*--------------- Business Rules Here -------------------*/
4956
  IF (nRtagId IS NULL)  OR  (nRtagId < 1)THEN
4957
    RETURN 0;
4958
  END IF;
4959
  /*-------------------------------------------------------*/
4960
 
4961
  /*-- First Check. See if package is used through release reference --*/
4962
  SELECT COUNT(rc.PV_ID) INTO RowCount
4963
    FROM (
4964
        SELECT rl.REF_RTAG_ID
4965
        FROM RELEASE_LINKS rl
4966
       WHERE rl.RTAG_ID = nRtagId
4967
        ) rl,
4968
      RELEASE_CONTENT rc
4969
    WHERE rc.RTAG_ID = rl.REF_RTAG_ID
4970
      AND rc.PV_ID = nPvId;     
4971
 
4972
  -- Decide if package can be edited  
4973
  IF RowCount > 0 THEN
4974
    -- Package is referenced from other release, hence cannot be edited
4975
    RETURN 0; 
4976
  END IF;   
4977
 
5172 dpurdie 4978
-- Check if the package is included through an SDK reference
4979
  SELECT count(*) INTO RowCount
4980
    FROM RELEASE_CONTENT rc
4981
   WHERE rc.RTAG_ID = nRtagId
5384 dpurdie 4982
      AND rc.PV_ID = nPvId
5172 dpurdie 4983
      AND rc.SDKTAG_ID is not NULL ;
4984
 
5384 dpurdie 4985
  IF RowCount > 0 THEN
4986
    -- Package is imported via SDK
4987
    RETURN 0; 
4988
  END IF; 
5172 dpurdie 4989
 
5384 dpurdie 4990
--  Pegged packages can be edited. Other checking needs to be done
4991
--  -- Check if the package is pegged
4992
--  SELECT count(*) INTO RowCount
4993
--    FROM pegged_versions
4994
--   WHERE RTAG_ID = nRtagId
4995
--      AND PV_ID = nPvId;
5172 dpurdie 4996
 
5384 dpurdie 4997
--  IF RowCount > 0 THEN
4998
--    -- Package is Pegged
4999
--    RETURN 0; 
5000
--  END IF; 
5172 dpurdie 5001
 
5384 dpurdie 5002
  -- Check is only done for releases in restrictive mode
5003
  SELECT rt.OFFICIAL INTO cReleaseMode
5004
    FROM RELEASE_TAGS rt
5005
   WHERE rt.RTAG_ID = nRtagId;
5006
 
5007
  IF cReleaseMode = 'N' OR cReleaseMode = 'R'  OR cReleaseMode = 'C' THEN
5008
    -- Do not do any further checking,
5009
    -- Package is editable here
5010
    RETURN 1;
5011
  END IF; 
5012
 
5172 dpurdie 5013
 
5384 dpurdie 5014
  /*-- Further checking --*/
5015
  -- Get proj_id
5016
  SELECT rt.PROJ_ID  INTO  ProjId
5017
    FROM RELEASE_TAGS rt
5018
   WHERE rt.RTAG_ID = nRtagId;
5172 dpurdie 5019
 
5384 dpurdie 5020
  BEGIN
5021
    -- Get v_ext
5022
    SELECT pv.V_EXT  INTO  Vext
5023
      FROM PACKAGE_VERSIONS pv
5024
     WHERE pv.PV_ID = nPvId;  
1373 dpurdie 5025
 
5384 dpurdie 5026
    EXCEPTION
5027
        WHEN NO_DATA_FOUND THEN
5028
            Vext := NULL;
5029
  END;   
5030
 
5031
  --Temp Hack for Step Project
5032
  IF ProjId != 281 THEN
5033
    -- Find if package can be edited in this project
5034
      SELECT COUNT(pe.EXT_NAME) INTO RowCount
5035
      FROM PROJECT_EXTENTIONS pe
5036
      WHERE pe.PROJ_ID != ProjId  
5037
        AND pe.EXT_NAME = VExt;
5038
  END IF;   
5039
 
5040
  -- Decide if package can be edited  
5041
  IF RowCount > 0 THEN
5042
    -- Package extension is found in other projects, hence NOT EDITABLE
5043
    RETURN 0;
5044
  ELSE
5045
    RETURN 1; 
5046
  END IF;
1373 dpurdie 5047
 
5384 dpurdie 5048
 
1373 dpurdie 5049
END CAN_EDIT_PKG_IN_PROJECT;
4040 dpurdie 5050
 
1374 dpurdie 5051
/
4040 dpurdie 5052
--------------------------------------------------------
5053
--  DDL for Function DT_ADDUSEROBJECT
5054
--------------------------------------------------------
5055
 
5172 dpurdie 5056
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."DT_ADDUSEROBJECT" RETURN NUMBER IS NEWOBJECTID NUMBER; BEGIN /* GET THE NEXT VALUE FROM THE SEQUENCE FOR THE OBJECT ID */ SELECT MICROSOFTSEQDTPROPERTIES.NEXTVAL INTO NEWOBJECTID FROM DUAL; /* ADD THE PARENT NODE FOR THE NEW OBJECT */ INSERT INTO MICROSOFTDTPROPERTIES ( ID, OBJECTID, PROPERTY ) VALUES ( NEWOBJECTID, NEWOBJECTID, 'DtgSchemaOBJECT' ); RETURN( NEWOBJECTID ); END DT_ADDUSEROBJECT;
4040 dpurdie 5057
 
3959 dpurdie 5058
/
4040 dpurdie 5059
--------------------------------------------------------
5060
--  DDL for Function GET_AUTOMATED_LABEL
5061
--------------------------------------------------------
5062
 
5172 dpurdie 5063
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_AUTOMATED_LABEL" ( nPvId IN NUMBER ) RETURN VARCHAR2 IS
3959 dpurdie 5064
 
5065
/* ---------------------------------------------------------------------------
5066
    Version: 3.0.0
5067
   --------------------------------------------------------------------------- */
5068
 
4211 dpurdie 5069
  sPkgName VARCHAR2(4000);
5070
  sPkgVersion VARCHAR2(4000);
5071
  sVext VARCHAR2(4000);
5072
  cChangeType CHAR;
5073
  cBuildType CHAR;
5074
 
3959 dpurdie 5075
 
1373 dpurdie 5076
BEGIN
5077
 
3959 dpurdie 5078
	-- Get package details
4211 dpurdie 5079
	SELECT pkg.PKG_NAME, pv.V_EXT, pv.build_type, pv.change_type, pv.pkg_version INTO sPkgName, sVext,cBuildType, cChangeType, sPkgVersion  
3959 dpurdie 5080
	  FROM PACKAGE_VERSIONS pv,
5081
	  	   PACKAGES pkg
5082
	 WHERE pv.PKG_ID = pkg.PKG_ID
5083
	   AND pv.PV_ID = nPvId;
5084
 
4211 dpurdie 5085
  -- Generate Label for manually built package
5086
  If cBuildType = 'M' Then
5087
    return (sPkgName ||'_'|| sPkgVersion );
5088
  End If;
3959 dpurdie 5089
 
4211 dpurdie 5090
  -- Generate Label for automated build with specified package version
5091
  IF cchangetype = 'F' Then
5092
    return (sPkgName ||'_'|| sPkgVersion ||'.WIP');
5093
  End If;
5094
 
3959 dpurdie 5095
	-- Generate Label for automated build
5096
	RETURN UPPER( sPkgName ||'.'|| nPvId || sVext ||'.WIP' );
5097
 
5098
END GET_AUTOMATED_LABEL;
4040 dpurdie 5099
 
1374 dpurdie 5100
/
4040 dpurdie 5101
--------------------------------------------------------
5102
--  DDL for Function GET_BUILD_NUMBER
5103
--------------------------------------------------------
5104
 
5172 dpurdie 5105
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_BUILD_NUMBER" (s_version IN VARCHAR2) RETURN VARCHAR2
1373 dpurdie 5106
IS
5107
/* ---------------------------------------------------------------------------
5108
    Version: 1.0.0
5109
   --------------------------------------------------------------------------- */
5110
BEGIN
5111
    IF is_number(s_version) AND LENGTH(s_version) > 3
5112
    THEN
5113
        RETURN MOD(TO_NUMBER(s_version), 1000);
5114
    ELSE
5115
        RETURN 0;
5116
    END IF;
5117
END get_build_number;
4040 dpurdie 5118
 
1374 dpurdie 5119
/
4040 dpurdie 5120
--------------------------------------------------------
5121
--  DDL for Function GET_PATCH_VERSION
5122
--------------------------------------------------------
5123
 
5172 dpurdie 5124
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_PATCH_VERSION" (s_version IN VARCHAR2) RETURN VARCHAR2
1373 dpurdie 5125
IS
5126
/* ---------------------------------------------------------------------------
3959 dpurdie 5127
    Version: 1.0.0
1373 dpurdie 5128
   --------------------------------------------------------------------------- */
5129
BEGIN
3959 dpurdie 5130
    IF is_number(s_version) AND LENGTH(s_version) > 3
1373 dpurdie 5131
    THEN
3959 dpurdie 5132
        RETURN FLOOR(TO_NUMBER(s_version) / 1000);
1373 dpurdie 5133
    ELSE
3959 dpurdie 5134
        RETURN s_version;
1373 dpurdie 5135
    END IF;
3959 dpurdie 5136
END get_patch_version;
4040 dpurdie 5137
 
1374 dpurdie 5138
/
4040 dpurdie 5139
--------------------------------------------------------
5140
--  DDL for Function GET_PV_FIRST_MODIFIED
5141
--------------------------------------------------------
5142
 
5172 dpurdie 5143
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" (v_pv_id NUMBER) RETURN DATE IS
3959 dpurdie 5144
  ret DATE;
1373 dpurdie 5145
BEGIN
3959 dpurdie 5146
  SELECT q.modified_stamp
5147
    INTO ret
5148
    FROM (
5149
            SELECT level AS lvl, pvc.pv_id, pvc.modified_stamp, pvc.change_type
5150
              FROM package_versions pvc
5151
              START WITH pvc.pv_id = v_pv_id
5152
            CONNECT BY NOCYCLE pvc.pv_id = PRIOR pvc.last_pv_id
5153
          ) Q
5154
  WHERE q.change_type IS NOT NULL
5155
    AND rownum = 1
5156
  ORDER BY q.lvl;
5157
 
5158
  RETURN ret;
5159
END;
4040 dpurdie 5160
 
1374 dpurdie 5161
/
5892 dpurdie 5162
 
5163
  GRANT EXECUTE ON "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" TO "DM_READONLY";
5164
  GRANT EXECUTE ON "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" TO "RM_READONLY";
5165
  GRANT EXECUTE ON "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 5166
--------------------------------------------------------
5167
--  DDL for Function GET_V_EXT
5168
--------------------------------------------------------
5169
 
5172 dpurdie 5170
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_V_EXT" (SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE) RETURN VARCHAR2 IS
3959 dpurdie 5171
 
1373 dpurdie 5172
/* ---------------------------------------------------------------------------
3959 dpurdie 5173
    Version: 3.0.0
1373 dpurdie 5174
   --------------------------------------------------------------------------- */
3959 dpurdie 5175
 
5176
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
5177
    lastDot NUMBER;
5178
 
1373 dpurdie 5179
BEGIN
3959 dpurdie 5180
    lastDot := INSTR (SSpkg_version, '.', -1);
5181
 
5182
    IF ( lastDot > 0 ) AND ( lastDot != LENGTH(SSpkg_version) )
1373 dpurdie 5183
    THEN
3959 dpurdie 5184
        -- YES dot separator found --
5185
        SSV_EXT := SUBSTR (SSpkg_version, lastDot, LENGTH(SSpkg_version)-lastDot+1);
5186
 
5187
        IF IS_VERSION_EXTENSION ( SSV_EXT )
5188
        THEN
5189
            RETURN SSV_EXT;
5190
        ELSE
5191
            RETURN NULL;
5192
        END IF;
5193
 
1373 dpurdie 5194
    ELSE
3959 dpurdie 5195
        -- NO dot separator found --
5196
        RETURN NULL;
1373 dpurdie 5197
    END IF;
3959 dpurdie 5198
 
5199
END GET_V_EXT;
4040 dpurdie 5200
 
1374 dpurdie 5201
/
4040 dpurdie 5202
--------------------------------------------------------
5203
--  DDL for Function IN_LIST_NUMBER
5204
--------------------------------------------------------
5205
 
5172 dpurdie 5206
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_NUMBER" ( sInList IN VARCHAR2 ) RETURN RELMGR_NUMBER_TAB_t IS
1373 dpurdie 5207
 
5208
/* ---------------------------------------------------------------------------
5209
    Version: 3.0.0
5210
   --------------------------------------------------------------------------- */
5211
 
5212
    sync_rtags		   RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
5213
	pos				   NUMBER;
3959 dpurdie 5214
	in_list			   VARCHAR2(4000) := sInList || ',';
1373 dpurdie 5215
 
5216
BEGIN
5217
 
5218
	IF NOT sInList IS NULL
5219
	THEN
5220
		LOOP
5221
	        EXIT WHEN in_list IS NULL;
5222
	        pos := INSTR ( in_list, ',' );
5223
	        sync_rtags.extend;
5224
	        sync_rtags(sync_rtags.count) := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
5225
	        in_list := SUBSTR ( in_list, pos+1 );
5226
		END LOOP;
5227
	END IF;
5228
 
5229
	RETURN sync_rtags;
3959 dpurdie 5230
END IN_LIST_NUMBER;
4040 dpurdie 5231
 
1374 dpurdie 5232
/
4040 dpurdie 5233
--------------------------------------------------------
5234
--  DDL for Function IN_LIST_NUMBER2
5235
--------------------------------------------------------
5236
 
5172 dpurdie 5237
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_NUMBER2" ( sInList IN VARCHAR2 ) RETURN RELMGR_NUMBER_TAB_t IS
1373 dpurdie 5238
 
5239
/* ---------------------------------------------------------------------------
5240
    Version: 3.0.0
5241
   --------------------------------------------------------------------------- */
5242
 
5243
    sync_rtags		   RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
5244
	pos				   NUMBER;
3959 dpurdie 5245
	in_list			   VARCHAR2(32767) := sInList || ',';
1373 dpurdie 5246
 
5247
BEGIN
5248
 
5249
	IF NOT sInList IS NULL
5250
	THEN
5251
		LOOP
5252
	        EXIT WHEN in_list IS NULL;
5253
	        pos := INSTR ( in_list, ',' );
5254
	        sync_rtags.extend;
5255
	        sync_rtags(sync_rtags.count) := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
5256
	        in_list := SUBSTR ( in_list, pos+1 );
5257
		END LOOP;
5258
	END IF;
5259
 
5260
	RETURN sync_rtags;
3959 dpurdie 5261
END IN_LIST_NUMBER2;
4040 dpurdie 5262
 
1374 dpurdie 5263
/
4040 dpurdie 5264
--------------------------------------------------------
5265
--  DDL for Function IN_LIST_VARCHAR2
5266
--------------------------------------------------------
5267
 
5172 dpurdie 5268
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_VARCHAR2" ( sInList IN VARCHAR2, cSeparator IN VARCHAR2 ) RETURN RELMGR_VARCHAR2_TAB_t IS
1373 dpurdie 5269
 
5270
/* ---------------------------------------------------------------------------
5271
    Version: 3.1
5272
   --------------------------------------------------------------------------- */
5273
 
5274
    cItemCollection	   RELMGR_VARCHAR2_TAB_t := RELMGR_VARCHAR2_TAB_t();
5275
	pos				   NUMBER;
5276
	in_list			   VARCHAR2(4000) := sInList || cSeparator;
5277
	val				   VARCHAR2(4000);
5278
 
5279
BEGIN
5280
 
5281
	IF NOT sInList IS NULL
5282
	THEN
5283
		LOOP
5284
	        EXIT WHEN in_list IS NULL;
5285
	        pos := INSTR ( in_list, cSeparator );
5286
			val := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
5287
 
5288
			IF (NOT val IS NULL) THEN
5289
		        cItemCollection.extend;
5290
		        cItemCollection(cItemCollection.count) := val;
5291
			END IF;
5292
 
5293
	        in_list := SUBSTR ( in_list, pos+1 );
5294
		END LOOP;
5295
	END IF;
5296
 
5297
	RETURN cItemCollection;
5298
END IN_LIST_VARCHAR2;
4040 dpurdie 5299
 
1374 dpurdie 5300
/
4040 dpurdie 5301
--------------------------------------------------------
5302
--  DDL for Function IS_NUMBER
5303
--------------------------------------------------------
5304
 
5172 dpurdie 5305
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IS_NUMBER" (p_val IN VARCHAR2) RETURN BOOLEAN
3959 dpurdie 5306
IS
5307
   temp_num NUMBER;
5308
/* ---------------------------------------------------------------------------
5309
    Version: 1.0.0
5310
   --------------------------------------------------------------------------- */
5311
BEGIN
5312
   temp_num := TO_NUMBER(p_val);
5313
   RETURN true;
5314
EXCEPTION WHEN VALUE_ERROR THEN
5315
   RETURN false;
5316
END IS_NUMBER;
4040 dpurdie 5317
 
3959 dpurdie 5318
/
4040 dpurdie 5319
--------------------------------------------------------
5320
--  DDL for Function IS_VERSION_EXTENSION
5321
--------------------------------------------------------
5322
 
5172 dpurdie 5323
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IS_VERSION_EXTENSION" (SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE) RETURN BOOLEAN
3959 dpurdie 5324
IS
5325
/* ---------------------------------------------------------------------------
5326
    Version: 3.0.0
5327
   --------------------------------------------------------------------------- */
1373 dpurdie 5328
 
3959 dpurdie 5329
BEGIN
5330
    IF LENGTH ( TRIM (TRANSLATE (SSV_EXT, '.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',' ') ) ) > 0
5331
    THEN
5332
        RETURN FALSE;
5333
    ELSE
5334
        RETURN TRUE;
5335
    END IF;
1373 dpurdie 5336
 
3959 dpurdie 5337
END IS_VERSION_EXTENSION;
4040 dpurdie 5338
 
1374 dpurdie 5339
/
4040 dpurdie 5340
--------------------------------------------------------
5341
--  DDL for Function ORA_SYSDATE
5342
--------------------------------------------------------
5343
 
5172 dpurdie 5344
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."ORA_SYSDATE" 
3959 dpurdie 5345
RETURN DATE
1373 dpurdie 5346
IS
3959 dpurdie 5347
/* ---------------------------------------------------------------------------
5348
    Version: 3.0.0
5349
   --------------------------------------------------------------------------- */
5350
BEGIN
1373 dpurdie 5351
 
3959 dpurdie 5352
    RETURN TO_DATE( TO_CHAR( SYSDATE,'DD-MON-YYYY' ),'DD-MON-YYYY' );
5353
END ORA_SYSDATE;
4040 dpurdie 5354
 
3959 dpurdie 5355
/
4040 dpurdie 5356
--------------------------------------------------------
5357
--  DDL for Function ORA_SYSDATETIME
5358
--------------------------------------------------------
5359
 
5172 dpurdie 5360
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."ORA_SYSDATETIME" 
3959 dpurdie 5361
RETURN DATE
5362
IS
5363
/* ---------------------------------------------------------------------------
5364
    Version: 3.0.0
5365
   --------------------------------------------------------------------------- */
5366
BEGIN
1373 dpurdie 5367
 
3959 dpurdie 5368
    RETURN TO_DATE( TO_CHAR( SYSDATE,'DD-MON-YYYY HH24:MI:SS' ),'DD-MON-YYYY HH24:MI:SS' );
5369
END ORA_SYSDATETIME;
4040 dpurdie 5370
 
3959 dpurdie 5371
/
4040 dpurdie 5372
--------------------------------------------------------
5373
--  DDL for Function PERL_DBD_TESTFUNC
5374
--------------------------------------------------------
5375
 
5172 dpurdie 5376
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."PERL_DBD_TESTFUNC" (a in integer, b in integer) return integer is c integer; begin if b is null then c := 0; else c := b; end if; return a * c + 1; end;
4040 dpurdie 5377
 
1374 dpurdie 5378
/
4040 dpurdie 5379
--------------------------------------------------------
5380
--  DDL for Function RELEASE_MODE
5381
--------------------------------------------------------
5382
 
5172 dpurdie 5383
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."RELEASE_MODE" ( nRtagId IN NUMBER ) RETURN CHAR IS
1373 dpurdie 5384
 
3959 dpurdie 5385
/* ---------------------------------------------------------------------------
5386
    Version: 3.0.0
5387
   --------------------------------------------------------------------------- */
1373 dpurdie 5388
 
3959 dpurdie 5389
   returnValue CHAR(1);
1373 dpurdie 5390
 
3959 dpurdie 5391
BEGIN
1373 dpurdie 5392
 
3959 dpurdie 5393
    /*--------------- Business Rules Here -------------------*/
5394
	/*-------------------------------------------------------*/
5395
 
5396
	-- Get release mode
5397
	SELECT rt.OFFICIAL INTO returnValue
5398
	  FROM RELEASE_TAGS rt
5399
	 WHERE rt.RTAG_ID = nRtagId;
5400
 
5401
	RETURN returnValue;
5402
 
5403
END RELEASE_MODE;
4040 dpurdie 5404
 
1374 dpurdie 5405
/
4040 dpurdie 5406
--------------------------------------------------------
5407
--  DDL for Package PK_APP_UTILS
5408
--------------------------------------------------------
5409
 
5172 dpurdie 5410
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_APP_UTILS" IS
1373 dpurdie 5411
/*
5412
------------------------------
5413
||  Last Modified:  S.Vukovic
5414
||  Modified Date:  26/Apr/2005
5415
||  Spec Version:   1.0
5416
------------------------------
5417
*/
5418
 
5419
	TYPE typeCur IS REF CURSOR;
5420
 
5421
    /*================================================================================================*/
5422
 
5423
	PROCEDURE GET_CURRENT_PARAMETERS ( ProjId IN VARCHAR2, RtagId IN VARCHAR2, records OUT typeCur);
5424
 
5425
	/*================================================================================================*/
5426
 
5427
END PK_APP_UTILS;
4040 dpurdie 5428
 
1374 dpurdie 5429
/
4040 dpurdie 5430
 
5892 dpurdie 5431
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_APP_UTILS" TO "DEPLOYMENT_MANAGER";
5432
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_APP_UTILS" TO "CODE_INSPECTION";
4040 dpurdie 5433
--------------------------------------------------------
5434
--  DDL for Package PK_BUILDAPI
5435
--------------------------------------------------------
5436
 
5172 dpurdie 5437
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_BUILDAPI" 
1373 dpurdie 5438
IS
5439
   /*================================================================================================*/
5440
   PROCEDURE add_product_component (
5441
      npvid           IN   NUMBER,
5442
      sosname         IN   VARCHAR2,
5443
      sorigfilepath   IN   VARCHAR2,
5444
      sfilename       IN   VARCHAR2,
5445
      sdestfilepath   IN   VARCHAR2,
5446
      nbytesize       IN   NUMBER,
5447
      scrccksum       IN   VARCHAR2
5448
   );
5449
 
5450
   PROCEDURE remove_all_product_components (
5451
      npvid     IN   NUMBER,
5452
      sosname   IN   VARCHAR2
5453
   );
5454
 
5455
   /*================================================================================================*/
5456
   FUNCTION get_osid (sosname IN VARCHAR2)
5457
      RETURN NUMBER;
5458
 
4308 dpurdie 5459
  /*================================================================================================*/
5460
    PROCEDURE update_build_service_info (
1373 dpurdie 5461
      sdatabaseserver   IN   VARCHAR2,
5462
      sarchiveserver    IN   VARCHAR2,
5463
      smailserver       IN   VARCHAR2,
5464
      smailsender       IN   VARCHAR2,
4211 dpurdie 5465
      faultmlist        IN   VARCHAR2,
1373 dpurdie 5466
      sdiskspace        IN   VARCHAR2,
5467
      ssbommanagement   IN   VARCHAR2
5468
   );
5469
 
5470
   /*================================================================================================*/
4040 dpurdie 5471
   PROCEDURE add_gbe_machtype (sgbevalue IN VARCHAR2, sgbeclass IN NUMBER);
1373 dpurdie 5472
 
5473
   /*================================================================================================*/
5474
   PROCEDURE remove_gbe_machtype (ngbe_id IN NUMBER);
5475
 
5476
   /*================================================================================================*/
4040 dpurdie 5477
   PROCEDURE update_gbe_machtype (ngbe_id IN NUMBER, sgbevalue IN VARCHAR2, sgbeclass IN NUMBER);
1373 dpurdie 5478
 
4040 dpurdie 5479
  /*================================================================================================*/
5480
   PROCEDURE add_buildmachine (sbmvalue IN VARCHAR2);
5481
 
1373 dpurdie 5482
   /*================================================================================================*/
4040 dpurdie 5483
   PROCEDURE remove_buildmachine (nbm_id IN NUMBER);
5484
 
5485
   /*================================================================================================*/
5486
   PROCEDURE update_buildmachine (nbm_id IN NUMBER, sbmvalue IN VARCHAR2);
5487
 
5488
   /*================================================================================================*/
1373 dpurdie 5489
   PROCEDURE delete_daemon (srconidlist IN VARCHAR2);
4308 dpurdie 5490
 
1373 dpurdie 5491
   /*================================================================================================*/
4308 dpurdie 5492
   PROCEDURE remove_daemon (srconidlist IN VARCHAR2);
1373 dpurdie 5493
 
5494
   /*================================================================================================*/
5495
   PROCEDURE insert_schedule_info (
5496
      dschedulepause     IN   DATE,
5497
      dscheduleresume    IN   DATE,
5498
      crepeat            IN   VARCHAR2,
5499
      cindefinitepause   IN   VARCHAR2
5500
   );
5501
 
5502
   /*================================================================================================*/
5503
   PROCEDURE delete_schedule (nscheduleid IN NUMBER);
5504
 
5505
   /*================================================================================================*/
5506
   PROCEDURE set_infinite_pause;
5507
 
5508
   /*================================================================================================*/
5509
   PROCEDURE set_resume;
5510
 
5511
   /*================================================================================================*/
5512
   PROCEDURE delete_out_of_date_schedule;
5513
 
5514
   /*================================================================================================*/
5515
   PROCEDURE set_daemon_resume (nrconid IN NUMBER);
5516
 
5517
   /*================================================================================================*/
5518
   PROCEDURE set_daemon_pause (nrconid IN NUMBER);
5519
 
5520
   /*================================================================================================*/
5521
   PROCEDURE set_daemon_disable (nrconid NUMBER);
5522
 
5523
   /*================================================================================================*/
5524
   PROCEDURE set_daemon_states (nrtagid NUMBER, nstate NUMBER);
5525
 
5526
   /*================================================================================================*/
5527
   PROCEDURE mark_daemon_inst_in_progress( nInstId IN NUMBER );
5528
   /*================================================================================================*/
5529
   PROCEDURE mark_daemon_inst_completed( nInstId IN NUMBER );
5530
   /*================================================================================================*/
5531
   FUNCTION get_daemon_inst(
5532
      nRtag_id IN NUMBER,
5533
      nInst_id IN OUT NUMBER,
5534
      nOp_code IN OUT NUMBER,
5535
      nPv_id OUT NUMBER,
5536
      nUser_id OUT NUMBER,
5537
      nInProgress OUT NUMBER
5538
   ) RETURN NUMBER;
5539
   /*================================================================================================*/
5540
   PROCEDURE cleanup_stranded_daemon_insts;
5541
   /*================================================================================================*/
5542
   PROCEDURE insert_daemon_inst(
5543
      nOp_code IN NUMBER,
5544
      nRtag_id IN NUMBER,
5545
      nPv_id IN NUMBER,
5546
      nSchedDate IN DATE,
5547
      nRepeatSecs IN NUMBER,
5548
      nAddedDate IN DATE,
5549
      nUser_id IN NUMBER
5550
   );
5551
   /*================================================================================================*/
5552
   PROCEDURE del_daemon_inst( nInstId IN NUMBER );
5553
   /*================================================================================================*/
5554
   PROCEDURE del_daemon_inst_by_rtag_pvid(
5555
      nOp_code IN NUMBER,
5556
      nRtag_id IN NUMBER,
5557
      nPv_id IN NUMBER
5558
   );
5559
   /*================================================================================================*/
5560
   PROCEDURE update_daemon_inst(
5561
      nInstId IN NUMBER,
5562
      nOp_code IN NUMBER,
5563
      nRtag_id IN NUMBER,
5564
      nPv_id IN NUMBER,
5565
      nSchedDate IN DATE,
5566
      nRepeatSecs IN NUMBER,
5567
      nAddedDate IN DATE,
5568
      nUser_id IN NUMBER
5569
   );
5570
   /*================================================================================================*/
5571
   FUNCTION daemon_ops_for_rtag_pvid(
5572
      nRtag_id IN NUMBER,
5573
      nPv_id IN NUMBER
5574
   ) RETURN VARCHAR2;
5575
   /*================================================================================================*/
5576
   FUNCTION daemon_ops_for_rtag(
5577
      nRtag_id IN NUMBER
5578
   ) RETURN VARCHAR2;
5579
   /*================================================================================================*/
5580
   PROCEDURE add_daemon_config (
5581
      nrtagid           IN   NUMBER,
5582
      nbmcon_id         IN   NUMBER,
5583
      sdaemon_mode      IN   VARCHAR2,
5584
      sgbebuildfilter   IN   VARCHAR2
5585
   );
5586
   /*================================================================================================*/
5587
   PROCEDURE update_daemon_config (
5588
      nrconid           IN   NUMBER,
5589
      nbmcon_id         IN   NUMBER,
5590
      sdaemon_mode      IN   VARCHAR2,
5591
      sgbebuildfilter   IN   VARCHAR2
5592
   );
5593
 
4308 dpurdie 5594
 /*================================================================================================*/
5595
   PROCEDURE duplicate_daemon_config (
5596
      nrtagid           IN   NUMBER,
5597
      nbmcon_id         IN   NUMBER,
5598
      sdaemonhostname   IN   VARCHAR2,
5599
      ngbe_id           IN   NUMBER,
5600
      sdaemon_mode      IN   VARCHAR2,
5601
      sgbebuildfilter   IN   VARCHAR2
5602
   );
5603
 
1373 dpurdie 5604
   /*================================================================================================*/
5605
   PROCEDURE add_build_machine (
5606
      sdisplay_name          IN   VARCHAR2,
5607
      smachine_hostname      IN   VARCHAR2,
5608
      ngbeid                 IN   NUMBER,
5172 dpurdie 5609
      sdescription           IN   VARCHAR2,
5610
      sactive                IN CHAR
1373 dpurdie 5611
   );
5612
   /*================================================================================================*/
5613
   PROCEDURE delete_build_machine (sbmcon_id_list IN VARCHAR2);
5614
   /*================================================================================================*/
5615
   PROCEDURE update_build_machine (
5616
      nbmcon_id              IN   NUMBER,
5617
      sdisplay_name          IN   VARCHAR2,
5618
      smachine_hostname      IN   VARCHAR2,
5619
      ngbeid                 IN   NUMBER,
5172 dpurdie 5620
      sdescription           IN   VARCHAR2,
5621
      sactive                IN CHAR
1373 dpurdie 5622
   );
4553 dpurdie 5623
   /*================================================================================================*/
5624
   PROCEDURE import_daemons ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER  );
5172 dpurdie 5625
   /*================================================================================================*/
5892 dpurdie 5626
   PROCEDURE set_finite_pause ( duration IN NUMBER  );
5627
   PROCEDURE set_build_plan (rtagId IN NUMBER, nStartIndex IN NUMBER, pvList IN VARCHAR2);
5172 dpurdie 5628
 
1373 dpurdie 5629
END pk_buildapi;
4040 dpurdie 5630
 
1374 dpurdie 5631
/
4040 dpurdie 5632
--------------------------------------------------------
5633
--  DDL for Package PK_ENVIRONMENT
5634
--------------------------------------------------------
5635
 
5172 dpurdie 5636
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_ENVIRONMENT" IS
1373 dpurdie 5637
/*
5638
------------------------------
3959 dpurdie 5639
||  Last Modified:  G.Huddy
5640
||  Modified Date:  28/May/2008
5641
||  Spec Version:   1.2
1373 dpurdie 5642
------------------------------
5643
*/
5644
 
3959 dpurdie 5645
	TYPE typeCur IS REF CURSOR;
5646
 
1373 dpurdie 5647
	/*================================================================================================*/
5648
 
3959 dpurdie 5649
	FUNCTION SELECT_ENVIRONMENT_AREA ( cDlock IN PACKAGE_VERSIONS.DLOCKED%TYPE ) RETURN NUMBER;
5650
	FUNCTION GET_PACKAGE_AREA ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5651
	FUNCTION GET_VIEW_LOCATION ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5384 dpurdie 5652
	PROCEDURE ADD_PACKAGE ( PvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, imode IN   CHAR default NULL );
5653
	PROCEDURE ADD_PACKAGE_BULK ( PvIdList IN VARCHAR2, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, imode IN CHAR default NULL );
3959 dpurdie 5654
	PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5655
	FUNCTION REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, ForceRemove IN CHAR ) RETURN NUMBER;
5656
 
5657
	PROCEDURE GET_ENVIRONMENT_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5658
	PROCEDURE GET_RELEASED_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5659
	PROCEDURE GET_PENDING_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5660
	PROCEDURE GET_WORK_IN_PROGRESS_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5661
 
5662
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
5663
 
5664
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5665
 
5666
 
5667
	PROCEDURE MAKE_RELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5668
	PROCEDURE MAKE_UNRELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5669
 
5670
	PROCEDURE MAKE_PENDING ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5671
	PROCEDURE MAKE_APPROVED ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5672
	PROCEDURE MAKE_REJECT ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5673
	PROCEDURE APPROVE_MERGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5674
 
5675
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
5676
 
5677
	PROCEDURE FIND_PACKAGE ( sKeyword IN VARCHAR2, nRtagId IN NUMBER, nSearchArea IN NUMBER, RecordSet OUT typeCur );
5678
	PROCEDURE FIND_FILE ( sKeyword IN VARCHAR2, nRtagId IN NUMBER, nSearchArea IN NUMBER, nPageSize IN NUMBER, RecordSet OUT typeCur );
5679
 
5680
	PROCEDURE AUTO_MAKE_RELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, VExt IN
5681
							 PACKAGE_VERSIONS.V_EXT%TYPE, SSV_EXT IN PACKAGE_VERSIONS.V_EXT%TYPE,
5682
							 CloneFromPvId IN NUMBER );
5683
 
5684
	PROCEDURE GET_PRODRELEASE_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5685
 
5686
	PROCEDURE GET_INTEGRATION_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5687
 
5688
	PROCEDURE GET_TEST_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5689
 
5690
	PROCEDURE GET_DEPLOY_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5691
 
5692
	PROCEDURE GET_REJECT_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
1373 dpurdie 5693
	/*================================================================================================*/
3959 dpurdie 5694
 
5695
END PK_ENVIRONMENT;
4040 dpurdie 5696
 
1374 dpurdie 5697
/
4040 dpurdie 5698
--------------------------------------------------------
5699
--  DDL for Package PK_LICENCING
5700
--------------------------------------------------------
5701
 
5172 dpurdie 5702
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_LICENCING" IS
3959 dpurdie 5703
/*
5704
------------------------------
5705
||  Last Modified:  G.Huddy
5706
||  Modified Date:  19/Aug/2008
5707
||  Spec Version:   1.0
5708
------------------------------
5709
*/
5710
 
5711
   TYPE typeCur IS REF CURSOR;
5712
 
5713
    /*================================================================================================*/
5714
   PROCEDURE ADD_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER );
5715
   PROCEDURE REMOVE_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER );
5716
   PROCEDURE CLONE_LICENCING( fromPvId IN NUMBER, toPvId IN NUMBER, UserId IN NUMBER );
5717
   FUNCTION  IS_LICENCED( PvId IN NUMBER, licenceId IN NUMBER) RETURN NUMBER;
5718
   PROCEDURE REMOVE_ALL_LICENCING( PvId IN NUMBER, UserId IN NUMBER );
5719
   /*================================================================================================*/
5720
 
5721
END PK_LICENCING;
4040 dpurdie 5722
 
3959 dpurdie 5723
/
4040 dpurdie 5724
--------------------------------------------------------
5725
--  DDL for Package PK_PACKAGE
5726
--------------------------------------------------------
5727
 
5172 dpurdie 5728
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PACKAGE" 
1373 dpurdie 5729
IS
5730
/*
5731
------------------------------
3959 dpurdie 5732
||  Last Modified:  Jeremy Tweddle
5733
||  Modified Date:  24/08/2007
1373 dpurdie 5734
||
5735
------------------------------
5736
*/
5737
   TYPE typecur IS REF CURSOR;
5502 dpurdie 5738
 
5739
   /*
5740
    * Carriage-return line-feed character sequence.
5741
    */
5742
   CRLF CONSTANT VARCHAR2(2 CHAR) := unistr('\000D\000A');
1373 dpurdie 5743
 
5744
/*================================================================================================*/
5745
   PROCEDURE new_version (
5746
      nlastpvid                   IN       NUMBER,
5747
      snewpkgversion              IN       VARCHAR2 DEFAULT NULL,
5748
      cbuildtype                  IN       CHAR,
4211 dpurdie 5749
      cchangetype                 IN       CHAR,
1373 dpurdie 5750
      nsettopvid                  IN       NUMBER DEFAULT NULL,
5751
      nrtagid                     IN       NUMBER,
5752
      nuserid                     IN       NUMBER,
5753
      enumissues_state_imported   IN       NUMBER,
5754
      returnpvid                  OUT      NUMBER
5755
   );
5756
 
5757
   PROCEDURE change_state (
5758
      pvid       IN   NUMBER,
5759
      newstate   IN   package_versions.dlocked%TYPE,
5760
      userid     IN   NUMBER
5761
   );
5762
 
5763
   PROCEDURE new_patch (
5764
      snewpatchversion   IN       package_versions.pkg_version%TYPE,
5765
      nparentpvid        IN       NUMBER,
5766
      spatchidlist       IN       VARCHAR2,
5767
      nuserid            IN       NUMBER,
5768
      returnpatchid      OUT      NUMBER
5769
   );
5770
 
5771
   PROCEDURE obsolete_patch (
5772
      patchid            IN   NUMBER,
5773
      isobsolete         IN   CHAR,
5774
      obsoletecomments   IN   VARCHAR2,
5775
      userid             IN   NUMBER
5776
   );
5777
 
5778
   PROCEDURE obsolete_patches (
5779
      spatchidlist       IN   VARCHAR2,
5780
      isobsolete         IN   CHAR,
5781
      obsoletecomments   IN   VARCHAR2,
5782
      userid             IN   NUMBER
5783
   );
5784
 
5785
   PROCEDURE destroy_package (
5786
      pvid               IN       NUMBER,
5787
      overridewarnings   IN       CHAR DEFAULT 'N',
5788
      problemstring      OUT      VARCHAR2
5789
   );
5790
 
5791
   PROCEDURE add_process (
5792
      nprocid         IN   processes.proc_id%TYPE,
5793
      shealthtag      IN   processes.proc_name%TYPE,
5794
      sprocdesc       IN   processes.proc_description%TYPE,
5795
      scmdinterface   IN   processes.run_as%TYPE,
5796
      spkgowner       IN   processes.pkg_owner%TYPE,
5797
      sisinterface    IN   processes.is_interface%TYPE,
5798
      npvid           IN   package_processes.pv_id%TYPE,
5799
      nuserid         IN   NUMBER
5800
   );
5801
 
5802
   PROCEDURE add_package_process (
5803
      nprocidlist   IN   VARCHAR2,
5804
      npvid         IN   package_processes.pv_id%TYPE,
5805
      nuserid       IN   NUMBER
5806
   );
5807
 
5808
 
5809
 
5810
   PROCEDURE remove_process (
5811
      nprocid   IN   package_processes.proc_id%TYPE,
5812
      npvid     IN   package_processes.pv_id%TYPE,
5813
      nuserid   IN   NUMBER
5814
   );
5815
 
5816
   PROCEDURE move_package (
5817
   	  npvid  			  IN package_versions.pv_id%TYPE,
5818
	  nrtagid 			  IN release_tags.rtag_id%TYPE,
5819
	  nnewrtagid 		  IN release_tags.rtag_id%TYPE,
5820
	  nuserid			  IN NUMBER		 
5821
   ); 
5822
 
3959 dpurdie 5823
   PROCEDURE modify_product_state (
1373 dpurdie 5824
   	  npvid IN package_versions.pv_id%TYPE,
3959 dpurdie 5825
	  nrtagid IN release_tags.rtag_id%TYPE,
1373 dpurdie 5826
	  nstateid IN product_states.state_id%TYPE,
5827
	  nuserid IN NUMBER
5828
   );
3959 dpurdie 5829
 
5830
   PROCEDURE add_code_review_url (
5831
        npvid           IN    NUMBER,
5832
        nprojid         IN    NUMBER,
5833
        surl            IN    VARCHAR2,
5834
        sreason         IN    VARCHAR2,
4553 dpurdie 5835
        ddateofreview   IN    VARCHAR2
3959 dpurdie 5836
   );
5837
 
5838
   PROCEDURE update_code_review_url (
5839
        ncrid           IN    NUMBER,
5840
        nprojid         IN    NUMBER,
5841
        surl            IN    VARCHAR2,
4553 dpurdie 5842
        sreason         IN    VARCHAR2,
5843
        ddateofreview   IN    VARCHAR2
3959 dpurdie 5844
   );
5845
 
5846
   PROCEDURE remove_code_review_url (
5847
        ncrid           IN    NUMBER
5848
   );
1373 dpurdie 5849
/*================================================================================================*/
3959 dpurdie 5850
END pk_package;
4040 dpurdie 5851
 
1374 dpurdie 5852
/
5892 dpurdie 5853
 
5854
  GRANT EXECUTE, DEBUG ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";
5855
  GRANT EXECUTE, DEBUG ON "RELEASE_MANAGER"."PK_PACKAGE" TO "CODE_INSPECTION";
4040 dpurdie 5856
--------------------------------------------------------
5857
--  DDL for Package PK_PLANNED
5858
--------------------------------------------------------
5859
 
5172 dpurdie 5860
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PLANNED" IS
1373 dpurdie 5861
/*
5862
------------------------------
5863
||  Last Modified:  G.Huddy
5864
||  Modified Date:  28/May/2008
5865
||  Spec Version:   1.1
5866
------------------------------
5867
*/
5868
 
5869
	TYPE typeCur IS REF CURSOR;
5870
 
5871
    /*================================================================================================*/
5384 dpurdie 5872
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, OPR IN CHAR DEFAULT 'R'  );
1373 dpurdie 5873
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5874
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5875
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
5876
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
5877
	PROCEDURE MERGE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, mergeOperation IN CHAR);
5878
	/*================================================================================================*/
5879
 
5880
END PK_PLANNED;
4040 dpurdie 5881
 
1374 dpurdie 5882
/
4040 dpurdie 5883
--------------------------------------------------------
5884
--  DDL for Package PK_PROJECT
5885
--------------------------------------------------------
5886
 
5172 dpurdie 5887
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PROJECT" IS
1373 dpurdie 5888
 
3959 dpurdie 5889
    TYPE typecur IS REF CURSOR;
1373 dpurdie 5890
 
3959 dpurdie 5891
    /*------------------------------------------------------------------------*/
5892
    PROCEDURE update_base_url (
5893
        nprojid   IN  projects.proj_id%TYPE,
5894
        sbaseurl  IN  VARCHAR2
5895
    );
5896
    /*------------------------------------------------------------------------*/
5897
    PROCEDURE update_project_config (
5898
    nprojid   IN  projects.proj_id%TYPE,
5899
    sbaseurl  IN  VARCHAR2,
5900
    sjirakey  IN  VARCHAR2
5901
    );
5902
    /*------------------------------------------------------------------------*/
1373 dpurdie 5903
 
3959 dpurdie 5904
    END pk_project;
4040 dpurdie 5905
 
1374 dpurdie 5906
/
4040 dpurdie 5907
--------------------------------------------------------
5908
--  DDL for Package PK_RELEASE
5909
--------------------------------------------------------
5910
 
5172 dpurdie 5911
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_RELEASE" IS
1373 dpurdie 5912
/*
5913
------------------------------
5914
||  Last Modified:  S.Vukovic
5915
||  Modified Date:  12/Sep/2005
5916
||  Body Version:   3.0
5917
------------------------------
5918
*/
5919
 
5920
	TYPE typeCur IS REF CURSOR;
5921
 
5922
    /*================================================================================================*/
5502 dpurdie 5923
	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 5924
	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 5925
	PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER  );
5926
	PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER );
5502 dpurdie 5927
	PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER,nMode IN NUMBER default 0 );
1373 dpurdie 5928
	PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER );
5929
	FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR ) RETURN NUMBER;
5930
	PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER );
5502 dpurdie 5931
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
1373 dpurdie 5932
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5933
	--PROCEDURE ADD_DEPRECATE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, nPkgId IN NUMBER );
5934
	PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5935
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5936
	PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5937
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5938
	PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER );
5939
	PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER );
5940
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
5941
	PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 );
5942
	PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER );
5943
	PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR );
5172 dpurdie 5944
  PROCEDURE SET_RELEASE_MODIFIED (nRtagId IN NUMBER );
5945
  PROCEDURE ADD_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER, nUserId IN NUMBER, bDelete IN  NUMBER, nInsertCount OUT NUMBER, curReturn OUT typeCur );
5946
  PROCEDURE REMOVE_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER );
5947
  FUNCTION CAN_ADD_PKG_TO_RELEASE ( nRtagId IN NUMBER, nPvid in NUMBER ) RETURN NUMBER;
5502 dpurdie 5948
 
1373 dpurdie 5949
	/*================================================================================================*/
5384 dpurdie 5950
 
1373 dpurdie 5951
END PK_RELEASE;
4040 dpurdie 5952
 
1374 dpurdie 5953
/
4040 dpurdie 5954
--------------------------------------------------------
5955
--  DDL for Package PK_RMAPI
5956
--------------------------------------------------------
5957
 
5172 dpurdie 5958
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_RMAPI" 
3959 dpurdie 5959
IS
5960
   TYPE typecur IS REF CURSOR;
1373 dpurdie 5961
 
3959 dpurdie 5962
   FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)
5963
      RETURN typecur;
1373 dpurdie 5964
 
3959 dpurdie 5965
   FUNCTION wip_iteration_package (
5966
      projname        VARCHAR2,
5967
      iterationname   VARCHAR2,
5968
      pkgname         VARCHAR2
5969
   )
5970
      RETURN typecur;
1373 dpurdie 5971
 
3959 dpurdie 5972
   FUNCTION auto_make_vcsrelease (
5973
      rtagid                   IN   NUMBER,
5974
      pkgname                  IN   VARCHAR2,
5975
      vext                     IN   VARCHAR2,
5976
      newpkgversion            IN   VARCHAR2,
5977
      vcstag                   IN   VARCHAR2,
5978
      dependenciesimportlist   IN   VARCHAR2,
5979
      isrippled                IN   NUMBER,
5980
      username                 IN   VARCHAR2
5981
   )
5982
      RETURN NUMBER;
1373 dpurdie 5983
 
5984
 
3959 dpurdie 5985
   PROCEDURE import_dependencies (
5986
      pvid                     IN   NUMBER,
5987
      dependenciesimportlist   IN   VARCHAR2,
5988
      userid                   IN   NUMBER
5989
   );
1373 dpurdie 5990
 
3959 dpurdie 5991
   FUNCTION return_last_package_version (pkgname IN VARCHAR2, rtagid IN NUMBER)
5992
      RETURN VARCHAR2;
1373 dpurdie 5993
 
3959 dpurdie 5994
   FUNCTION return_wip (pkgname IN VARCHAR2, rtagid IN NUMBER)
5995
      RETURN VARCHAR2;
1373 dpurdie 5996
 
3959 dpurdie 5997
   PROCEDURE update_dash_board (rtagid IN NUMBER);
1373 dpurdie 5998
 
3959 dpurdie 5999
   FUNCTION exclude_from_build (
6000
      pvid          IN   NUMBER,
6001
      spkgversion   IN   VARCHAR2,
6002
      rtagid        IN   NUMBER,
6003
      username      IN   VARCHAR2
6004
   )
6005
      RETURN NUMBER;
1373 dpurdie 6006
 
3959 dpurdie 6007
   FUNCTION exclude_indirect_from_build (
6008
      pvid          IN   NUMBER,
6009
      spkgversion   IN   VARCHAR2,
6010
      rtagid        IN   NUMBER,
6011
      username      IN   VARCHAR2,
6012
      rootpvid      IN   NUMBER,
6013
      rootcause     IN   VARCHAR2,
6014
      rootfile      IN   VARCHAR2
6015
   )
6016
      RETURN NUMBER;
1373 dpurdie 6017
 
3959 dpurdie 6018
   PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2);
1373 dpurdie 6019
 
3959 dpurdie 6020
   FUNCTION insert_package_metrics (
6021
      rtagid IN NUMBER,
6022
      pkgname IN VARCHAR2,
6023
      vext IN VARCHAR2,
6024
      metricstring IN VARCHAR2
6025
   )
6026
      RETURN NUMBER;
1373 dpurdie 6027
 
3959 dpurdie 6028
   PROCEDURE update_release_metrics (rtagid IN NUMBER);
1373 dpurdie 6029
 
3959 dpurdie 6030
   FUNCTION return_vcs_tag(pvid IN NUMBER) RETURN VARCHAR2;
6031
 
6032
   PROCEDURE update_vcs_details(ipv_id IN NUMBER, vcstag IN VARCHAR2, user_id IN NUMBER);
6033
 
6034
   FUNCTION isSVN( pkgid IN NUMBER ) RETURN NUMBER;
6035
 
6036
   FUNCTION isSVNbyName( pkgname IN VARCHAR2 ) RETURN NUMBER;
6037
 
5172 dpurdie 6038
   FUNCTION new_build_instance( rtag_id IN NUMBER, pv_id IN NUMBER, reason IN CHAR ) return NUMBER;
6039
 
6040
   FUNCTION update_build_instance( nbuild_id IN NUMBER, npv_id IN NUMBER default null, nstate IN CHAR default null ) return NUMBER;
6041
 
6042
   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;
6043
 
6044
 
3959 dpurdie 6045
END pk_rmapi;
4040 dpurdie 6046
 
1374 dpurdie 6047
/
5892 dpurdie 6048
 
6049
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "DM_READONLY";
6050
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "MS_READONLY";
6051
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "RM_EXTRACT_PV";
6052
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "RM_READONLY";
4040 dpurdie 6053
--------------------------------------------------------
6054
--  DDL for Package PK_WORK_IN_PROGRESS
6055
--------------------------------------------------------
6056
 
5172 dpurdie 6057
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS" IS
1373 dpurdie 6058
/*
6059
------------------------------
6060
||  Last Modified:  S.Vukovic
3959 dpurdie 6061
||  Modified Date:  2/May/2005
6062
||  Spec Version:   1.0
1373 dpurdie 6063
------------------------------
6064
*/
6065
 
6066
	TYPE typeCur IS REF CURSOR;
6067
 
6068
    /*================================================================================================*/
6069
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
6070
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
3959 dpurdie 6071
	PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER );
6072
 
1373 dpurdie 6073
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
3959 dpurdie 6074
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );	
1373 dpurdie 6075
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
6076
	/*================================================================================================*/
3959 dpurdie 6077
 
6078
END PK_WORK_IN_PROGRESS;
4040 dpurdie 6079
 
1374 dpurdie 6080
/
4040 dpurdie 6081
--------------------------------------------------------
6082
--  DDL for Package RM_ISSUES
6083
--------------------------------------------------------
6084
 
5172 dpurdie 6085
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."RM_ISSUES" AS
1373 dpurdie 6086
 
3959 dpurdie 6087
	TYPE T_Cur IS REF CURSOR;
1373 dpurdie 6088
 
3959 dpurdie 6089
	FUNCTION VerIsGrtrThanOrEqlToStart( XXstart IN NUMBER, XX IN NUMBER, YYstart IN NUMBER, YY IN NUMBER, ZZstart IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER;
6090
	FUNCTION VersionIsBetween( version IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR ) RETURN NUMBER;
6091
	FUNCTION VerIsLessThanOrEqlToEnd( XXend IN NUMBER, XX IN NUMBER, YYend IN NUMBER, YY IN NUMBER, ZZend IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER;
6092
	FUNCTION GetPkgId( pkgName IN VARCHAR2 ) RETURN NUMBER;
1373 dpurdie 6093
 
3959 dpurdie 6094
	PROCEDURE AllIssues( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 );
6095
	PROCEDURE LoadIssuesTable( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 );
6096
	PROCEDURE InsertIssuesForDepends( pvID IN NUMBER, top_pkgID IN NUMBER, top_pkgName IN VARCHAR2, top_pvID IN NUMBER, top_pkgVer IN VARCHAR2 );
1373 dpurdie 6097
 
3959 dpurdie 6098
END Rm_Issues;
4040 dpurdie 6099
 
3959 dpurdie 6100
/
4040 dpurdie 6101
--------------------------------------------------------
6102
--  DDL for Package Body PK_APP_UTILS
6103
--------------------------------------------------------
6104
 
5172 dpurdie 6105
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_APP_UTILS" IS
1373 dpurdie 6106
 
3959 dpurdie 6107
/*
6108
------------------------------
6109
||  Last Modified:  S.Vukovic
6110
||  Modified Date:  26/Apr/2005
6111
||  Body Version:   1.0
6112
------------------------------
6113
*/
1373 dpurdie 6114
 
6115
 
6116
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 6117
PROCEDURE GET_CURRENT_PARAMETERS ( ProjId IN VARCHAR2, RtagId IN VARCHAR2, records OUT typeCur)   IS
1373 dpurdie 6118
 
6119
 
6120
BEGIN
6121
 
6122
 
3959 dpurdie 6123
	IF (NOT RtagId IS NULL) THEN
6124
		-- Case with RTAG_ID present
6125
		OPEN records FOR
6126
		SELECT rt.PROJ_ID,
6127
			   rt.RTAG_ID AS RTAG_ID
6128
		  FROM RELEASE_TAGS rt
6129
		 WHERE rt.RTAG_ID = TO_NUMBER(RtagId);
1373 dpurdie 6130
 
3959 dpurdie 6131
	ELSIF (NOT ProjId IS NULL) THEN
6132
		-- Case with PROJ_ID present
6133
		OPEN records FOR
6134
		SELECT TO_NUMBER(ProjId) AS PROJ_ID,
6135
			   -1 AS RTAG_ID
6136
		  FROM DUAL;
1373 dpurdie 6137
 
3959 dpurdie 6138
	ELSE
6139
		-- Case with none present
6140
		OPEN records FOR
6141
		SELECT -1 AS PROJ_ID,
6142
			   -1 AS RTAG_ID
6143
		  FROM DUAL;
1373 dpurdie 6144
 
3959 dpurdie 6145
	END IF;
1373 dpurdie 6146
 
6147
 
6148
 
6149
 
3959 dpurdie 6150
   	--RETURN records;
1373 dpurdie 6151
 
6152
END;
6153
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 6154
END PK_APP_UTILS;
4040 dpurdie 6155
 
1374 dpurdie 6156
/
4040 dpurdie 6157
 
5892 dpurdie 6158
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_APP_UTILS" TO "DEPLOYMENT_MANAGER";
6159
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_APP_UTILS" TO "CODE_INSPECTION";
4040 dpurdie 6160
--------------------------------------------------------
6161
--  DDL for Package Body PK_BUILDAPI
6162
--------------------------------------------------------
6163
 
5172 dpurdie 6164
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_BUILDAPI" 
1373 dpurdie 6165
IS
6166
   /*-------------------------------------------------------------------------------------------------------*/
6167
   PROCEDURE add_product_component (
6168
      npvid           IN   NUMBER,
6169
      sosname         IN   VARCHAR2,
6170
      sorigfilepath   IN   VARCHAR2,
6171
      sfilename       IN   VARCHAR2,
6172
      sdestfilepath   IN   VARCHAR2,
6173
      nbytesize       IN   NUMBER,
6174
      scrccksum       IN   VARCHAR2
6175
   )
6176
   IS
6177
      nosid   NUMBER;
6178
   BEGIN
6179
      /*--------------- Business Rules Here -------------------*/
6180
      -- OS Name Requirements --
6181
      IF (sosname IS NULL)
6182
      THEN
6183
         raise_application_error (-20000, 'OsName cannot be NULL.');
6184
      END IF;
6185
 
6186
      -- File Requirements --
6187
      IF (NOT sfilename IS NULL)
6188
      THEN
6189
         IF (nbytesize IS NULL)
6190
         THEN
6191
            raise_application_error (-20000, 'Byte Size cannot be NULL.');
6192
         ELSIF (scrccksum IS NULL)
6193
         THEN
6194
            raise_application_error (-20000, 'CRC CKSUM cannot be NULL.');
6195
         END IF;
6196
      END IF;
6197
 
6198
      -- Folder Requirements --
6199
      -- No requirements for now.
6200
 
6201
      /*-------------------------------------------------------*/
6202
 
6203
      -- Get OsId
6204
      nosid := get_osid (sosname);
6205
 
6206
      -- Insert component entry
6207
      INSERT INTO product_components
6208
                  (pv_id, os_id, file_path, file_name, destination_path,
6209
                  byte_size, crc_cksum
6210
                  )
6211
         VALUES (npvid, nosid, sorigfilepath, sfilename, sdestfilepath,
6212
                  nbytesize, scrccksum
6213
                  );
6214
   EXCEPTION
6215
      WHEN DUP_VAL_ON_INDEX
6216
      THEN
6217
         raise_application_error (-20000,
6218
                                 'Cannot have duplicate product components.'
6219
                                 );
6220
   END;
6221
 
6222
/*-------------------------------------------------------------------------------------------------------*/
6223
   PROCEDURE remove_all_product_components (
6224
      npvid     IN   NUMBER,
6225
      sosname   IN   VARCHAR2
6226
   )
6227
   IS
6228
      nosid   NUMBER;
6229
   BEGIN
6230
/*--------------- Business Rules Here -------------------*/
6231
/*-------------------------------------------------------*/
6232
 
6233
      -- Get OsId
6234
      nosid := get_osid (sosname);
6235
 
6236
      -- Delete component entry
6237
      DELETE FROM product_components pc
6238
            WHERE pc.pv_id = npvid AND pc.os_id = nosid;
6239
   END;
6240
 
6241
/*-------------------------------------------------------------------------------------------------------*/
6242
   FUNCTION get_osid (sosname IN VARCHAR2)
6243
      RETURN NUMBER
6244
   IS
6245
      code   NUMBER;
6246
   BEGIN
6247
      -- Get Platform Code --
6248
      SELECT pf.code
6249
      INTO code
6250
      FROM platforms pf
6251
      WHERE UPPER (pf.NAME) = UPPER (sosname);
6252
 
6253
      RETURN code;
6254
   EXCEPTION
6255
      WHEN NO_DATA_FOUND
6256
      THEN
6257
         raise_application_error
6258
            (-20000,
6259
               'Platform '
6260
            || sosname
6261
            || ' is not valid. It needs to be added to PLATFORMS table in Release Manager.'
6262
            );
6263
         RAISE;
6264
   END;
6265
 
6266
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 6267
 PROCEDURE update_build_service_info (
1373 dpurdie 6268
      sdatabaseserver   IN   VARCHAR2,
6269
      sarchiveserver    IN   VARCHAR2,
6270
      smailserver       IN   VARCHAR2,
6271
      smailsender       IN   VARCHAR2,
4211 dpurdie 6272
      faultmlist        IN   VARCHAR2,
1373 dpurdie 6273
      sdiskspace        IN   VARCHAR2,
6274
      ssbommanagement   IN   VARCHAR2
6275
   )
6276
   IS
6277
   BEGIN
6278
      UPDATE build_service_config
6279
         SET config = sdatabaseserver
6280
      WHERE service = 'DATABASE SERVER';
6281
 
6282
      UPDATE build_service_config
6283
         SET config = sarchiveserver
6284
      WHERE service = 'ARCHIVE SERVER';
6285
 
6286
      UPDATE build_service_config
6287
         SET config = smailserver
6288
      WHERE service = 'MAIL SERVER';
6289
 
6290
      UPDATE build_service_config
6291
         SET config = smailsender
6292
      WHERE service = 'BUILD FAILURE MAIL SENDER';
6293
 
6294
      UPDATE build_service_config
4211 dpurdie 6295
         SET config = faultmlist
6296
      WHERE service = 'FAULT EMAIL ADDRESS LIST';
6297
 
6298
      UPDATE build_service_config
1373 dpurdie 6299
         SET config = sdiskspace
6300
      WHERE service = 'DPKG_ARCHIVE DISK SPACE USED';
6301
 
6302
      UPDATE build_service_config
6303
         SET config = ssbommanagement
6304
      WHERE service = 'SBOM MANAGEMENT';
6305
   END;
4308 dpurdie 6306
 
1373 dpurdie 6307
 
6308
 
6309
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 6310
   PROCEDURE add_gbe_machtype (sgbevalue IN VARCHAR2, sgbeclass IN NUMBER)
1373 dpurdie 6311
   IS
6312
      gbe_id   NUMBER;
6313
   BEGIN
6314
      -- Get GBE_ID
6315
      SELECT seq_gbe_id.NEXTVAL
6316
      INTO gbe_id
6317
      FROM DUAL;
6318
 
6319
      INSERT INTO gbe_machtype
4040 dpurdie 6320
                  (gbe_id, gbe_value, bm_id )
6321
         VALUES (gbe_id, sgbevalue, sgbeclass );
1373 dpurdie 6322
   END;
6323
 
6324
/*-------------------------------------------------------------------------------------------------------*/
6325
   PROCEDURE remove_gbe_machtype (ngbe_id IN NUMBER)
6326
   IS
6327
   BEGIN
6328
      DELETE FROM gbe_machtype
6329
            WHERE gbe_id = ngbe_id;
6330
   END;
6331
 
6332
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 6333
   PROCEDURE update_gbe_machtype (ngbe_id IN NUMBER, sgbevalue IN VARCHAR2, sgbeclass IN NUMBER)
1373 dpurdie 6334
   IS
6335
   BEGIN
6336
      UPDATE gbe_machtype
4040 dpurdie 6337
         SET gbe_value = sgbevalue,
6338
             bm_id = sgbeclass
1373 dpurdie 6339
      WHERE gbe_id = ngbe_id;
6340
   END;
6341
 
6342
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 6343
PROCEDURE add_buildmachine (sbmvalue IN VARCHAR2)
6344
   IS
6345
      bm_id   NUMBER;
6346
   BEGIN
6347
      -- Get BM_ID
6348
      SELECT seq_bm_id.NEXTVAL
6349
      INTO bm_id
6350
      FROM DUAL;
6351
 
6352
      INSERT INTO build_machines
6353
                  (bm_id, bm_name)
6354
         VALUES (bm_id, sbmvalue );
6355
   END;
6356
 
6357
/*-------------------------------------------------------------------------------------------------------*/
6358
   PROCEDURE remove_buildmachine (nbm_id IN NUMBER)
6359
   IS
6360
   BEGIN
6361
      DELETE FROM build_machines
6362
            WHERE bm_id = nbm_id;
6363
   END;
6364
 
6365
/*-------------------------------------------------------------------------------------------------------*/
6366
   PROCEDURE update_buildmachine (nbm_id IN NUMBER, sbmvalue IN VARCHAR2) 
6367
   IS
6368
   BEGIN
6369
      UPDATE build_machines
6370
         SET bm_name = sbmvalue
6371
         WHERE bm_id = nbm_id;
6372
   END;
6373
 
6374
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 6375
   PROCEDURE delete_daemon (srconidlist IN VARCHAR2)
6376
   IS
6377
   BEGIN
6378
      -- Entries in the daemon_action_log, run_level and abt_action_log tables must be deleted first.
6379
      DELETE FROM daemon_action_log
6380
            WHERE rcon_id IN (
6381
                     SELECT *
6382
                     FROM THE
6383
                              (SELECT CAST
6384
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6385
                                          )
6386
                                 FROM DUAL
6387
                              ));
6388
 
6389
      DELETE FROM run_level
6390
            WHERE rcon_id IN (
6391
                     SELECT *
6392
                     FROM THE
6393
                              (SELECT CAST
6394
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6395
                                          )
6396
                                 FROM DUAL
6397
                              ));
6398
 
6399
      DELETE FROM abt_action_log
6400
            WHERE rcon_id IN (
6401
                     SELECT *
6402
                     FROM THE
6403
                              (SELECT CAST
6404
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6405
                                          )
6406
                                 FROM DUAL
6407
                              ));
6408
 
6409
      -- Once entries in daemon_action_log, run_level and abt_action_log are removed, the daemon is deleted.
6410
      DELETE FROM release_config
6411
            WHERE rcon_id IN (
6412
                     SELECT *
6413
                     FROM THE
6414
                              (SELECT CAST
6415
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6416
                                          )
6417
                                 FROM DUAL
6418
                              ));
6419
   END;
6420
 
6421
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 6422
   PROCEDURE remove_daemon (srconidlist IN VARCHAR2)
1373 dpurdie 6423
   IS
4308 dpurdie 6424
   oRconIdList RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
6425
 
1373 dpurdie 6426
   BEGIN
4308 dpurdie 6427
 
6428
   oRconIdList := IN_LIST_NUMBER ( srconidlist );
6429
 
6430
      -- Break the linkage between the release_config and the build_machine_config
6431
 
6432
      -- Delete the linkage between the two tables.
6433
       UPDATE release_config
6434
         SET daemon_hostname = NULL,
6435
             bmcon_id = NULL 
6436
      WHERE rcon_id IN ( SELECT * FROM TABLE ( CAST ( oRconIdList AS RELMGR_NUMBER_TAB_t ) ) );
1373 dpurdie 6437
   END;
6438
 
6439
/*-------------------------------------------------------------------------------------------------------*/
6440
   PROCEDURE insert_schedule_info (
6441
      dschedulepause     IN   DATE,
6442
      dscheduleresume    IN   DATE,
6443
      crepeat            IN   VARCHAR2,
6444
      cindefinitepause   IN   VARCHAR2
6445
   )
6446
   IS
6447
      nscheduledid   NUMBER;
6448
   BEGIN
6449
      -- Get Next Available Scheduled Id
6450
      SELECT seq_scheduled_id.NEXTVAL
6451
      INTO nscheduledid
6452
      FROM DUAL;
6453
 
6454
      INSERT INTO run_level_schedule
6455
         VALUES (nscheduledid, dschedulepause, dscheduleresume, crepeat,
6456
                  cindefinitepause);
6457
   END;
6458
 
6459
/*-------------------------------------------------------------------------------------------------------*/
6460
   PROCEDURE delete_schedule (nscheduleid IN NUMBER)
6461
   IS
6462
   BEGIN
6463
      DELETE FROM run_level_schedule
6464
            WHERE scheduled_id = nscheduleid;
6465
   END;
6466
 
6467
/*-------------------------------------------------------------------------------------------------------*/
6468
   PROCEDURE set_infinite_pause
6469
   IS
6470
      nscheduledid   NUMBER;
6471
   BEGIN
6472
      -- Get Next Available Scheduled Id
6473
      SELECT seq_scheduled_id.NEXTVAL
6474
      INTO nscheduledid
6475
      FROM DUAL;
6476
 
6477
      INSERT INTO run_level_schedule
5172 dpurdie 6478
         VALUES (nscheduledid, ora_sysdatetime, NULL, NULL, 'P');
1373 dpurdie 6479
   END;
5172 dpurdie 6480
 
6481
/*-------------------------------------------------------------------------------------------------------*/
6482
   PROCEDURE set_finite_pause (duration IN NUMBER)
6483
   IS
6484
      nscheduledid   NUMBER;
6485
      currentDate    DATE := ora_sysdatetime;
6486
   BEGIN
6487
 
6488
      -- Get Next Available Scheduled Id
6489
      SELECT seq_scheduled_id.NEXTVAL
6490
      INTO nscheduledid
6491
      FROM DUAL;
1373 dpurdie 6492
 
5172 dpurdie 6493
      INSERT INTO run_level_schedule
6494
         VALUES (nscheduledid, currentDate, currentDate + duration/(24*60), 0, 'F');
6495
      COMMIT; 
6496
 
6497
      -- Ensure that we have only ONE finite pause by deleting all old ones
6498
      -- Under race conditions the last one wins
6499
      DELETE FROM run_level_schedule 
6500
        WHERE SCHEDULED_ID < nscheduledid
6501
        AND INDEFINITE_PAUSE = 'F';
6502
   END;   
6503
 
1373 dpurdie 6504
/*-------------------------------------------------------------------------------------------------------*/
6505
   PROCEDURE set_resume
6506
   IS
6507
   BEGIN
6508
      DELETE FROM run_level_schedule
5172 dpurdie 6509
            WHERE indefinite_pause in ('F', 'P' );
1373 dpurdie 6510
   END;
6511
 
6512
/*-------------------------------------------------------------------------------------------------------*/
6513
   PROCEDURE delete_out_of_date_schedule
6514
   IS
6515
   BEGIN
6516
      DELETE FROM run_level_schedule
6517
            WHERE scheduled_resume < ora_sysdatetime AND repeat = 0;
6518
   END;
6519
 
6520
/*-------------------------------------------------------------------------------------------------------*/
6521
   PROCEDURE set_daemon_resume (nrconid IN NUMBER)
6522
   IS
6523
   BEGIN
6524
      UPDATE run_level
6525
         SET PAUSE = NULL
6526
      WHERE rcon_id = nrconid;
6527
   END;
6528
 
6529
/*-------------------------------------------------------------------------------------------------------*/
6530
   PROCEDURE set_daemon_pause (nrconid IN NUMBER)
6531
   IS
6532
   BEGIN
6533
      UPDATE run_level
6534
         SET PAUSE = 1
6535
      WHERE rcon_id = nrconid;
6536
   END;
6537
/*-------------------------------------------------------------------------------------------------------*/
6538
   PROCEDURE set_daemon_disable (nrconid NUMBER)
6539
   IS
6540
   BEGIN
6541
      UPDATE run_level
6542
         SET PAUSE = 2
6543
      WHERE rcon_id = nrconid;
6544
   END;
6545
 
6546
/*-------------------------------------------------------------------------------------------------------*/
6547
   PROCEDURE set_daemon_states (nrtagid NUMBER, nstate NUMBER)
6548
   IS
6549
   BEGIN
6550
     UPDATE run_level
6551
     SET pause = nstate
6552
     WHERE rcon_id IN
6553
     (SELECT rc.rcon_id FROM release_config rc WHERE rc.rtag_id = nrtagid);
6554
   END;
6555
 
6556
/*-------------------------------------------------------------------------------------------------------*/
6557
   -- inserts a new daemon instruction
6558
   -- This is for use by the Release Manager Website code.
6559
   --
6560
   PROCEDURE insert_daemon_inst
6561
   ( nOp_code IN NUMBER
6562
   , nRtag_id IN NUMBER
6563
   , nPv_id IN NUMBER
6564
   , nSchedDate IN DATE
6565
   , nRepeatSecs IN NUMBER
6566
   , nAddedDate IN DATE
6567
   , nUser_id IN NUMBER
6568
   ) IS
6569
      nInstId   NUMBER;
6570
   BEGIN
6571
      -- Get Next Available Scheduled Id
6572
      SELECT seq_daemon_instruction_id.NEXTVAL
6573
      INTO nInstId
6574
      FROM DUAL;
6575
 
6576
      INSERT INTO Daemon_Instructions
6577
         VALUES (nInstId, nOp_code, nRtag_id,
6578
                  nPv_id, nSchedDate, nRepeatSecs,
6579
                  nAddedDate, nUser_id, '0');
5172 dpurdie 6580
 
6581
   -- Mark the Release as modified for build purposes      
6582
   PK_RELEASE.SET_RELEASE_MODIFIED(nRtag_id);  
6583
 
1373 dpurdie 6584
   EXCEPTION
6585
      WHEN DUP_VAL_ON_INDEX
6586
      THEN
6587
         raise_application_error (-20000,
6588
                                 'Table already contains a record with the specified OPERATION, RELEASE, and PACKAGE VERSION'
6589
                                 );
6590
      WHEN OTHERS
6591
      THEN
6592
         raise;
5172 dpurdie 6593
 
1373 dpurdie 6594
   END insert_daemon_inst;
6595
 
6596
/*-------------------------------------------------------------------------------------------------------*/
6597
   -- Deletes a daemon instruction matching the specified instruction ID
6598
   --
6599
   PROCEDURE del_daemon_inst
6600
   ( nInstId IN NUMBER
6601
   ) IS
6602
 
6603
   BEGIN
6604
      DELETE FROM Daemon_Instructions
6605
      WHERE DAEMON_INSTRUCTIONS_ID = nInstId;
6606
 
6607
   END del_daemon_inst;
6608
 
6609
/*-------------------------------------------------------------------------------------------------------*/
6610
   -- Deletes a daemon instruction matching the specified op-code, ratag, and pv_id
6611
   --
6612
   PROCEDURE del_daemon_inst_by_rtag_pvid(
6613
      nOp_code IN NUMBER,
6614
      nRtag_id IN NUMBER,
6615
      nPv_id IN NUMBER
6616
   ) IS
6617
   BEGIN
6618
      DELETE FROM Daemon_Instructions
6619
      WHERE OP_CODE = nOp_code
6620
      AND RTAG_ID = nRtag_id
6621
      AND PV_ID   = nPv_id;
6622
 
6623
   END del_daemon_inst_by_rtag_pvid;
6624
 
6625
/*-------------------------------------------------------------------------------------------------------*/
6626
   -- Updates a daemon instruction
6627
   -- This is for use by the Release Manager Website code.
6628
   --
6629
   PROCEDURE update_daemon_inst
6630
   ( nInstId IN NUMBER
6631
   , nOp_code IN NUMBER
6632
   , nRtag_id IN NUMBER
6633
   , nPv_id IN NUMBER
6634
   , nSchedDate IN DATE
6635
   , nRepeatSecs IN NUMBER
6636
   , nAddedDate IN DATE
6637
   , nUser_id IN NUMBER
6638
   ) IS
6639
      CURSOR daemon_inst_cur IS
6640
         SELECT *
6641
         FROM daemon_instructions di
6642
         WHERE di.DAEMON_INSTRUCTIONS_ID = nInstId;
6643
 
6644
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
6645
 
6646
      exc_inst_removed EXCEPTION;
6647
   BEGIN
6648
      OPEN daemon_inst_cur;
6649
 
6650
      FETCH daemon_inst_cur
6651
      INTO daemon_inst_rec;
6652
 
6653
      IF daemon_inst_cur%FOUND THEN
6654
 
6655
         UPDATE Daemon_Instructions
6656
         SET op_code = nOp_code,
6657
            rtag_id = nRtag_id,
6658
            pv_id   = nPv_id,
6659
            scheduled_datetime = nSchedDate,
6660
            repeat_secs = nRepeatSecs,
6661
            added_datetime = nAddedDate,
6662
            user_id = nUser_id,
6663
            in_progress = '0'
6664
         WHERE daemon_instructions_id = nInstId;
6665
      ELSE
6666
         raise exc_inst_removed;
6667
      END IF;
6668
 
6669
      CLOSE daemon_inst_cur;
5172 dpurdie 6670
 
6671
      -- Mark the Release as modified for build purposes      
6672
      PK_RELEASE.SET_RELEASE_MODIFIED(nRtag_id);         
6673
 
1373 dpurdie 6674
   EXCEPTION
6675
      WHEN DUP_VAL_ON_INDEX
6676
      THEN
6677
         raise_application_error (-20000,
6678
                                 'Table already contains a record with the specified OPERATION, RELEASE, and PACKAGE VERSION'
6679
                                 );
6680
      WHEN exc_inst_removed
6681
      THEN
6682
         raise_application_error (-20000,
6683
                                 'Record was probably deleted by the Buildtool during your edit-form session. Please create a new Daemon Instruction.'
6684
                                 );
6685
      WHEN OTHERS
6686
      THEN
6687
         raise;
5172 dpurdie 6688
 
1373 dpurdie 6689
   END update_daemon_inst;
6690
 
6691
/*-------------------------------------------------------------------------------------------------------*/
6692
   -- Returns a comma-separated list of operation codes found for a given rtag and pv_id combination
6693
   -- This is for use by the Release Manager Website code.
6694
   --
6695
   FUNCTION daemon_ops_for_rtag_pvid(
6696
      nRtag_id IN NUMBER,
6697
      nPv_id IN NUMBER
6698
   ) RETURN VARCHAR2
6699
   IS
6700
      CURSOR daemon_inst_cur IS
6701
         SELECT di.OP_CODE
6702
         FROM daemon_instructions di
6703
         WHERE di.RTAG_ID = nRtag_id
6704
            AND di.PV_ID = nPv_id;
6705
 
6706
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
6707
 
6708
      sRetList VARCHAR2(4000) := '';
6709
 
6710
   BEGIN
6711
      OPEN daemon_inst_cur;
6712
 
6713
      FETCH daemon_inst_cur
6714
      INTO daemon_inst_rec;
6715
 
6716
      WHILE daemon_inst_cur%FOUND
6717
      LOOP
6718
         sRetList := sRetList || daemon_inst_rec.op_code || ',';
6719
 
6720
         FETCH daemon_inst_cur
6721
         INTO daemon_inst_rec;
6722
      END LOOP;
6723
 
6724
      CLOSE daemon_inst_cur;
6725
 
6726
      RETURN sRetList;
6727
   END daemon_ops_for_rtag_pvid;
6728
/*-------------------------------------------------------------------------------------------------------*/
6729
   -- Returns a comma-separated list of operation codes found for a given rtag
6730
   -- This is for use by the Release Manager Website code.
6731
   --
6732
   FUNCTION daemon_ops_for_rtag(
6733
      nRtag_id IN NUMBER
6734
   ) RETURN VARCHAR2
6735
   IS
6736
      CURSOR daemon_inst_cur IS
6737
         SELECT di.OP_CODE
6738
         FROM daemon_instructions di
6739
         WHERE di.RTAG_ID = nRtag_id;
6740
 
6741
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
6742
 
6743
      sRetList VARCHAR2(4000) := '';
6744
 
6745
   BEGIN
6746
      OPEN daemon_inst_cur;
6747
 
6748
      FETCH daemon_inst_cur
6749
      INTO daemon_inst_rec;
6750
 
6751
      WHILE daemon_inst_cur%FOUND
6752
      LOOP
6753
         sRetList := sRetList || daemon_inst_rec.op_code || ',';
6754
 
6755
         FETCH daemon_inst_cur
6756
         INTO daemon_inst_rec;
6757
      END LOOP;
6758
 
6759
      CLOSE daemon_inst_cur;
6760
 
6761
      RETURN sRetList;
6762
   END daemon_ops_for_rtag;
6763
/*-------------------------------------------------------------------------------------------------------*/
6764
   -- Gets a record from the daemon instruction table that can be carried out now and returns the fields
6765
   -- in the record a daemon will need
6766
   -- The Buildtool should use this to find a job to do for a particular release. It should then call
6767
   -- mark_daemon_inst_in_progress(inst_id) before carrying out the work, and then call
6768
   -- mark_daemon_inst_completed(inst_id) to signal its completion.
6769
   -- Can be called repeatedly to get a full list of all instructions for a release, by passing back in
6770
   -- the instruction ID obtained from the previous call (the 1st call should use 0)
6771
   -- Can be called repeatedly to get a full list of all instructions of a specific op-code value for a release,
6772
   -- by passing back in an op-code value of 0 or higher (use -1 if no op-code filtering is needed)
6773
   -- Returns 1 if a record was found, else 0.
6774
   --
6775
   FUNCTION get_daemon_inst(
6776
      nRtag_id IN NUMBER,
6777
      nInst_id IN OUT NUMBER,
6778
      nOp_code IN OUT NUMBER,
6779
      nPv_id OUT NUMBER,
6780
      nUser_id OUT NUMBER,
6781
      nInProgress OUT NUMBER
6782
   ) RETURN NUMBER
6783
   IS
6784
      CURSOR daemon_inst_cur IS
6785
         SELECT di.daemon_instructions_id, di.op_code, di.pv_id ,di.user_id, di.in_progress
6786
           FROM daemon_instructions di
6787
          WHERE di.rtag_id = nRtag_id
6788
            AND di.daemon_instructions_id > nInst_id
6789
            AND di.scheduled_datetime <= ora_sysdatetime
6790
            AND ((nOp_code = -1) OR (nOp_code = di.op_code))
6791
            AND rownum <= 1
6792
       ORDER BY di.daemon_instructions_id;
6793
 
6794
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
6795
   BEGIN
6796
      OPEN daemon_inst_cur;
6797
 
6798
      FETCH daemon_inst_cur
6799
      INTO daemon_inst_rec;
6800
 
6801
      -- If we found a record, return it.
6802
      IF daemon_inst_cur%FOUND THEN
6803
         nInst_id := daemon_inst_rec.daemon_instructions_id;
6804
         nOp_code := daemon_inst_rec.op_code;
6805
         nPv_id   := daemon_inst_rec.pv_id;
6806
         nUser_id := daemon_inst_rec.user_id;
6807
         IF daemon_inst_rec.in_progress = '1' THEN
6808
            nInProgress := 1;
6809
         ELSE
6810
            nInProgress := 0;
6811
         END IF;
6812
         CLOSE daemon_inst_cur;
6813
         RETURN 1;
6814
      END IF;
6815
 
6816
      CLOSE daemon_inst_cur;
6817
      RETURN 0;
6818
 
6819
   END get_daemon_inst;
6820
/*-------------------------------------------------------------------------------------------------------*/
6821
   -- Marks a daemon instruction as being processed by a daemon
6822
   -- The Buildtool should use this before it embarks on the work the instruction commands
6823
   --
6824
   PROCEDURE mark_daemon_inst_in_progress( nInstId IN NUMBER )
6825
   IS
6826
   BEGIN
6827
      UPDATE Daemon_Instructions
6828
      SET in_progress = '1'
6829
      WHERE daemon_instructions_id = nInstId;
6830
 
6831
   END mark_daemon_inst_in_progress;
6832
 
6833
/*-------------------------------------------------------------------------------------------------------*/
6834
   -- Once the Buildtool has finished carrying out the daemon instruction, it should call this stored
6835
   -- procedure in order to either delete the instruction or update it in the case where it is a repeating
6836
   -- instruction.
6837
   --
6838
   PROCEDURE mark_daemon_inst_completed( nInstId IN NUMBER )
6839
   IS
6840
      repSecs NUMBER;
6841
      schedDate  DATE;
6842
 
6843
      CURSOR daemon_inst_cur IS
6844
         SELECT di.REPEAT_SECS AS repSecs, di.SCHEDULED_DATETIME AS schedDate
6845
         FROM daemon_instructions di
6846
         WHERE di.daemon_instructions_id = nInstId;
6847
 
6848
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
6849
   BEGIN
6850
      OPEN daemon_inst_cur;
6851
 
6852
      FETCH daemon_inst_cur
6853
      INTO daemon_inst_rec;
6854
 
6855
      IF daemon_inst_cur%FOUND THEN
6856
 
6857
         -- if instruction repeats daily, add 1 day to the scheduled time and update the record
6858
         IF daemon_inst_rec.repSecs = 86400 THEN
6859
            UPDATE Daemon_Instructions
6860
               SET scheduled_datetime = daemon_inst_rec.schedDate + 1,
6861
                  in_progress = '0'
6862
            WHERE daemon_instructions_id = nInstId;
6863
         ELSE
6864
            -- Delete the daemon instruction, we are done with it
6865
            del_daemon_inst(nInstId);
6866
         END IF;
6867
      END IF;
6868
 
6869
      CLOSE daemon_inst_cur;
6870
 
6871
   EXCEPTION
6872
      WHEN OTHERS
6873
      THEN
6874
         raise;
6875
 
6876
   END mark_daemon_inst_completed;
6877
/*-------------------------------------------------------------------------------------------------------*/
6878
   -- This function deletes any old daemon instruction that appears stranded due to a problem that might
6879
   -- have occured during buildtool operation such as might occur if the buildtool or the machine it was
6880
   -- hosted on came down whilst it was processing a daemon instruction.
6881
   PROCEDURE cleanup_stranded_daemon_insts
6882
   IS
6883
   BEGIN
6884
      -- delete records at least two days old
6885
      DELETE FROM daemon_instructions di
6886
      WHERE  (di.scheduled_datetime + 5) <= ora_sysdatetime;
6887
 
6888
   END cleanup_stranded_daemon_insts;
6889
/*-------------------------------------------------------------------------------------------------------*/
6890
  --This function supersedes function, add_daemon. Done for DEVI-046806
6891
   PROCEDURE add_daemon_config (
6892
      nrtagid           IN   NUMBER,
6893
      nbmcon_id         IN   NUMBER,
6894
      sdaemon_mode      IN   VARCHAR2,
6895
      sgbebuildfilter   IN   VARCHAR2
6896
   )
6897
   IS
6898
      nrecordnumber   NUMBER;
6899
      nrconid         NUMBER;
6900
      sdaemonhostname VARCHAR2(50);
6901
      ngbeid         NUMBER;
6902
   BEGIN
6903
      -- Get RCON_ID
6904
      SELECT seq_rcon_id.NEXTVAL
6905
      INTO nrconid
6906
      FROM DUAL;
6907
 
6908
      SELECT COUNT (*)
6909
      INTO nrecordnumber
6910
      FROM release_config
6911
      WHERE rtag_id = nrtagid;
6912
 
6913
      SELECT machine_hostname,gbe_id INTO sdaemonhostname,ngbeid
6914
      FROM build_machine_config
6915
      WHERE bmcon_id = nbmcon_id;
6916
 
6917
      INSERT INTO release_config
6918
             (rcon_id, rtag_id, daemon_hostname, daemon_mode,
4308 dpurdie 6919
                gbe_id, gbe_buildfilter, bmcon_id)
1373 dpurdie 6920
      VALUES (nrconid, nrtagid, sdaemonhostname, sdaemon_mode,
4308 dpurdie 6921
                ngbeid, sgbebuildfilter, nbmcon_id);
1373 dpurdie 6922
 
6923
      -- A newly configured daemon should initially be paused (DEVI-047277)
6924
      INSERT INTO run_level
6925
                  (rcon_id, pause)
6926
           VALUES (nrconid, 2);
6927
 
6928
   END;
6929
 
6930
/*-------------------------------------------------------------------------------------------------------*/
6931
  --This function supersedes function, update_daemon. Done for DEVI-046806
6932
   PROCEDURE update_daemon_config (
6933
      nrconid           IN   NUMBER,
6934
      nbmcon_id         IN   NUMBER,
6935
      sdaemon_mode      IN   VARCHAR2,
6936
      sgbebuildfilter   IN   VARCHAR2
6937
   )
6938
   IS
6939
      sdaemonhostname VARCHAR2(50);
6940
      ngbeid         NUMBER;
6941
   BEGIN
6942
 
6943
      SELECT machine_hostname,gbe_id INTO sdaemonhostname,ngbeid
6944
      FROM build_machine_config
6945
      WHERE bmcon_id = nbmcon_id;
6946
 
6947
      UPDATE release_config
6948
         SET daemon_hostname = sdaemonhostname,
6949
            gbe_id = ngbeid,
6950
            daemon_mode = sdaemon_mode,
4308 dpurdie 6951
            gbe_buildfilter = sgbebuildfilter,
6952
            bmcon_id = nbmcon_id 
1373 dpurdie 6953
      WHERE rcon_id = nrconid;
6954
   END;
6955
 
6956
 
6957
/*-------------------------------------------------------------------------------------------------------*/
6958
   PROCEDURE add_build_machine (
6959
      sdisplay_name          IN   VARCHAR2,
6960
      smachine_hostname      IN   VARCHAR2,
6961
      ngbeid                 IN   NUMBER,
5172 dpurdie 6962
      sdescription           IN   VARCHAR2,
6963
      sactive                IN   CHAR
1373 dpurdie 6964
   )
6965
   IS
6966
      nrecordnumber   NUMBER;
6967
      nbmcon_id       NUMBER;
6968
   BEGIN
6969
      -- Get BMCON_ID
6970
      SELECT seq_bmcon_id.NEXTVAL INTO nbmcon_id FROM DUAL;
6971
 
5172 dpurdie 6972
      INSERT INTO build_machine_config(bmcon_id, display_name, machine_hostname,gbe_id,description,active)
6973
            VALUES (nbmcon_id,sdisplay_name,smachine_hostname,ngbeid,sdescription, NVL(sactive,'N'));
1373 dpurdie 6974
 
6975
   EXCEPTION
6976
      WHEN DUP_VAL_ON_INDEX
6977
      THEN
6978
         raise_application_error (-20000,
6979
                                 'Cannot have duplicate machines.'
6980
                                 );
6981
 
6982
   END;
6983
 
6984
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 6985
 PROCEDURE duplicate_daemon_config (
6986
      nrtagid           IN   NUMBER,
6987
      nbmcon_id         IN   NUMBER,
6988
      sdaemonhostname   IN   VARCHAR2,
6989
      ngbe_id           IN   NUMBER,
6990
      sdaemon_mode      IN   VARCHAR2,
6991
      sgbebuildfilter   IN   VARCHAR2
6992
   )
6993
   IS
6994
      nrecordnumber   NUMBER;
6995
      nrconid         NUMBER;
6996
    BEGIN
6997
 
6998
      -- Get RCON_ID
6999
      SELECT seq_rcon_id.NEXTVAL
7000
      INTO nrconid
7001
      FROM DUAL;
7002
 
7003
      INSERT INTO release_config
7004
             (rcon_id, rtag_id, daemon_hostname, daemon_mode,
7005
                gbe_id, gbe_buildfilter, bmcon_id)
7006
      VALUES (nrconid, nrtagid, sdaemonhostname, sdaemon_mode,
7007
                ngbe_id, sgbebuildfilter, nbmcon_id);
7008
 
7009
    -- A newly configured daemon should initially be disabled (DEVI-047277)
7010
      INSERT INTO run_level
7011
                  (rcon_id, pause)
7012
           VALUES (nrconid, 2);
7013
 
7014
   END;
7015
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 7016
   PROCEDURE delete_build_machine (sbmcon_id_list IN VARCHAR2)
7017
   IS
7018
   BEGIN
7019
      DELETE FROM build_machine_config
7020
            WHERE bmcon_id IN (
7021
                     SELECT * FROM THE
7022
                              (SELECT CAST
7023
                                          (in_list_number (sbmcon_id_list) AS relmgr_number_tab_t
7024
                                          )
7025
                                 FROM DUAL
7026
                              ));
7027
   END;
7028
 
7029
 
7030
/*-------------------------------------------------------------------------------------------------------*/
7031
   PROCEDURE update_build_machine (
7032
      nbmcon_id              IN   NUMBER,
7033
      sdisplay_name          IN   VARCHAR2,
7034
      smachine_hostname      IN   VARCHAR2,
7035
      ngbeid                 IN   NUMBER,
5172 dpurdie 7036
      sdescription           IN   VARCHAR2,
7037
      sactive                IN   CHAR
1373 dpurdie 7038
   )
7039
   IS
7040
   BEGIN
7041
      UPDATE build_machine_config
7042
         SET display_name = sdisplay_name,
7043
             machine_hostname = smachine_hostname,
7044
             gbe_id = ngbeid,
5172 dpurdie 7045
             description = sdescription,
7046
             active = NVL(sactive, 'N')
1373 dpurdie 7047
      WHERE bmcon_id = nbmcon_id;
7048
   EXCEPTION
7049
      WHEN DUP_VAL_ON_INDEX
7050
      THEN
7051
         raise_application_error (-20000,
7052
                                 'Cannot have duplicate machines.'
7053
                                 );
7054
   END;
4553 dpurdie 7055
 
7056
/*-------------------------------------------------------------------------------------------------------*/
7057
PROCEDURE import_daemons ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER  ) IS
7058
 
7059
   sSourceLocation VARCHAR2(4000);
7060
   sTargetLocation VARCHAR2(4000);
7061
   ProjId NUMBER;
7062
   cReleaseMode CHAR(1);
7063
   RconId NUMBER;
7064
 
7065
   -- this cursor gets the source release daemon configurations, ensuring that the
7066
   -- first record will be the master daemon, and subsequent records will be the slaves.
7067
   CURSOR curSrcReleaseConfigs IS
7068
    SELECT daemon_hostname, gbe_id, gbe_buildfilter, bmcon_id, daemon_mode
7069
     FROM RELEASE_CONFIG rc
7070
    WHERE rc.RTAG_ID = nSourceRtagId
7071
    ORDER BY rc.daemon_mode;
7072
    recSrcReleaseConfigs curSrcReleaseConfigs%ROWTYPE;
7073
 
7074
    -- this cursor looks for target release daemons
7075
   CURSOR curTgtReleaseConfigs IS
7076
    SELECT rcon_id
7077
     FROM RELEASE_CONFIG rc
7078
    WHERE rc.RTAG_ID = nTargetRtagId;
7079
    recTgtReleaseConfigs curTgtReleaseConfigs%ROWTYPE;
7080
 
7081
    -- this cursor looks for target release daemon run level entries
7082
   CURSOR curTgtReleaseConfigRunLevel IS
7083
    SELECT current_run_level
7084
     FROM RUN_LEVEL rl
7085
    WHERE rl.RCON_ID = recTgtReleaseConfigs.rcon_id;
7086
    recTgtReleaseConfigRunLevel curTgtReleaseConfigRunLevel%ROWTYPE;
7087
 
7088
BEGIN
7089
   /*--------------- Business Rules Here -------------------*/
7090
   IF (nSourceRtagId IS NULL) OR (nTargetRtagId IS NULL)
7091
   THEN
7092
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nSourceRtagId= '|| nSourceRtagId ||', nTargetRtagId='|| nTargetRtagId );
7093
   END IF;
7094
 
7095
   IF (nSourceRtagId = nTargetRtagId) THEN
7096
      RAISE_APPLICATION_ERROR (-20000, 'Cannot import release contents from same release.' );
7097
   END IF;
7098
 
7099
   -- Check if Target release is in OPEN mode
7100
   SELECT rt.OFFICIAL  INTO  cReleaseMode
7101
     FROM RELEASE_TAGS rt
7102
    WHERE rt.RTAG_ID = nTargetRtagId;
7103
 
7104
   IF (cReleaseMode != 'N') THEN
7105
      RAISE_APPLICATION_ERROR (-20000, 'Release must be in OPEN mode to import the contents.' );
7106
   END IF;
7107
 
7108
   -- check that the target release's daemons are all paused before we allow an import operation
7109
   OPEN curTgtReleaseConfigs;
7110
   FETCH curtgtReleaseConfigs INTO recTgtReleaseConfigs;
7111
 
7112
   WHILE curTgtReleaseConfigs%FOUND
7113
   LOOP
7114
      OPEN curTgtReleaseConfigRunLevel;
7115
      FETCH curTgtReleaseConfigRunLevel INTO recTgtReleaseConfigRunLevel;
7116
      IF curTgtReleaseConfigRunLevel%FOUND THEN
7117
         IF (recTgtReleaseConfigRunLevel.current_run_level IS NULL) OR
7118
            (recTgtReleaseConfigRunLevel.current_run_level <> 2) THEN
7119
            RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
7120
         END IF;
7121
      ELSE
7122
         -- we don't know what the daemon run level is so err on the side of caution
7123
         RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
7124
      END IF;
7125
      CLOSE curTgtReleaseConfigRunLevel;
7126
 
7127
      FETCH curTgtReleaseConfigs INTO recTgtReleaseConfigs;
7128
   END LOOP;
7129
 
7130
   CLOSE curTgtReleaseConfigs;
7131
 
7132
 
7133
   /*-------------------------------------------------------*/
7134
 
7135
   --Import Release Configuration Information
7136
   OPEN curSrcReleaseConfigs;
7137
   FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
7138
 
7139
     WHILE curSrcReleaseConfigs%FOUND
7140
   LOOP
7141
      -- add a daemon to the target release
7142
      PK_BUILDAPI.duplicate_daemon_config( nTargetRtagId, 
7143
                                     recSrcReleaseConfigs.bmcon_id, 
7144
                                     recSrcReleaseConfigs.daemon_hostname, 
7145
                                     recSrcReleaseConfigs.gbe_id, 
7146
                                     recSrcReleaseConfigs.daemon_mode ,
7147
                                     recSrcReleaseConfigs.gbe_buildfilter );
7148
 
7149
      FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
7150
   END LOOP;
7151
 
7152
   CLOSE curSrcReleaseConfigs;
7153
 
7154
 
7155
   /* Log Project Action */
7156
   -- Get Source Location
7157
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sSourceLocation
7158
     FROM RELEASE_TAGS rt,
7159
           PROJECTS pr
7160
    WHERE rt.PROJ_ID = pr.PROJ_ID
7161
      AND rt.RTAG_ID = nSourceRtagId;
7162
 
7163
   -- Get Target Location
7164
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sTargetLocation
7165
     FROM RELEASE_TAGS rt,
7166
           PROJECTS pr
7167
    WHERE rt.PROJ_ID = pr.PROJ_ID
7168
      AND rt.RTAG_ID = nTargetRtagId;
7169
 
7170
   -- Get project id
7171
   SELECT rt.PROJ_ID  INTO  ProjId
7172
     FROM RELEASE_TAGS rt
7173
    WHERE rt.RTAG_ID = nTargetRtagId;
7174
 
7175
   Log_Project_Action ( ProjId, 'import_daemon_configuration', nUserId, 'SOURCE: '|| sSourceLocation ||'   TARGET: '|| sTargetLocation, nTargetRtagId );
7176
END;
7177
 
5892 dpurdie 7178
/*-------------------------------------------------------------------------------------------------------*/
7179
PROCEDURE set_build_plan (rtagId IN NUMBER, nStartIndex IN NUMBER, pvList IN VARCHAR2)
7180
   IS
7181
    nPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
7182
    SeqNum NUMBER;
7183
 
7184
   BEGIN
7185
 
7186
   -- Remove all the old entries, on first usage
7187
   IF nStartIndex = 0 then
7188
    DELETE BUILD_PLAN WHERE RTAG_ID = rtagId;
7189
    SeqNum := 0;
7190
   ELSE
7191
    SELECT COUNT(*) into SeqNum from BUILD_PLAN WHERE RTAG_ID = rtagId;
7192
   END IF;
7193
 
7194
   -- Set start sequence number
7195
   nPvIdCollector := IN_LIST_NUMBER ( pvList );
7196
 
7197
   FOR i IN 1..nPvIdCollector.COUNT
7198
   LOOP
7199
      -- Update build plan with order
7200
      INSERT INTO BUILD_PLAN (RTAG_ID, BUILD_ORDER, PV_ID) VALUES (rtagId, SeqNum, nPvIdCollector(i));
7201
      SeqNum := SeqNum + 1;
7202
 
7203
   END LOOP;
7204
END;
7205
 
1373 dpurdie 7206
END pk_buildapi;
4040 dpurdie 7207
 
1374 dpurdie 7208
/
4040 dpurdie 7209
--------------------------------------------------------
7210
--  DDL for Package Body PK_ENVIRONMENT
7211
--------------------------------------------------------
7212
 
5172 dpurdie 7213
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_ENVIRONMENT" 
1373 dpurdie 7214
IS
7215
 
7216
   /*-------------------------------------------------------------------------------------------------------*/
7217
   FUNCTION select_environment_area (cdlock IN package_versions.dlocked%TYPE)
7218
     RETURN NUMBER
7219
   IS
7220
   BEGIN
7221
      /*
7222
     || N - unlocked
7223
     || Y - release and locked
7224
     || P - penging approval
7225
     || A - approved package ready for auto-build
7226
     */
7227
     IF cdlock = 'N' OR cdlock = 'R'
7228
     THEN
7229
       -- WORK IN PROGRESS --
7230
       RETURN 0;
7231
     ELSIF cdlock = 'P' OR cdlock = 'A'
7232
     THEN
7233
       -- PENDING --
7234
       RETURN 1;
7235
     ELSIF cdlock = 'Y'
7236
     THEN
7237
       -- RELEASED --
7238
       RETURN 2;
7239
     ELSE
7240
       -- NOT FOUND --
7241
       raise_application_error
7242
                   (-20000,
7243
                      'Cannot decide where to place package. [cDlock='
7244
                    || cdlock
7245
                    || ']'
7246
                   );
7247
     END IF;
7248
   END;
7249
 
7250
/*-------------------------------------------------------------------------------------------------------*/
7251
   FUNCTION get_package_area (pvid IN NUMBER, rtagid IN NUMBER)
7252
     RETURN NUMBER
7253
   IS
7254
     envtab   NUMBER         := -1;
7255
 
7256
     CURSOR curarea
7257
     IS
7258
       SELECT 2 AS envtab
7259
         FROM release_content rc
7260
        WHERE rc.rtag_id = rtagid AND rc.pv_id = pvid
7261
       UNION
7262
       SELECT 0 AS envtab
7263
         FROM work_in_progress wip
7264
        WHERE wip.rtag_id = rtagid AND wip.pv_id = pvid
7265
       UNION
7266
       SELECT 1 AS envtab
7267
         FROM planned pl
7268
        WHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;
7269
 
7270
     recarea   curarea%ROWTYPE;
7271
   BEGIN
7272
     OPEN curarea;
7273
 
7274
     FETCH curarea
7275
      INTO recarea;
7276
 
7277
     IF curarea%FOUND
7278
     THEN
7279
       envtab := recarea.envtab;
7280
     END IF;
7281
 
7282
     CLOSE curarea;
7283
 
7284
     RETURN envtab;
7285
   END;
7286
 
7287
/*-------------------------------------------------------------------------------------------------------*/
7288
   FUNCTION get_view_location (pvid IN NUMBER, rtagid IN NUMBER)
7289
     RETURN NUMBER
7290
   IS
7291
     ispatch   package_versions.dlocked%TYPE;
7292
     viewid   NUMBER                    := -1;
7293
 
7294
     CURSOR curview
7295
     IS
7296
       SELECT rc.base_view_id AS view_id
7297
         FROM release_content rc
7298
        WHERE rc.rtag_id = rtagid AND rc.pv_id = pvid
7299
       UNION
7300
       SELECT wip.view_id AS view_id
7301
         FROM work_in_progress wip
7302
        WHERE wip.rtag_id = rtagid AND wip.pv_id = pvid
7303
       UNION
7304
       SELECT pl.view_id AS view_id
7305
         FROM planned pl
7306
        WHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;
7307
 
7308
     recview   curview%ROWTYPE;
7309
   BEGIN
7310
     -- Get dlock state
7311
     SELECT pv.is_patch
7312
      INTO ispatch
7313
      FROM package_versions pv
7314
      WHERE pv.pv_id = pvid;
7315
 
7316
     -- Decide which view id should package go under.
7317
     IF (ispatch != 'Y') OR (ispatch IS NULL)
7318
     THEN
7319
       -- Get VIEW ID of Package
7320
       OPEN curview;
7321
 
7322
       FETCH curview
7323
        INTO recview;
7324
 
7325
       IF curview%FOUND
7326
       THEN
7327
         viewid := recview.view_id;
7328
       ELSE
7329
         raise_application_error
7330
            (-20000,
7331
               'Cannot find view_id to proceed. [PvId='
7332
            || pvid
7333
            || ']. The current version may not exist in the release anymore.'
7334
            );
7335
       END IF;
7336
 
7337
       CLOSE curview;
7338
     ELSE
7339
       -- Get VIEW ID of Patch (view id of parent package)
7340
       SELECT rc.base_view_id
7341
         INTO viewid
7342
         FROM release_content rc, package_patches ppv
7343
        WHERE rc.rtag_id = rtagid
7344
         AND rc.pv_id = ppv.pv_id
7345
         AND ppv.patch_id = pvid;
7346
     END IF;
7347
 
7348
     RETURN viewid;
7349
   END;
7350
 
7351
/*-------------------------------------------------------------------------------------------------------*/
5384 dpurdie 7352
--  Add a package to the specified release
7353
--  Default imode: Will determine the tab ( WIP, PENDING, RELEASE ) to add the package
7354
--  Otherwise will Add the package to the PENDING set
7355
--
1373 dpurdie 7356
   PROCEDURE add_package (
7357
     pvid    IN   NUMBER,
5384 dpurdie 7358
     viewid  IN   NUMBER,
7359
     rtagid  IN   NUMBER,
7360
     userid  IN   NUMBER,
7361
     imode   IN   CHAR default NULL
1373 dpurdie 7362
   )
7363
   IS
7364
     dlocked   package_versions.dlocked%TYPE;
7365
     envtab   NUMBER;
5384 dpurdie 7366
     pendOpr CHAR := 'R';
1373 dpurdie 7367
   BEGIN
7368
     IF can_edit_pkg_in_project (pvid, rtagid) = 1
7369
     THEN
5384 dpurdie 7370
       IF iMode IS NULL THEN
7371
         -- Determine the tab to use based on the package lock state
7372
         -- Get dlock state
7373
         SELECT pv.dlocked
7374
           INTO dlocked
7375
           FROM package_versions pv
7376
          WHERE pv.pv_id = pvid;
7377
 
7378
         -- Get which area should go under
7379
         envtab := select_environment_area (dlocked);
7380
       ELSE
7381
        -- Assume that the package is to be added to Pending
7382
        envtab := 1;
7383
        pendOpr := 'A';
7384
       END IF;
1373 dpurdie 7385
       -- Log
5172 dpurdie 7386
       --log_action (pvid, 'action', userid, 'Start of Package Add...');
1373 dpurdie 7387
 
5384 dpurdie 7388
       -- Add Package
1373 dpurdie 7389
       IF envtab = 0
7390
       THEN
7391
         -- WORK IN PROGRESS --
7392
         pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
7393
       ELSIF envtab = 1
7394
       THEN
7395
         -- PENDING --
5384 dpurdie 7396
         pk_planned.add_package (pvid, viewid, rtagid, userid, pendOpr);
1373 dpurdie 7397
       ELSIF envtab = 2
7398
       THEN
7399
         -- RELEASED --
7400
         -- NOTE: this package will be replaced with matching package
7401
         pk_release.add_package (pvid, viewid, rtagid, userid);
7402
         -- Now do post Release Actions
7403
         pk_release.run_post_actions (pvid, rtagid);
7404
       END IF;
7405
 
7406
       -- Log
5172 dpurdie 7407
       --log_action (pvid, 'action', userid, 'End of Package Add...');
1373 dpurdie 7408
     END IF;
7409
   END;
7410
 
7411
/*-------------------------------------------------------------------------------------------------------*/
7412
   PROCEDURE add_package_bulk (
7413
     pvidlist   IN   VARCHAR2,
7414
     viewid    IN   NUMBER,
7415
     rtagid    IN   NUMBER,
5384 dpurdie 7416
     userid    IN   NUMBER,
7417
     imode     IN   CHAR DEFAULT NULL
1373 dpurdie 7418
   )
7419
   IS
5384 dpurdie 7420
     nidcollector relmgr_number_tab_t         := relmgr_number_tab_t();
1373 dpurdie 7421
     dlocked      package_versions.dlocked%TYPE;
7422
     pvid         NUMBER;
7423
     envtab       NUMBER;
7424
   BEGIN
7425
     /*--------------- Business Rules Here -------------------*/
7426
     IF (pvidlist IS NULL)
7427
     THEN
7428
       raise_application_error (-20000,
7429
                          'Please select at least one package.'
7430
                         );
7431
     END IF;
7432
 
7433
/*-------------------------------------------------------*/
7434
     nidcollector := in_list_number (pvidlist);
7435
 
7436
     FOR i IN 1 .. nidcollector.COUNT
7437
     LOOP
7438
       pvid := nidcollector (i);
5384 dpurdie 7439
       add_package (pvid, viewid, rtagid, userid, imode);
1373 dpurdie 7440
     END LOOP;
7441
   END;
7442
 
7443
/*-------------------------------------------------------------------------------------------------------*/
7444
   PROCEDURE replace_package (
7445
     newpvid  IN   NUMBER,
7446
     oldpvid  IN   NUMBER,
7447
     rtagid   IN   NUMBER,
7448
     userid   IN   NUMBER
7449
   )
7450
   IS
7451
     dlocked      package_versions.dlocked%TYPE;
7452
     viewid       NUMBER;
7453
     envtab       NUMBER;
7454
     ROWCOUNT     NUMBER;
7455
     creleasemode CHAR (1);
7456
     npkgid       NUMBER;
7457
   BEGIN
7458
     /*--------------- Business Rules Here -------------------*/
7459
     -- Check if oldPvId exists. It could have been removed
7460
     SELECT COUNT (pv.pv_id)
7461
       INTO ROWCOUNT
7462
       FROM package_versions pv
7463
      WHERE pv.pv_id = oldpvid;
7464
 
7465
/*-------------------------------------------------------*/
7466
 
7467
     /* This procedure is usually used by "History" option in Release Manager */
7468
 
7469
     -- Get dlock state
7470
     SELECT pv.dlocked
7471
       INTO dlocked
7472
       FROM package_versions pv
7473
      WHERE pv.pv_id = newpvid;
7474
 
7475
     -- Get VIEW_ID ---
7476
     IF ROWCOUNT = 1
7477
     THEN
7478
       viewid := get_view_location (oldpvid, rtagid);
7479
     ELSE
7480
       -- Set ViewID to default
7481
       viewid := 7;
7482
     END IF;
7483
 
7484
     -- Get which area should go under
7485
     envtab := select_environment_area (dlocked);
7486
     -- Log
5172 dpurdie 7487
     --log_action (oldpvid, 'action', userid, 'Start of Package Replace...');
1373 dpurdie 7488
 
7489
     -- Replace package
7490
     IF envtab = 0
7491
     THEN
7492
       -- WORK IN PROGRESS --
7493
 
7494
       -- Delete old package
7495
       pk_work_in_progress.remove_package (oldpvid, rtagid, userid);
7496
 
7497
       -- Add new package
7498
       pk_work_in_progress.add_package (newpvid, viewid, rtagid, userid);
7499
     ELSIF envtab = 1
7500
     THEN
7501
       -- PENDING --
7502
 
7503
       -- Delete old package
7504
       pk_planned.remove_package (oldpvid, rtagid, userid);
7505
 
7506
       -- Add new package
7507
       pk_planned.add_package (newpvid, viewid, rtagid, userid);
7508
     ELSIF envtab = 2
7509
     THEN
7510
       -- RELEASED --
5172 dpurdie 7511
 
7512
       -- Replace Package
7513
       pk_release.replace_package(newpvid, oldpvid, rtagid, userid);
7514
 
1373 dpurdie 7515
       -- Now do post Release Actions
7516
       pk_release.run_post_actions (newpvid, rtagid);
7517
     END IF;
7518
 
7519
     -- Log
5172 dpurdie 7520
     --log_action (oldpvid, 'action', userid, 'End of Package Replace...');
1373 dpurdie 7521
   END;
7522
 
7523
/*-------------------------------------------------------------------------------------------------------*/
7524
   FUNCTION remove_package (
7525
     pvid        IN   NUMBER,
7526
     rtagid      IN   NUMBER,
7527
     userid      IN   NUMBER,
7528
     forceremove IN   CHAR
7529
   )
7530
     RETURN NUMBER
7531
   IS
7532
     envtab      NUMBER;
7533
     isused      BOOLEAN;
7534
     recordcount   NUMBER;
7535
   BEGIN
7536
/*--------------- Business Rules Here -------------------*/
7537
/*-------------------------------------------------------*/
7538
 
7539
     -- Find location of package
7540
     envtab := get_package_area (pvid, rtagid);
7541
 
7542
     -- Remove Package
7543
     IF envtab = 0
7544
     THEN
7545
       -- WORK IN PROGRESS --
7546
       -- Delete package
7547
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
7548
 
7549
       RETURN 0;
7550
     ELSIF envtab = 1
7551
     THEN
7552
       -- PENDING --
7553
       -- Delete package
7554
       pk_planned.remove_package (pvid, rtagid, userid);
7555
 
7556
       RETURN 0;
7557
     ELSIF envtab = 2
7558
     THEN
7559
       -- RELEASED --
7560
 
7561
       -- Check if is used by other packages
7562
       isused := TRUE;
7563
 
7564
       IF forceremove = 'N'
7565
       THEN
5172 dpurdie 7566
          select count(dpv.PKG_ID) INTO recordcount from 
7567
          (SELECT  rc.pv_id
7568
          FROM RELEASE_CONTENT rc, PEGGED_VERSIONS peg
7569
            WHERE rc.rtag_id = rtagid
7570
            AND peg.RTAG_ID(+) = rc.RTAG_ID
7571
            AND peg.PV_ID(+) = rc.PV_ID
7572
            AND peg.rtag_id is null
7573
            AND rc.SDKTAG_ID is null
7574
            ) arc,
7575
          PACKAGE_DEPENDENCIES dep,
7576
          PACKAGE_VERSIONS pv,
7577
          PACKAGE_VERSIONS dpv,
7578
          PACKAGE_VERSIONS bpv
7579
          where dep.PV_ID = arc.pv_id
7580
          AND dep.pv_id = pv.pv_id
7581
          AND dep.dpv_id = dpv.PV_ID
7582
          AND dpv.PKG_ID = bpv.PKG_ID
7583
          AND NVL(dpv.V_EXT, '.NULL') = NVL(bpv.V_EXT, '.NULL')
7584
          AND bpv.pv_id = pvid;
1373 dpurdie 7585
 
7586
         IF recordcount > 0
7587
         THEN
7588
            RETURN 1;               -- Return 1 as package being used
7589
         ELSE
7590
            isused := FALSE;
7591
         END IF;
7592
       END IF;
7593
 
7594
       IF forceremove = 'Y' OR NOT isused
7595
       THEN
7596
         -- Delete old package
7597
         pk_release.remove_package (pvid, rtagid, userid);
7598
 
7599
         -- Delete old package's pegging info
7600
         DELETE FROM PEGGED_VERSIONS pegv WHERE pegv.RTAG_ID = rtagid AND pegv.PV_ID = pvid;
7601
 
7602
         -- Delete old package's advisory ripple info
7603
         DELETE FROM ADVISORY_RIPPLE avr WHERE avr.RTAG_ID = rtagid AND avr.PV_ID = pvid;
7604
 
7605
         -- Now do post Release Actions
7606
         pk_release.run_post_actions (pvid, rtagid);
7607
         RETURN 0;
7608
       END IF;
7609
     END IF;
7610
   END;
7611
 
7612
/*-------------------------------------------------------------------------------------------------------*/
7613
   -- DEVI-45275 added the return of the new "operation" column in the recordset.
7614
 
7615
   PROCEDURE get_environment_items (
7616
     viewtype         IN      NUMBER,
7617
     userid           IN      NUMBER,
7618
     rtagid           IN      NUMBER,
7619
     sviewidshowlist  IN      VARCHAR2,
7620
     ntruerecordcount OUT     NUMBER,
7621
     recordset        OUT     typecur
7622
   )
7623
   IS
7624
   BEGIN
7625
     -- Get true record count because views can give false count
7626
     SELECT COUNT (pl.pv_id)
7627
      INTO ntruerecordcount
7628
      FROM environment_view pl
7629
      WHERE pl.rtag_id = rtagid;
7630
 
7631
     IF viewtype = 1
7632
     THEN
7633
       /*--- GUEST VIEW ---*/
7634
       OPEN recordset FOR
7635
         SELECT   *
7636
            FROM (
7637
                 /* Base Views collapsed */
7638
                 SELECT DISTINCT vi.view_id, vi.view_name,
7639
                             TO_NUMBER (NULL) AS pkg_state,
7640
                             TO_NUMBER (NULL) AS deprecated_state,
7641
                             TO_NUMBER (NULL) AS pv_id,
7642
                             NULL AS pkg_name, NULL AS pkg_version,
7643
                             NULL AS dlocked, NULL AS pv_description,
7644
                             rel.operation
7645
                         FROM environment_view rel, views vi
7646
                        WHERE rel.view_id = vi.view_id
7647
                          AND rtag_id = rtagid
7648
                          AND rel.view_id NOT IN (
7649
                               SELECT *
7650
                                 FROM THE
7651
                                       (SELECT CAST
7652
                                               (in_list_number
7653
                                                  (sviewidshowlist
7654
                                                  ) AS relmgr_number_tab_t
7655
                                               )
7656
                                         FROM DUAL
7657
                                       ))
7658
                 UNION
7659
                 /* Base Views expanded */
7660
                 SELECT vi.view_id, vi.view_name,
7661
                      DECODE (rel.pkg_state,
7662
                            NULL, 0,
7663
                            rel.pkg_state
7664
                           ) AS pkg_state,
7665
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7666
                      pv.pkg_version, pv.dlocked, pv.pv_description,
7667
                      rel.operation
7668
                  FROM environment_view rel,
7669
                      PACKAGES pkg,
7670
                      package_versions pv,
7671
                      views vi
7672
                  WHERE pv.pkg_id = pkg.pkg_id
7673
                   AND rel.pv_id = pv.pv_id
7674
                   AND rel.view_id = vi.view_id
7675
                   AND rel.view_id IN (
7676
                        SELECT *
7677
                          FROM THE
7678
                                (SELECT CAST
7679
                                        (in_list_number
7680
                                               (sviewidshowlist) AS relmgr_number_tab_t
7681
                                        )
7682
                                  FROM DUAL
7683
                                ))
7684
                   AND rtag_id = rtagid) ord
7685
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
7686
     ELSIF viewtype = 2
7687
     THEN
7688
       /*--- PERSONAL VIEW ---*/
7689
       OPEN recordset FOR
7690
         SELECT   *
7691
            FROM (
7692
                 /* Base Views collapsed */
7693
                 SELECT DISTINCT vi.view_id, vi.view_name,
7694
                             TO_NUMBER (NULL) AS pkg_state,
7695
                             TO_NUMBER (NULL) AS deprecated_state,
7696
                             TO_NUMBER (NULL) AS pv_id,
7697
                             NULL AS pkg_name, NULL AS pkg_version,
7698
                             NULL AS dlocked, NULL AS pv_description,
7699
                             rel.operation
7700
                         FROM environment_view rel,
7701
                             view_settings vs,
7702
                             views vi
7703
                        WHERE rel.view_id = vi.view_id
7704
                          AND vs.view_id = rel.view_id
7705
                          AND vs.user_id = userid
7706
                          AND rtag_id = rtagid
7707
                          AND rel.view_id NOT IN (
7708
                               SELECT *
7709
                                 FROM THE
7710
                                       (SELECT CAST
7711
                                               (in_list_number
7712
                                                  (sviewidshowlist
7713
                                                  ) AS relmgr_number_tab_t
7714
                                               )
7715
                                         FROM DUAL
7716
                                       ))
7717
                 UNION
7718
                 /* Base Views expanded */
7719
                 SELECT vi.view_id, vi.view_name,
7720
                      DECODE (rel.pkg_state,
7721
                            NULL, 0,
7722
                            rel.pkg_state
7723
                           ) AS pkg_state,
7724
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7725
                      pv.pkg_version, pv.dlocked, pv.pv_description,
7726
                      rel.operation
7727
                  FROM environment_view rel,
7728
                      PACKAGES pkg,
7729
                      package_versions pv,
7730
                      views vi,
7731
                      view_settings vs
7732
                  WHERE pv.pkg_id = pkg.pkg_id
7733
                   AND rel.pv_id = pv.pv_id
7734
                   AND rel.view_id = vi.view_id
7735
                   AND vs.view_id = vi.view_id
7736
                   AND vs.user_id = userid
7737
                   AND rel.view_id IN (
7738
                        SELECT *
7739
                          FROM THE
7740
                                (SELECT CAST
7741
                                        (in_list_number
7742
                                               (sviewidshowlist) AS relmgr_number_tab_t
7743
                                        )
7744
                                  FROM DUAL
7745
                                ))
7746
                   AND rtag_id = rtagid
7747
                 UNION
7748
                 /* Private Views collapsed */
7749
                 SELECT vi.view_id, vi.view_name,
7750
                      TO_NUMBER (NULL) AS pkg_state,
7751
                      TO_NUMBER (NULL) AS deprecated_state,
7752
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
7753
                      NULL AS pkg_version, NULL AS dlocked,
7754
                      NULL AS pv_description,
7755
                      rel.operation
7756
                  FROM view_settings vs,
7757
                      view_def vd,
7758
                      views vi,
7759
                      environment_view rel,
7760
                      package_versions pv
7761
                  WHERE vs.view_id = vi.view_id
7762
                   AND rel.pv_id = pv.pv_id
7763
                   AND vd.pkg_id = pv.pkg_id
7764
                   AND vd.view_id = vi.view_id
7765
                   AND vi.base_view = 'N'
7766
                   AND rel.rtag_id = rtagid
7767
                   AND vs.user_id = userid
7768
                   AND vi.view_id NOT IN (
7769
                        SELECT *
7770
                          FROM THE
7771
                                (SELECT CAST
7772
                                        (in_list_number
7773
                                               (sviewidshowlist) AS relmgr_number_tab_t
7774
                                        )
7775
                                  FROM DUAL
7776
                                ))
7777
                 UNION
7778
                 /* Private Views expanded */
7779
                 SELECT vi.view_id, vi.view_name,
7780
                      DECODE (rel.pkg_state,
7781
                            NULL, 0,
7782
                            rel.pkg_state
7783
                           ) AS pkg_state,
7784
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7785
                      pv.pkg_version, pv.dlocked, pv.pv_description,
7786
                      rel.operation
7787
                  FROM users usr,
7788
                      view_settings vs,
7789
                      view_def vd,
7790
                      views vi,
7791
                      environment_view rel,
7792
                      PACKAGES pkg,
7793
                      package_versions pv
7794
                  WHERE vs.user_id = usr.user_id
7795
                   AND vs.view_id = vi.view_id
7796
                   AND vd.view_id = vi.view_id
7797
                   AND pv.pkg_id = pkg.pkg_id
7798
                   AND rel.pv_id = pv.pv_id
7799
                   AND rel.rtag_id = rtagid
7800
                   AND vd.pkg_id = pkg.pkg_id
7801
                   AND vi.base_view = 'N'
7802
                   AND vi.view_id IN (
7803
                        SELECT *
7804
                          FROM THE
7805
                                (SELECT CAST
7806
                                        (in_list_number
7807
                                               (sviewidshowlist) AS relmgr_number_tab_t
7808
                                        )
7809
                                  FROM DUAL
7810
                                ))
7811
                   AND usr.user_id = userid) ord
7812
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
7813
     END IF;
7814
   END;
7815
 
7816
/*-------------------------------------------------------------------------------------------------------*/
7817
   PROCEDURE get_released_items (
7818
     viewtype         IN      NUMBER,
7819
     userid           IN      NUMBER,
7820
     rtagid           IN      NUMBER,
7821
     sviewidshowlist  IN      VARCHAR2,
7822
     ntruerecordcount OUT     NUMBER,
7823
     recordset        OUT     typecur
7824
   )
7825
   IS
7826
   BEGIN
7827
     -- Get true record count because views can give false count
7828
     SELECT COUNT (rc.pv_id)
7829
      INTO ntruerecordcount
7830
      FROM release_content rc
7831
      WHERE rc.rtag_id = rtagid;
7832
 
7833
     IF viewtype = 1
7834
     THEN
7835
       /*--- GUEST VIEW ---*/
7836
       OPEN recordset FOR
7837
         SELECT   *
7838
            FROM (
7839
                 /* Base Views collapsed */
7840
                 SELECT DISTINCT vi.view_id, vi.view_name,
7841
                             TO_NUMBER (NULL) AS pkg_state,
7842
                             TO_NUMBER (NULL) AS deprecated_state,
7843
                             TO_NUMBER (NULL) AS pv_id,
7844
                             NULL AS pkg_name, NULL AS pkg_version,
7845
                             NULL AS dlocked, NULL AS pv_description
7846
                         FROM release_content rel, views vi
7847
                        WHERE rel.base_view_id = vi.view_id
7848
                          AND rtag_id = rtagid
7849
                          AND rel.base_view_id NOT IN (
7850
                               SELECT *
7851
                                 FROM THE
7852
                                       (SELECT CAST
7853
                                               (in_list_number
7854
                                                  (sviewidshowlist
7855
                                                  ) AS relmgr_number_tab_t
7856
                                               )
7857
                                         FROM DUAL
7858
                                       ))
7859
                 UNION
7860
                 /* Base Views expanded */
7861
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
7862
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7863
                      pv.pkg_version, pv.dlocked, pv.pv_description
7864
                  FROM release_content rel,
7865
                      PACKAGES pkg,
7866
                      package_versions pv,
7867
                      views vi
7868
                  WHERE pv.pkg_id = pkg.pkg_id
7869
                   AND rel.pv_id = pv.pv_id
7870
                   AND rel.base_view_id = vi.view_id
7871
                   AND rel.base_view_id IN (
7872
                        SELECT *
7873
                          FROM THE
7874
                                (SELECT CAST
7875
                                        (in_list_number
7876
                                               (sviewidshowlist) AS relmgr_number_tab_t
7877
                                        )
7878
                                  FROM DUAL
7879
                                ))
7880
                   AND rtag_id = rtagid) ord
7881
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
7882
     ELSIF viewtype = 2
7883
     THEN
7884
       /*--- PERSONAL VIEW ---*/
7885
       OPEN recordset FOR
7886
         SELECT   *
7887
            FROM (
7888
                 /* Base Views collapsed */
7889
                 SELECT DISTINCT vi.view_id, vi.view_name,
7890
                             TO_NUMBER (NULL) AS pkg_state,
7891
                             TO_NUMBER (NULL) AS deprecated_state,
7892
                             TO_NUMBER (NULL) AS pv_id,
7893
                             NULL AS pkg_name, NULL AS pkg_version,
7894
                             NULL AS dlocked, NULL AS pv_description
7895
                         FROM release_content rel,
7896
                             view_settings vs,
7897
                             views vi
7898
                        WHERE rel.base_view_id = vi.view_id
7899
                          AND vs.view_id = rel.base_view_id
7900
                          AND vs.user_id = userid
7901
                          AND rtag_id = rtagid
7902
                          AND rel.base_view_id NOT IN (
7903
                               SELECT *
7904
                                 FROM THE
7905
                                       (SELECT CAST
7906
                                               (in_list_number
7907
                                                  (sviewidshowlist
7908
                                                  ) AS relmgr_number_tab_t
7909
                                               )
7910
                                         FROM DUAL
7911
                                       ))
7912
                 UNION
7913
                 /* Base Views expanded */
7914
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
7915
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7916
                      pv.pkg_version, pv.dlocked, pv.pv_description
7917
                  FROM release_content rel,
7918
                      PACKAGES pkg,
7919
                      package_versions pv,
7920
                      views vi,
7921
                      view_settings vs
7922
                  WHERE pv.pkg_id = pkg.pkg_id
7923
                   AND rel.pv_id = pv.pv_id
7924
                   AND rel.base_view_id = vi.view_id
7925
                   AND vs.view_id = vi.view_id
7926
                   AND vs.user_id = userid
7927
                   AND rel.base_view_id IN (
7928
                        SELECT *
7929
                          FROM THE
7930
                                (SELECT CAST
7931
                                        (in_list_number
7932
                                               (sviewidshowlist) AS relmgr_number_tab_t
7933
                                        )
7934
                                  FROM DUAL
7935
                                ))
7936
                   AND rtag_id = rtagid
7937
                 UNION
7938
                 /* Private Views collapsed */
7939
                 SELECT vi.view_id, vi.view_name,
7940
                      TO_NUMBER (NULL) AS pkg_state,
7941
                      TO_NUMBER (NULL) AS deprecated_state,
7942
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
7943
                      NULL AS pkg_version, NULL AS dlocked,
7944
                      NULL AS pv_description
7945
                  FROM view_settings vs,
7946
                      view_def vd,
7947
                      views vi,
7948
                      release_content rel,
7949
                      package_versions pv
7950
                  WHERE vs.view_id = vi.view_id
7951
                   AND rel.pv_id = pv.pv_id
7952
                   AND vd.pkg_id = pv.pkg_id
7953
                   AND vd.view_id = vi.view_id
7954
                   AND vi.base_view = 'N'
7955
                   AND rel.rtag_id = rtagid
7956
                   AND vs.user_id = userid
7957
                   AND vi.view_id NOT IN (
7958
                        SELECT *
7959
                          FROM THE
7960
                                (SELECT CAST
7961
                                        (in_list_number
7962
                                               (sviewidshowlist) AS relmgr_number_tab_t
7963
                                        )
7964
                                  FROM DUAL
7965
                                ))
7966
                 UNION
7967
                 /* Private Views expanded */
7968
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
7969
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7970
                      pv.pkg_version, pv.dlocked, pv.pv_description
7971
                  FROM users usr,
7972
                      view_settings vs,
7973
                      view_def vd,
7974
                      views vi,
7975
                      release_content rel,
7976
                      PACKAGES pkg,
7977
                      package_versions pv
7978
                  WHERE vs.user_id = usr.user_id
7979
                   AND vs.view_id = vi.view_id
7980
                   AND vd.view_id = vi.view_id
7981
                   AND pv.pkg_id = pkg.pkg_id
7982
                   AND rel.pv_id = pv.pv_id
7983
                   AND rel.rtag_id = rtagid
7984
                   AND vd.pkg_id = pkg.pkg_id
7985
                   AND vi.base_view = 'N'
7986
                   AND vi.view_id IN (
7987
                        SELECT *
7988
                          FROM THE
7989
                                (SELECT CAST
7990
                                        (in_list_number
7991
                                               (sviewidshowlist) AS relmgr_number_tab_t
7992
                                        )
7993
                                  FROM DUAL
7994
                                ))
7995
                   AND usr.user_id = userid) ord
7996
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
7997
     END IF;
7998
   END;
7999
 
8000
/*-------------------------------------------------------------------------------------------------------*/
8001
   PROCEDURE get_work_in_progress_items (
8002
     viewtype         IN      NUMBER,
8003
     userid           IN      NUMBER,
8004
     rtagid           IN      NUMBER,
8005
     sviewidshowlist  IN      VARCHAR2,
8006
     ntruerecordcount OUT     NUMBER,
8007
     recordset        OUT     typecur
8008
   )
8009
   IS
8010
   BEGIN
8011
     -- Get true record count because views can give false count
8012
     SELECT COUNT (wip.pv_id)
8013
      INTO ntruerecordcount
8014
      FROM work_in_progress wip
8015
      WHERE wip.rtag_id = rtagid;
8016
 
8017
     IF viewtype = 1
8018
     THEN
8019
       /*--- GUEST VIEW ---*/
8020
       OPEN recordset FOR
8021
         SELECT   *
8022
            FROM (
8023
                 /* Base Views collapsed */
8024
                 SELECT DISTINCT vi.view_id, vi.view_name,
8025
                             TO_NUMBER (NULL) AS pkg_state,
8026
                             TO_NUMBER (NULL) AS deprecated_state,
8027
                             TO_NUMBER (NULL) AS pv_id,
8028
                             NULL AS pkg_name, NULL AS pkg_version,
8029
                             NULL AS dlocked, NULL AS pv_description
8030
                         FROM work_in_progress rel, views vi
8031
                        WHERE rel.view_id = vi.view_id
8032
                          AND rtag_id = rtagid
8033
                          AND rel.view_id NOT IN (
8034
                               SELECT *
8035
                                 FROM THE
8036
                                       (SELECT CAST
8037
                                               (in_list_number
8038
                                                  (sviewidshowlist
8039
                                                  ) AS relmgr_number_tab_t
8040
                                               )
8041
                                         FROM DUAL
8042
                                       ))
8043
                 UNION
8044
                 /* Base Views expanded */
8045
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8046
 
8047
                      --rel.pkg_state,
8048
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8049
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8050
                      pv.pv_description
8051
                  FROM work_in_progress rel,
8052
                      PACKAGES pkg,
8053
                      package_versions pv,
8054
                      views vi
8055
                  WHERE pv.pkg_id = pkg.pkg_id
8056
                   AND rel.pv_id = pv.pv_id
8057
                   AND rel.view_id = vi.view_id
8058
                   AND rel.view_id IN (
8059
                        SELECT *
8060
                          FROM THE
8061
                                (SELECT CAST
8062
                                        (in_list_number
8063
                                               (sviewidshowlist) AS relmgr_number_tab_t
8064
                                        )
8065
                                  FROM DUAL
8066
                                ))
8067
                   AND rtag_id = rtagid) ord
8068
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8069
     ELSIF viewtype = 2
8070
     THEN
8071
       /*--- PERSONAL VIEW ---*/
8072
       OPEN recordset FOR
8073
         SELECT   *
8074
            FROM (
8075
                 /* Base Views collapsed */
8076
                 SELECT DISTINCT vi.view_id, vi.view_name,
8077
                             TO_NUMBER (NULL) AS pkg_state,
8078
                             TO_NUMBER (NULL) AS deprecated_state,
8079
                             TO_NUMBER (NULL) AS pv_id,
8080
                             NULL AS pkg_name, NULL AS pkg_version,
8081
                             NULL AS dlocked, NULL AS pv_description
8082
                         FROM work_in_progress rel,
8083
                             view_settings vs,
8084
                             views vi
8085
                        WHERE rel.view_id = vi.view_id
8086
                          AND vs.view_id = rel.view_id
8087
                          AND vs.user_id = userid
8088
                          AND rtag_id = rtagid
8089
                          AND rel.view_id NOT IN (
8090
                               SELECT *
8091
                                 FROM THE
8092
                                       (SELECT CAST
8093
                                               (in_list_number
8094
                                                  (sviewidshowlist
8095
                                                  ) AS relmgr_number_tab_t
8096
                                               )
8097
                                         FROM DUAL
8098
                                       ))
8099
                 UNION
8100
                 /* Base Views expanded */
8101
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8102
 
8103
                      --rel.pkg_state,
8104
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8105
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8106
                      pv.pv_description
8107
                  FROM work_in_progress rel,
8108
                      PACKAGES pkg,
8109
                      package_versions pv,
8110
                      views vi,
8111
                      view_settings vs
8112
                  WHERE pv.pkg_id = pkg.pkg_id
8113
                   AND rel.pv_id = pv.pv_id
8114
                   AND rel.view_id = vi.view_id
8115
                   AND vs.view_id = vi.view_id
8116
                   AND vs.user_id = userid
8117
                   AND rel.view_id IN (
8118
                        SELECT *
8119
                          FROM THE
8120
                                (SELECT CAST
8121
                                        (in_list_number
8122
                                               (sviewidshowlist) AS relmgr_number_tab_t
8123
                                        )
8124
                                  FROM DUAL
8125
                                ))
8126
                   AND rtag_id = rtagid
8127
                 UNION
8128
                 /* Private Views collapsed */
8129
                 SELECT vi.view_id, vi.view_name,
8130
                      TO_NUMBER (NULL) AS pkg_state,
8131
                      TO_NUMBER (NULL) AS deprecated_state,
8132
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
8133
                      NULL AS pkg_version, NULL AS dlocked,
8134
                      NULL AS pv_description
8135
                  FROM view_settings vs,
8136
                      view_def vd,
8137
                      views vi,
8138
                      work_in_progress rel,
8139
                      package_versions pv
8140
                  WHERE vs.view_id = vi.view_id
8141
                   AND rel.pv_id = pv.pv_id
8142
                   AND vd.pkg_id = pv.pkg_id
8143
                   AND vd.view_id = vi.view_id
8144
                   AND vi.base_view = 'N'
8145
                   AND rel.rtag_id = rtagid
8146
                   AND vs.user_id = userid
8147
                   AND vi.view_id NOT IN (
8148
                        SELECT *
8149
                          FROM THE
8150
                                (SELECT CAST
8151
                                        (in_list_number
8152
                                               (sviewidshowlist) AS relmgr_number_tab_t
8153
                                        )
8154
                                  FROM DUAL
8155
                                ))
8156
                 UNION
8157
                 /* Private Views expanded */
8158
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8159
 
8160
                      --rel.pkg_state,
8161
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8162
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8163
                      pv.pv_description
8164
                  FROM users usr,
8165
                      view_settings vs,
8166
                      view_def vd,
8167
                      views vi,
8168
                      work_in_progress rel,
8169
                      PACKAGES pkg,
8170
                      package_versions pv
8171
                  WHERE vs.user_id = usr.user_id
8172
                   AND vs.view_id = vi.view_id
8173
                   AND vd.view_id = vi.view_id
8174
                   AND pv.pkg_id = pkg.pkg_id
8175
                   AND rel.pv_id = pv.pv_id
8176
                   AND rel.rtag_id = rtagid
8177
                   AND vd.pkg_id = pkg.pkg_id
8178
                   AND vi.base_view = 'N'
8179
                   AND vi.view_id IN (
8180
                        SELECT *
8181
                          FROM THE
8182
                                (SELECT CAST
8183
                                        (in_list_number
8184
                                               (sviewidshowlist) AS relmgr_number_tab_t
8185
                                        )
8186
                                  FROM DUAL
8187
                                ))
8188
                   AND usr.user_id = userid) ord
8189
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8190
     END IF;
8191
   END;
8192
 
8193
/*-------------------------------------------------------------------------------------------------------*/
8194
   -- DEVI-45275 added the return of the new "operation" column in the recordset.
8195
 
8196
   PROCEDURE get_pending_items (
8197
     viewtype         IN      NUMBER,
8198
     userid           IN      NUMBER,
8199
     rtagid           IN      NUMBER,
8200
     sviewidshowlist  IN      VARCHAR2,
8201
     ntruerecordcount OUT     NUMBER,
8202
     recordset        OUT     typecur
8203
   )
8204
   IS
8205
   BEGIN
8206
     -- Get true record count because views can give false count
8207
     SELECT COUNT (pl.pv_id)
8208
      INTO ntruerecordcount
8209
      FROM planned pl
8210
      WHERE pl.rtag_id = rtagid;
8211
 
8212
     IF viewtype = 1
8213
     THEN
8214
       /*--- GUEST VIEW ---*/
8215
       OPEN recordset FOR
8216
         SELECT   *
8217
            FROM (
8218
                 /* Base Views collapsed */
8219
                 SELECT DISTINCT vi.view_id, vi.view_name,
8220
                             TO_NUMBER (NULL) AS pkg_state,
8221
                             TO_NUMBER (NULL) AS deprecated_state,
8222
                             TO_NUMBER (NULL) AS pv_id,
8223
                             NULL AS pkg_name, NULL AS pkg_version,
8224
                             NULL AS dlocked, NULL AS pv_description,
8225
                             rel.operation
8226
                         FROM planned rel, views vi
8227
                        WHERE rel.view_id = vi.view_id
8228
                          AND rtag_id = rtagid
8229
                          AND rel.view_id NOT IN (
8230
                               SELECT *
8231
                                 FROM THE
8232
                                       (SELECT CAST
8233
                                               (in_list_number
8234
                                                  (sviewidshowlist
8235
                                                  ) AS relmgr_number_tab_t
8236
                                               )
8237
                                         FROM DUAL
8238
                                       ))
8239
                 UNION
8240
                 /* Base Views expanded */
8241
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8242
 
8243
                      --rel.pkg_state,
8244
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8245
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8246
                      pv.pv_description,
8247
                      rel.operation
8248
                  FROM planned rel,
8249
                      PACKAGES pkg,
8250
                      package_versions pv,
8251
                      views vi
8252
                  WHERE pv.pkg_id = pkg.pkg_id
8253
                   AND rel.pv_id = pv.pv_id
8254
                   AND rel.view_id = vi.view_id
8255
                   AND rel.view_id IN (
8256
                        SELECT *
8257
                          FROM THE
8258
                                (SELECT CAST
8259
                                        (in_list_number
8260
                                               (sviewidshowlist) AS relmgr_number_tab_t
8261
                                        )
8262
                                  FROM DUAL
8263
                                ))
8264
                   AND rtag_id = rtagid) ord
8265
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8266
     ELSIF viewtype = 2
8267
     THEN
8268
       /*--- PERSONAL VIEW ---*/
8269
       OPEN recordset FOR
8270
         SELECT   *
8271
            FROM (
8272
                 /* Base Views collapsed */
8273
                 SELECT DISTINCT vi.view_id, vi.view_name,
8274
                             TO_NUMBER (NULL) AS pkg_state,
8275
                             TO_NUMBER (NULL) AS deprecated_state,
8276
                             TO_NUMBER (NULL) AS pv_id,
8277
                             NULL AS pkg_name, NULL AS pkg_version,
8278
                             NULL AS dlocked, NULL AS pv_description,
8279
                             rel.operation
8280
                         FROM planned rel, view_settings vs, views vi
8281
                        WHERE rel.view_id = vi.view_id
8282
                          AND vs.view_id = rel.view_id
8283
                          AND vs.user_id = userid
8284
                          AND rtag_id = rtagid
8285
                          AND rel.view_id NOT IN (
8286
                               SELECT *
8287
                                 FROM THE
8288
                                       (SELECT CAST
8289
                                               (in_list_number
8290
                                                  (sviewidshowlist
8291
                                                  ) AS relmgr_number_tab_t
8292
                                               )
8293
                                         FROM DUAL
8294
                                       ))
8295
                 UNION
8296
                 /* Base Views expanded */
8297
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8298
 
8299
                      --rel.pkg_state,
8300
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8301
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8302
                      pv.pv_description,
8303
                      rel.operation
8304
                  FROM planned rel,
8305
                      PACKAGES pkg,
8306
                      package_versions pv,
8307
                      views vi,
8308
                      view_settings vs
8309
                  WHERE pv.pkg_id = pkg.pkg_id
8310
                   AND rel.pv_id = pv.pv_id
8311
                   AND rel.view_id = vi.view_id
8312
                   AND vs.view_id = vi.view_id
8313
                   AND vs.user_id = userid
8314
                   AND rel.view_id IN (
8315
                        SELECT *
8316
                          FROM THE
8317
                                (SELECT CAST
8318
                                        (in_list_number
8319
                                               (sviewidshowlist) AS relmgr_number_tab_t
8320
                                        )
8321
                                  FROM DUAL
8322
                                ))
8323
                   AND rtag_id = rtagid
8324
                 UNION
8325
                 /* Private Views collapsed */
8326
                 SELECT vi.view_id, vi.view_name,
8327
                      TO_NUMBER (NULL) AS pkg_state,
8328
                      TO_NUMBER (NULL) AS deprecated_state,
8329
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
8330
                      NULL AS pkg_version, NULL AS dlocked,
8331
                      NULL AS pv_description,
8332
                      rel.operation
8333
                  FROM view_settings vs,
8334
                      view_def vd,
8335
                      views vi,
8336
                      planned rel,
8337
                      package_versions pv
8338
                  WHERE vs.view_id = vi.view_id
8339
                   AND rel.pv_id = pv.pv_id
8340
                   AND vd.pkg_id = pv.pkg_id
8341
                   AND vd.view_id = vi.view_id
8342
                   AND vi.base_view = 'N'
8343
                   AND rel.rtag_id = rtagid
8344
                   AND vs.user_id = userid
8345
                   AND vi.view_id NOT IN (
8346
                        SELECT *
8347
                          FROM THE
8348
                                (SELECT CAST
8349
                                        (in_list_number
8350
                                               (sviewidshowlist) AS relmgr_number_tab_t
8351
                                        )
8352
                                  FROM DUAL
8353
                                ))
8354
                 UNION
8355
                 /* Private Views expanded */
8356
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8357
 
8358
                      --rel.pkg_state,
8359
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8360
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8361
                      pv.pv_description,
8362
                      rel.operation
8363
                  FROM users usr,
8364
                      view_settings vs,
8365
                      view_def vd,
8366
                      views vi,
8367
                      planned rel,
8368
                      PACKAGES pkg,
8369
                      package_versions pv
8370
                  WHERE vs.user_id = usr.user_id
8371
                   AND vs.view_id = vi.view_id
8372
                   AND vd.view_id = vi.view_id
8373
                   AND pv.pkg_id = pkg.pkg_id
8374
                   AND rel.pv_id = pv.pv_id
8375
                   AND rel.rtag_id = rtagid
8376
                   AND vd.pkg_id = pkg.pkg_id
8377
                   AND vi.base_view = 'N'
8378
                   AND vi.view_id IN (
8379
                        SELECT *
8380
                          FROM THE
8381
                                (SELECT CAST
8382
                                        (in_list_number
8383
                                               (sviewidshowlist) AS relmgr_number_tab_t
8384
                                        )
8385
                                  FROM DUAL
8386
                                ))
8387
                   AND usr.user_id = userid) ord
8388
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8389
     END IF;
8390
   END;
8391
 
8392
/*-------------------------------------------------------------------------------------------------------*/
8393
   PROCEDURE get_view_content (
8394
     rtagid     IN      NUMBER,
8395
     viewid     IN      NUMBER,
8396
     recordset OUT     typecur
8397
   )
8398
   IS
8399
     isbaseview   CHAR (1);
8400
   BEGIN
8401
     -- Check if the view is BASE VIEW
8402
     SELECT vi.base_view
8403
      INTO isbaseview
8404
      FROM views vi
8405
      WHERE vi.view_id = viewid;
8406
 
5172 dpurdie 8407
     IF (IsBaseView IN ('Y', 'S'))
1373 dpurdie 8408
     THEN
8409
       -- Get Base view content
8410
       OPEN recordset FOR
8411
         SELECT   DECODE (rel.pkg_state,
8412
                      NULL, 0,
8413
                      rel.pkg_state
8414
                     ) AS pkg_state,
8415
                rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8416
                pv.pkg_version, pv.dlocked, pv.pv_description,
8417
                pv.build_type,
8418
                rel.operation
8419
            FROM environment_view rel, PACKAGES pkg, package_versions pv
8420
            WHERE pv.pkg_id = pkg.pkg_id
8421
             AND rel.pv_id = pv.pv_id
8422
             AND rel.view_id = viewid
8423
             AND rel.rtag_id = rtagid
8424
         ORDER BY UPPER (pkg.pkg_name);
8425
     ELSE
8426
       -- Get non base view content
8427
       OPEN recordset FOR
8428
         SELECT   DECODE (rel.pkg_state,
8429
                      NULL, 0,
8430
                      rel.pkg_state
8431
                     ) AS pkg_state,
8432
                rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8433
                pv.pkg_version, pv.dlocked, pv.pv_description,
8434
                pv.build_type,
8435
                rel.operation
8436
            FROM environment_view rel,
8437
                PACKAGES pkg,
8438
                package_versions pv,
8439
                view_def vd
8440
            WHERE pv.pkg_id = pkg.pkg_id
8441
             AND rel.pv_id = pv.pv_id
8442
             AND rel.rtag_id = rtagid
8443
             AND vd.view_id = viewid
8444
             AND vd.pkg_id = pv.pkg_id
8445
         ORDER BY UPPER (pkg.pkg_name);
8446
     END IF;
8447
   END;
8448
 
8449
/*-------------------------------------------------------------------------------------------------------*/
8450
   FUNCTION get_package_view (pvid IN NUMBER, rtagid IN NUMBER)
8451
     RETURN NUMBER
8452
   IS
8453
     envtab           NUMBER;
8454
     returnvalue      NUMBER;
8455
     return_not_found NUMBER := -1;
8456
   BEGIN
8457
     envtab := get_package_area (pvid, rtagid);
8458
 
8459
     IF envtab = 0
8460
     THEN
8461
       -- WORK IN PROGRESS --
8462
       returnvalue := pk_work_in_progress.get_package_view (pvid, rtagid);
8463
     ELSIF envtab = 1
8464
     THEN
8465
       -- PENDING --
8466
       returnvalue := pk_planned.get_package_view (pvid, rtagid);
8467
     ELSIF envtab = 2
8468
     THEN
8469
       -- RELEASED --
8470
       returnvalue := pk_release.get_package_view (pvid, rtagid);
8471
     ELSE
8472
       -- This may be a Patch not located anywhere but unlocked
8473
       returnvalue := return_not_found;
8474
     END IF;
8475
 
8476
     RETURN returnvalue;
8477
   END;
8478
 
8479
/*-------------------------------------------------------------------------------------------------------*/
5172 dpurdie 8480
  PROCEDURE make_release (
4585 dpurdie 8481
     pvid          IN   NUMBER,                         -- NEW  PKG pvid
8482
     rtagid        IN   NUMBER,                         -- Release Id
8483
     userid        IN   NUMBER                          -- User performing Release
8484
   )
1373 dpurdie 8485
   IS
8486
     viewid        NUMBER;
8487
     envtab        NUMBER;
8488
     ispatch       CHAR (1) := NULL;
8489
     buildtype     CHAR (1) := NULL;
8490
   BEGIN
8491
     -- Check if package is patch
8492
     SELECT pv.is_patch, pv.build_type
8493
      INTO ispatch, buildtype
8494
      FROM package_versions pv
8495
      WHERE pv.pv_id = pvid;
8496
 
8497
     -- Get ViewId
8498
     viewid := get_package_view (pvid, rtagid);
8499
     -- Remove from current area
8500
     envtab := pk_environment.get_package_area (pvid, rtagid);
8501
 
8502
     -- Make sure that package was in work-in-progress or pending before makeing it release
8503
     -- Exclude patches, ripple builds
8504
     IF (envtab < 0)
8505
     THEN
8506
       -- Not found in work-in-progress or pending
8507
       IF (ispatch IS NULL) AND (buildtype = 'M')
8508
       THEN
8509
         raise_application_error (-20000,
8510
                            'This package cannot be released here.'
8511
                           );
8512
       END IF;
8513
     END IF;
8514
 
8515
     -- Log
5172 dpurdie 8516
     --log_action (pvid, 'action', userid, 'Start of Make Package Release...');
1373 dpurdie 8517
 
8518
     IF envtab = 0
8519
     THEN
8520
       -- WORK IN PROGRESS --
8521
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
8522
     ELSIF envtab = 1
8523
     THEN
8524
       -- PENDING --
8525
       pk_planned.remove_package (pvid, rtagid, userid);
8526
     END IF;
8527
 
8528
     -- Change package state
4585 dpurdie 8529
     -- Set dlocked state to mark the package a 'Released and Locked'
1373 dpurdie 8530
     pk_package.change_state (pvid, 'Y', userid);
8531
 
8532
     -- Make sure it is valid BASE VIEW
8533
     IF viewid < 1
8534
     THEN
8535
       viewid := 7;                     -- This is default base view
8536
     END IF;
8537
 
8538
     IF (ispatch IS NULL)
8539
     THEN
4585 dpurdie 8540
       -- Add (Replace) package to new area
1373 dpurdie 8541
       pk_release.add_package (pvid, viewid, rtagid, userid);
8542
     END IF;
8543
 
8544
     -- Now do post Release Actions
8545
     pk_release.run_post_actions (pvid, rtagid);
8546
 
8547
     -- The release has changed and there may now be invalid rtag_id/pv_id combinations in
8548
     -- the DO_NOT_RIPPLE and ADVISORY_RIPPLE Tables so perform a clean-up operation upon them.
8549
     clean_do_not_ripple(rtagid);
8550
     clean_advisory_ripple(rtagid);
8551
 
8552
     -- Log
5172 dpurdie 8553
     --log_action (pvid, 'action', userid, 'End of Make Package Release...');
1373 dpurdie 8554
   END;
8555
 
8556
/*-------------------------------------------------------------------------------------------------------*/
4585 dpurdie 8557
  --  Release a specified package into a specified release
8558
  --
8559
  --  Similar to 'make_release', but it attempts to handle the case where a package-version
8560
  --  is being replaced with one with a different package-suffix, but it doesn't
8561
  --  handle all the cases well. 
8562
  --
8563
  --  The current build system cannot do this automatically - yet
8564
  --
8565
  --
1373 dpurdie 8566
   PROCEDURE auto_make_release (
4585 dpurdie 8567
     pvid          IN   NUMBER,                         -- NEW  PKG pvid
8568
     rtagid        IN   NUMBER,                         -- Release Id
8569
     userid        IN   NUMBER,                         -- User performing Release
8570
     vext          IN   package_versions.v_ext%TYPE,    -- Package Extension for original pkg
8571
     ssv_ext       IN   package_versions.v_ext%TYPE,    -- Package Extension for new package
8572
     clonefrompvid IN   NUMBER                          -- PVID of Original
1373 dpurdie 8573
   )
8574
   IS
8575
     viewid        NUMBER;
8576
     envtab        NUMBER;
4585 dpurdie 8577
 
8578
     clone_removal NUMBER := 0;
8579
     clone_viewid  NUMBER := -1;
8580
     clone_envtab  NUMBER := -1;
8581
 
1373 dpurdie 8582
     ispatch       CHAR (1) := NULL;
4585 dpurdie 8583
     buildtype     CHAR (1) := NULL;
8584
 
1373 dpurdie 8585
   BEGIN
8586
     -- Check if package is patch
8587
     SELECT pv.is_patch, pv.build_type
8588
      INTO ispatch, buildtype
8589
      FROM package_versions pv
8590
      WHERE pv.pv_id = pvid;
8591
 
4585 dpurdie 8592
     --
8593
     -- Determine the viewid and environment for the new package
8594
     --
8595
     viewid := get_package_view (pvid, rtagid);
8596
     envtab := pk_environment.get_package_area (pvid, rtagid);
8597
 
8598
     --
8599
     -- If changing pkgExt, then we need to delete the orig package, not just replace it
8600
     --
8601
     IF (clonefrompvid is NOT NULL) AND (vext <> ssv_ext)
1373 dpurdie 8602
     THEN
4585 dpurdie 8603
        clone_removal := 1;
8604
        clone_viewid := get_package_view (clonefrompvid, rtagid);
8605
        clone_envtab := pk_environment.get_package_area (clonefrompvid, rtagid);
1373 dpurdie 8606
     END IF;
8607
 
4585 dpurdie 8608
     --
1373 dpurdie 8609
     -- Make sure that package was in work-in-progress or pending before makeing it release
8610
     -- Exclude patches, ripple builds
4585 dpurdie 8611
     --
1373 dpurdie 8612
     IF (envtab < 0)
8613
     THEN
8614
       -- Not found in work-in-progress or pending
8615
       IF (ispatch IS NULL) AND (buildtype = 'M')
8616
       THEN
8617
         raise_application_error (-20000,
8618
                            'This package cannot be released here.'
8619
                           );
8620
       END IF;
8621
     END IF;
8622
 
8623
     -- Log
5172 dpurdie 8624
     --log_action (pvid, 'action', userid, 'Start of Make Package Release...');
1373 dpurdie 8625
 
4585 dpurdie 8626
     --
8627
     -- Remove the package from the WIP or PENDING tab
8628
     -- Do NOT remove from the release area. 
8629
     --     This will be handled later with a process that
8630
     --     will do a 'replace' so that meta data is not lost
8631
     --
8632
    IF envtab = 0
8633
    THEN
8634
        -- WORK IN PROGRESS --
8635
        pk_work_in_progress.remove_package (pvid, rtagid, userid);
8636
    ELSIF envtab = 1
8637
    THEN
8638
        -- PENDING --
8639
        pk_planned.remove_package (pvid, rtagid, userid);
8640
    END IF;
8641
 
8642
    --
8643
    --  If we are changing the pkgExt, then fully remove the base package
8644
    --  This includes removing it from the 'release' area.
8645
    --
8646
    IF clone_removal = 1
8647
    THEN
8648
        IF clone_envtab = 0
8649
        THEN
8650
            -- WORK IN PROGRESS --
8651
            pk_work_in_progress.remove_package (clonefrompvid, rtagid, userid);
8652
        ELSIF clone_envtab = 1
8653
        THEN
8654
            -- PENDING --
8655
            pk_planned.remove_package (clonefrompvid, rtagid, userid);
8656
        ELSIF clone_envtab = 2
8657
        THEN
8658
            -- RELEASED --
8659
            pk_release.remove_package (clonefrompvid, rtagid, userid);
1373 dpurdie 8660
       END IF;
4585 dpurdie 8661
    END IF;
1373 dpurdie 8662
 
8663
     -- Change package state
4585 dpurdie 8664
     -- Set dlocked state to mark the package a 'Released and Locked'
1373 dpurdie 8665
     pk_package.change_state (pvid, 'Y', userid);
8666
 
8667
     -- Make sure it is valid BASE VIEW
4585 dpurdie 8668
     -- If its not specified, give it a default (7) view
1373 dpurdie 8669
     IF viewid < 1
8670
     THEN
4585 dpurdie 8671
        IF clone_viewid >= 0
8672
        THEN
8673
            viewid := clone_viewid; 
8674
        ELSE
8675
            viewid := 7;
8676
        END IF;
1373 dpurdie 8677
     END IF;
8678
 
8679
     IF (ispatch IS NULL)
8680
     THEN
4585 dpurdie 8681
       -- Add (Replace) package to new area
1373 dpurdie 8682
       pk_release.add_package (pvid, viewid, rtagid, userid);
8683
     END IF;
8684
 
8685
     -- Now do post Release Actions
8686
     pk_release.run_post_actions (pvid, rtagid);
8687
     -- Now update the Dash_Board Table (DEPRECATED)
8688
     pk_rmapi.update_dash_board (rtagid);
8689
 
8690
     -- The release has changed and there may now be invalid rtag_id/pv_id combinations in
8691
     -- the DO_NOT_RIPPLE and ADVISORY_RIPPLE Tables so perform a clean-up operation upon them.
8692
     clean_do_not_ripple(rtagid);
8693
     clean_advisory_ripple(rtagid);
8694
 
8695
     -- Log
5172 dpurdie 8696
     --log_action (pvid, 'action', userid, 'End of Make Package Release...');
1373 dpurdie 8697
   END;
8698
 
5172 dpurdie 8699
 
1373 dpurdie 8700
/*-------------------------------------------------------------------------------------------------------*/
8701
   PROCEDURE make_unrelease (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
8702
   IS
8703
     viewid   NUMBER;
8704
     envtab   NUMBER;
8705
   BEGIN
8706
     -- Get ViewId
8707
     --ViewId := PK_RELEASE.GET_PACKAGE_VIEW ( PvId, RtagId );
8708
     viewid := get_package_view (pvid, rtagid);
8709
     -- Remove from current area
8710
     envtab := pk_environment.get_package_area (pvid, rtagid);
8711
     -- Log
5172 dpurdie 8712
     -- log_action (pvid, 'action', userid, 'Start of Make Package UnRelease...' );
1373 dpurdie 8713
 
8714
     IF envtab = 2
8715
     THEN
8716
       -- RELEASE AREA --
8717
       pk_release.remove_package (pvid, rtagid, userid);
8718
     ELSIF envtab = 1
8719
     THEN
8720
       -- PENDING --
8721
       pk_planned.remove_package (pvid, rtagid, userid);
8722
     END IF;
8723
 
8724
     -- Change package state
8725
     pk_package.change_state (pvid, 'N', userid);
8726
 
8727
     -- Make sure it is valid BASE VIEW
8728
     IF viewid < 1
8729
     THEN
8730
       viewid := 7;                     -- This is default base view
8731
     END IF;
8732
 
8733
     -- Add package to new area
8734
     pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
8735
     -- Now do post Release Actions
8736
     pk_release.run_post_actions (pvid, rtagid);
5172 dpurdie 8737
 
1373 dpurdie 8738
     -- Log
5172 dpurdie 8739
     -- log_action (pvid, 'action', userid, 'End of Make Package UnRelease...');
1373 dpurdie 8740
   END;
8741
 
8742
/*-------------------------------------------------------------------------------------------------------*/
8743
   PROCEDURE make_pending (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
8744
   IS
8745
     viewid     NUMBER;
8746
     ispatch    CHAR (1) := NULL;
8747
     buildtype  CHAR (1) := NULL;
8748
   BEGIN
8749
     -- Check if package is patch
8750
     SELECT pv.is_patch, pv.build_type
8751
      INTO ispatch, buildtype
8752
      FROM package_versions pv
8753
      WHERE pv.pv_id = pvid;
8754
 
8755
     -- Get ViewId
8756
     viewid := get_package_view (pvid, rtagid);
8757
     --ViewId := PK_WORK_IN_PROGRESS.GET_PACKAGE_VIEW ( PvId, RtagId );
8758
 
8759
     -- Log
5172 dpurdie 8760
     --log_action (pvid, 'action', userid, 'Start of Make Package Pending...');
1373 dpurdie 8761
 
8762
     IF (ispatch IS NULL)
8763
     THEN
8764
       -- Remove from current area
8765
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
8766
       -- Change package state
8767
       pk_package.change_state (pvid, 'P', userid);
8768
       -- Add package to new area
8769
       pk_planned.add_package (pvid, viewid, rtagid, userid);
8770
     END IF;
8771
 
8772
     -- Log
5172 dpurdie 8773
     --log_action (pvid, 'action', userid, 'End of Make Package Pending...');
1373 dpurdie 8774
   END;
8775
 
8776
/*-------------------------------------------------------------------------------------------------------*/
8777
   PROCEDURE make_approved (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
8778
   IS
8779
   BEGIN
8780
     -- Log
5172 dpurdie 8781
     -- log_action (pvid, 'action', userid, 'Start of Package Pending Approval...' );
1373 dpurdie 8782
     -- Change package state
8783
     pk_package.change_state (pvid, 'A', userid);
5172 dpurdie 8784
 
8785
     -- Flag Release has changed for the purposes of building
8786
     PK_RELEASE.SET_RELEASE_MODIFIED(rtagid);
8787
 
1373 dpurdie 8788
     -- Log
5172 dpurdie 8789
     -- log_action (pvid, 'action', userid, 'End of Package Pending Approval...');
1373 dpurdie 8790
   END;
8791
 
8792
/*-------------------------------------------------------------------------------------------------------*/
8793
   PROCEDURE make_reject (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
8794
   IS
8795
     viewid   NUMBER;
8796
     operation CHAR;
8797
   BEGIN
8798
     -- Get ViewId
8799
     viewid := get_package_view (pvid, rtagid);
8800
     -- ViewId := PK_PLANNED.GET_PACKAGE_VIEW ( PvId, RtagId );
8801
 
8802
     -- DEVI-45275
8803
     -- If the package version is an official version that is to be rejected from a merge operation
8804
     -- then find out in order to prevent it being added back to work-in-progress table . This will
8805
     -- be denoted by the operation field in the planned table being A or S
8806
     operation := ' ';
8807
     SELECT
8808
     (CASE WHEN pl.operation IS NOT NULL THEN pl.operation ELSE ' ' END) INTO operation
8809
     FROM planned pl
8810
     WHERE pl.PV_ID = pvid
8811
     AND pl.RTAG_ID = rtagid;
8812
 
8813
     -- Log
5172 dpurdie 8814
     -- log_action (pvid, 'action', userid, 'Start of Reject Package...');
8815
 
1373 dpurdie 8816
     -- Remove from current area
8817
     pk_planned.remove_package (pvid, rtagid, userid);
8818
 
8819
     -- DEVI-45275 - Prevent merge candidate from being added back to work-in-progress table .
8820
     IF operation <> 'A' AND operation <> 'S'
8821
     THEN
8822
     -- Change package state
8823
     pk_package.change_state (pvid, 'R', userid);
8824
     -- Add package to new area
8825
     pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
8826
     ELSE
8827
      log_action (pvid, 'action', userid, 'Rejected Package Merge');
8828
     END IF;
5172 dpurdie 8829
 
1373 dpurdie 8830
     -- Log
5172 dpurdie 8831
     -- log_action (pvid, 'action', userid, 'End of Reject Package...');
1373 dpurdie 8832
   END;
8833
 
8834
/*-------------------------------------------------------------------------------------------------------*/
8835
   PROCEDURE change_package_view (
8836
     pvid       IN   NUMBER,
8837
     rtagid     IN   NUMBER,
8838
     newviewid  IN   NUMBER
8839
   )
8840
   IS
8841
     envtab   NUMBER;
8842
   BEGIN
8843
     envtab := pk_environment.get_package_area (pvid, rtagid);
8844
 
8845
     IF envtab = 0
8846
     THEN
8847
       -- WORK IN PROGRESS --
8848
       pk_work_in_progress.change_package_view (pvid, rtagid, newviewid);
8849
     ELSIF envtab = 1
8850
     THEN
8851
       -- PENDING --
8852
       pk_planned.change_package_view (pvid, rtagid, newviewid);
8853
     ELSIF envtab = 2
8854
     THEN
8855
       -- RELEASED --
8856
       pk_release.change_package_view (pvid, rtagid, newviewid);
8857
     END IF;
8858
   END;
8859
 
8860
/*-------------------------------------------------------------------------------------------------------*/
8861
   PROCEDURE find_package (
8862
     skeyword     IN      VARCHAR2,
8863
     nrtagid      IN      NUMBER,
8864
     nsearcharea  IN      NUMBER,
8865
     recordset    OUT     typecur
8866
   )
8867
   IS
8868
   BEGIN
8869
     IF nsearcharea = 0
8870
     THEN
8871
       /* Search Work In Progress */
8872
       OPEN recordset FOR
8873
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
8874
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
8875
                pv.modified_stamp, usr.full_name, usr.user_email
8876
           FROM views vi,
8877
                work_in_progress rc,
8878
                PACKAGES pkg,
8879
                package_versions pv,
8880
                users usr
8881
          WHERE rc.view_id = vi.view_id
8882
            AND rc.pv_id = pv.pv_id
8883
            AND pkg.pkg_id = pv.pkg_id
8884
            AND pv.modifier_id = usr.user_id
8885
            AND rc.rtag_id = nrtagid
8886
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
8887
       ORDER BY UPPER (pkg.pkg_name);
8888
     ELSIF nsearcharea = 1
8889
     THEN
8890
       /* Search Pending */
8891
       OPEN recordset FOR
8892
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
8893
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
8894
                pv.modified_stamp, usr.full_name, usr.user_email
8895
           FROM views vi,
8896
                planned rc,
8897
                PACKAGES pkg,
8898
                package_versions pv,
8899
                users usr
8900
          WHERE rc.view_id = vi.view_id
8901
            AND rc.pv_id = pv.pv_id
8902
            AND pkg.pkg_id = pv.pkg_id
8903
            AND pv.modifier_id = usr.user_id
8904
            AND rc.rtag_id = nrtagid
8905
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
8906
       ORDER BY UPPER (pkg.pkg_name);
8907
     ELSIF nsearcharea = 2
8908
     THEN
8909
       /* Search Released */
8910
       OPEN recordset FOR
8911
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
8912
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
8913
                pv.modified_stamp, usr.full_name, usr.user_email
8914
           FROM views vi,
8915
                release_content rc,
8916
                PACKAGES pkg,
8917
                package_versions pv,
8918
                users usr
8919
          WHERE rc.base_view_id = vi.view_id
8920
            AND rc.pv_id = pv.pv_id
8921
            AND pkg.pkg_id = pv.pkg_id
8922
            AND pv.modifier_id = usr.user_id
8923
            AND rc.rtag_id = nrtagid
8924
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
8925
         ORDER BY UPPER (pkg.pkg_name);
8926
     ELSIF nsearcharea = 3
8927
     THEN
8928
       /* Search ALL */
8929
       OPEN recordset FOR
8930
         SELECT rc.env_area, vi.view_name, pv.dlocked, pkg.pkg_name,
8931
                pv.pv_id, pv.pkg_version, pv.comments,
8932
                pv.modified_stamp, usr.full_name, usr.user_email
8933
           FROM views vi,
8934
                environment_view rc,
8935
                PACKAGES pkg,
8936
                package_versions pv,
8937
                users usr
8938
          WHERE rc.view_id = vi.view_id
8939
            AND rc.pv_id = pv.pv_id
8940
            AND pkg.pkg_id = pv.pkg_id
8941
            AND pv.modifier_id = usr.user_id
8942
            AND rc.rtag_id = nrtagid
8943
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
8944
         ORDER BY UPPER (pkg.pkg_name);
8945
     END IF;
8946
   END;
8947
 
8948
/*-------------------------------------------------------------------------------------------------------*/
8949
   PROCEDURE find_file (
8950
     skeyword     IN      VARCHAR2,
8951
     nrtagid      IN      NUMBER,
8952
     nsearcharea  IN      NUMBER,
8953
     npagesize    IN      NUMBER,
8954
     recordset    OUT     typecur
8955
   )
8956
   IS
8957
   BEGIN
8958
     IF nsearcharea = 0
8959
     THEN
8960
       /* Search Work In Progress */
8961
       OPEN recordset FOR
8962
         SELECT   qry.*
8963
            FROM (
8964
                 /* File search on Packages */
8965
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8966
                        pv.pv_id, pv.pkg_version, art.crc_cksum
8967
                   FROM work_in_progress rc,
8968
                        PACKAGES pkg,
8969
                        package_versions pv,
8970
                        release_components art
8971
                  WHERE rc.pv_id = art.pv_id
8972
                    AND pv.pkg_id = pkg.pkg_id
8973
                    AND rc.pv_id = pv.pv_id
8974
                    AND rc.rtag_id = nrtagid
8975
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
8976
                 UNION ALL
8977
                 /* File search on Products */
8978
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8979
                        pv.pv_id, pv.pkg_version, art.crc_cksum
8980
                   FROM work_in_progress rc,
8981
                        PACKAGES pkg,
8982
                        package_versions pv,
8983
                        product_components art
8984
                  WHERE rc.pv_id = art.pv_id
8985
                    AND pv.pkg_id = pkg.pkg_id
8986
                    AND rc.pv_id = pv.pv_id
8987
                    AND rc.rtag_id = nrtagid
8988
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
8989
            WHERE ROWNUM <= npagesize
8990
         ORDER BY UPPER (qry.pkg_name);
8991
     ELSIF nsearcharea = 1
8992
     THEN
8993
       /* Search Pending */
8994
       OPEN recordset FOR
8995
         SELECT   qry.*
8996
            FROM (
8997
                 /* File search on Packages */
8998
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8999
                        pv.pv_id, pv.pkg_version, art.crc_cksum
9000
                   FROM planned rc,
9001
                        PACKAGES pkg,
9002
                        package_versions pv,
9003
                        release_components art
9004
                  WHERE rc.pv_id = art.pv_id
9005
                    AND pv.pkg_id = pkg.pkg_id
9006
                    AND rc.pv_id = pv.pv_id
9007
                    AND rc.rtag_id = nrtagid
9008
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
9009
                 UNION ALL
9010
                 /* File search on Products */
9011
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9012
                        pv.pv_id, pv.pkg_version, art.crc_cksum
9013
                   FROM planned rc,
9014
                        PACKAGES pkg,
9015
                        package_versions pv,
9016
                        product_components art
9017
                  WHERE rc.pv_id = art.pv_id
9018
                    AND pv.pkg_id = pkg.pkg_id
9019
                    AND rc.pv_id = pv.pv_id
9020
                    AND rc.rtag_id = nrtagid
9021
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
9022
            WHERE ROWNUM <= npagesize
9023
         ORDER BY UPPER (qry.pkg_name);
9024
     ELSIF nsearcharea = 2
9025
     THEN
9026
       /* Search Released */
9027
       OPEN recordset FOR
9028
         SELECT   qry.*
9029
            FROM (
9030
                 /* File search on Packages */
9031
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9032
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9033
                        NULL AS patch_id
9034
                   FROM release_content rc,
9035
                        PACKAGES pkg,
9036
                        package_versions pv,
9037
                        release_components art
9038
                  WHERE rc.pv_id = art.pv_id
9039
                    AND pv.pkg_id = pkg.pkg_id
9040
                    AND rc.pv_id = pv.pv_id
9041
                    AND rc.rtag_id = nrtagid
9042
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
9043
                 UNION ALL
9044
                 /* File search on Products */
9045
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9046
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9047
                        NULL AS patch_id
9048
                   FROM release_content rc,
9049
                        PACKAGES pkg,
9050
                        package_versions pv,
9051
                        product_components art
9052
                  WHERE rc.pv_id = art.pv_id
9053
                    AND pv.pkg_id = pkg.pkg_id
9054
                    AND rc.pv_id = pv.pv_id
9055
                    AND rc.rtag_id = nrtagid
9056
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
9057
                 UNION ALL
9058
                 /* File search on Patches */
9059
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9060
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9061
                        DECODE (art.file_path,
9062
                                NULL, pp.patch_id,
9063
                                NULL
9064
                                ) AS patch_id
9065
                   FROM release_content rc,
9066
                        PACKAGES pkg,
9067
                        package_versions pv,
9068
                        release_components art,
9069
                        package_patches pp
9070
                  WHERE pv.pv_id = pp.pv_id
9071
                    AND pv.pkg_id = pkg.pkg_id
9072
                    AND rc.rtag_id = nrtagid
9073
                    AND art.pv_id = pp.patch_id
9074
                    AND rc.pv_id = pp.pv_id
9075
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
9076
            WHERE ROWNUM <= npagesize
9077
         ORDER BY UPPER (qry.pkg_name);
9078
     ELSIF nsearcharea = 3
9079
     THEN
9080
       /* Search ALL */
9081
       OPEN recordset FOR
9082
         SELECT   qry.*
9083
            FROM (
9084
                 /* File search on Packages */
9085
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9086
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9087
                        NULL AS patch_id
9088
                   FROM environment_view rc,
9089
                        PACKAGES pkg,
9090
                        package_versions pv,
9091
                        release_components art
9092
                  WHERE rc.pv_id = art.pv_id
9093
                    AND pv.pkg_id = pkg.pkg_id
9094
                    AND rc.pv_id = pv.pv_id
9095
                    AND rc.rtag_id = nrtagid
9096
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
9097
                 UNION ALL
9098
                 /* File search on Products */
9099
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9100
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9101
                        NULL AS patch_id
9102
                   FROM environment_view rc,
9103
                        PACKAGES pkg,
9104
                        package_versions pv,
9105
                        product_components art
9106
                  WHERE rc.pv_id = art.pv_id
9107
                    AND pv.pkg_id = pkg.pkg_id
9108
                    AND rc.pv_id = pv.pv_id
9109
                    AND rc.rtag_id = nrtagid
9110
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
9111
                 UNION ALL
9112
                 /* File search on Patches */
9113
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9114
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9115
                        DECODE (art.file_path,
9116
                                NULL, pp.patch_id,
9117
                                NULL
9118
                               ) AS patch_id
9119
                   FROM release_content rc,
9120
                        PACKAGES pkg,
9121
                        package_versions pv,
9122
                        release_components art,
9123
                        package_patches pp
9124
                  WHERE pv.pv_id = pp.pv_id
9125
                    AND pv.pkg_id = pkg.pkg_id
9126
                    AND rc.rtag_id = nrtagid
9127
                    AND art.pv_id = pp.patch_id
9128
                    AND rc.pv_id = pp.pv_id
9129
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
9130
            WHERE ROWNUM <= npagesize
9131
         ORDER BY UPPER (qry.pkg_name);
9132
     END IF;
9133
   END;
9134
 
9135
/*-------------------------------------------------------------------------------------------------------*/
9136
   PROCEDURE get_prodrelease_items (
9137
     rtagid           IN      NUMBER,
9138
     ntruerecordcount OUT     NUMBER,
9139
     recordset        OUT     typecur
9140
   )
9141
   IS
9142
   BEGIN
9143
     -- Get true record count n the number of integration products
9144
     SELECT COUNT (rc.pv_id)
9145
      INTO ntruerecordcount
9146
      FROM release_content rc
9147
      WHERE rc.rtag_id = rtagid;
9148
 
9149
     OPEN recordset FOR
9150
       SELECT vi.view_id, vi.view_name, rel.pkg_state,   --rel.pkg_state,
9151
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9152
              pv.pkg_version, pv.dlocked, pv.pv_description
9153
         FROM release_content rel,
9154
              PACKAGES pkg,
9155
              package_versions pv,
9156
              views vi
9157
        WHERE pv.pkg_id = pkg.pkg_id
9158
          AND rel.pv_id = pv.pv_id
9159
          AND rel.base_view_id = vi.view_id
9160
          AND pv.is_deployable = 'Y'
9161
          AND rtag_id = rtagid
9162
          AND pv.pv_id NOT IN (SELECT DISTINCT prod_id
9163
                                 FROM deployment_manager.os_contents)
9164
          AND rel.product_state IS NULL
9165
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9166
   END;
9167
 
9168
/*-------------------------------------------------------------------------------------------------------*/
9169
   PROCEDURE get_integration_items (
9170
     rtagid           IN      NUMBER,
9171
     ntruerecordcount OUT     NUMBER,
9172
     recordset        OUT     typecur
9173
   )
9174
   IS
9175
   BEGIN
9176
     -- Get true record count n the number of integration products
9177
     SELECT COUNT (rc.pv_id)
9178
      INTO ntruerecordcount
9179
      FROM release_content rc
9180
      WHERE rc.rtag_id = rtagid AND rc.product_state = 1;
9181
 
9182
     OPEN recordset FOR
9183
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9184
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9185
              pv.pkg_version, pv.dlocked, pv.pv_description
9186
         FROM release_content rel,
9187
              PACKAGES pkg,
9188
              package_versions pv,
9189
              views vi
9190
        WHERE pv.pkg_id = pkg.pkg_id
9191
          AND rel.pv_id = pv.pv_id
9192
          AND rel.base_view_id = vi.view_id
9193
          AND pv.is_deployable = 'Y'
9194
          AND rtag_id = rtagid
9195
          AND rel.product_state IN (1, 5)
9196
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9197
   END;
9198
 
9199
/*-------------------------------------------------------------------------------------------------------*/
9200
   PROCEDURE get_test_items (
9201
     rtagid           IN      NUMBER,
9202
     ntruerecordcount OUT     NUMBER,
9203
     recordset        OUT     typecur
9204
   )
9205
   IS
9206
   BEGIN
9207
     -- Get true record count n the number of test products
9208
     SELECT COUNT (rc.pv_id)
9209
      INTO ntruerecordcount
9210
      FROM release_content rc
9211
      WHERE rc.rtag_id = rtagid AND rc.product_state = 2;
9212
 
9213
     OPEN recordset FOR
9214
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9215
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9216
              pv.pkg_version, pv.dlocked, pv.pv_description
9217
         FROM release_content rel,
9218
              PACKAGES pkg,
9219
              package_versions pv,
9220
              views vi
9221
        WHERE pv.pkg_id = pkg.pkg_id
9222
          AND rel.pv_id = pv.pv_id
9223
          AND rel.base_view_id = vi.view_id
9224
          AND pv.is_deployable = 'Y'
9225
          AND rtag_id = rtagid
9226
          AND rel.product_state = 2
9227
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9228
   END;
9229
 
9230
/*-------------------------------------------------------------------------------------------------------*/
9231
   PROCEDURE get_deploy_items (
9232
     rtagid           IN      NUMBER,
9233
     ntruerecordcount OUT     NUMBER,
9234
     recordset        OUT     typecur
9235
   )
9236
   IS
9237
   BEGIN
9238
     -- Get true record count n the number of deploy products
9239
     SELECT COUNT (rc.pv_id)
9240
      INTO ntruerecordcount
9241
      FROM release_content rc
9242
      WHERE rc.rtag_id = rtagid AND rc.product_state = 3;
9243
 
9244
     OPEN recordset FOR
9245
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9246
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9247
              pv.pkg_version, pv.dlocked, pv.pv_description
9248
         FROM release_content rel,
9249
              PACKAGES pkg,
9250
              package_versions pv,
9251
              views vi
9252
        WHERE pv.pkg_id = pkg.pkg_id
9253
          AND rel.pv_id = pv.pv_id
9254
          AND rel.base_view_id = vi.view_id
9255
          AND pv.is_deployable = 'Y'
9256
          AND rtag_id = rtagid
9257
          AND rel.product_state IN (3, 5)
9258
          AND pv.pv_id NOT IN (SELECT DISTINCT prod_id
9259
                                 FROM deployment_manager.os_contents)
9260
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9261
   END;
9262
 
9263
/*-------------------------------------------------------------------------------------------------------*/
9264
   PROCEDURE get_reject_items (
9265
     rtagid           IN      NUMBER,
9266
     ntruerecordcount OUT     NUMBER,
9267
     recordset        OUT     typecur
9268
   )
9269
   IS
9270
   BEGIN
9271
     -- Get true record count n the number of reject products
9272
     SELECT COUNT (rc.pv_id)
9273
       INTO ntruerecordcount
9274
       FROM release_content rc
9275
      WHERE rc.rtag_id = rtagid AND rc.product_state = 4;
9276
 
9277
     OPEN recordset FOR
9278
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9279
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9280
              pv.pkg_version, pv.dlocked, pv.pv_description
9281
         FROM release_content rel,
9282
              PACKAGES pkg,
9283
              package_versions pv,
9284
              views vi
9285
        WHERE pv.pkg_id = pkg.pkg_id
9286
          AND rel.pv_id = pv.pv_id
9287
          AND rel.base_view_id = vi.view_id
9288
          AND pv.is_deployable = 'Y'
9289
          AND rtag_id = rtagid
9290
          AND rel.product_state = 4
9291
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9292
   END;
9293
/*-------------------------------------------------------------------------------------------------------*/
9294
   -- DEVI-45275 - this procedure performs the merge of an existing package version in the planned table
9295
   -- to the release_content table.
9296
 
9297
  PROCEDURE approve_merge (
9298
   PvId    IN NUMBER,
9299
   RtagId  IN NUMBER,
9300
   UserId  IN NUMBER
9301
  )
9302
  IS
9303
   viewid        NUMBER;
9304
   envtab        NUMBER;
9305
   oper         CHAR;
9306
  BEGIN
9307
      -- Get ViewId
9308
     viewid := get_package_view (pvid, rtagid);
9309
 
9310
     -- Get the view tab
9311
     envtab := pk_environment.get_package_area (pvid, rtagid);
9312
 
9313
     -- Make sure that package was in pending before merging it to released
9314
     IF (envtab <> 1)
9315
     THEN
9316
       -- Not found in pending
9317
       raise_application_error (-20000,
9318
                          'This package cannot be released here.'
9319
                         );
9320
     END IF;
9321
 
9322
     -- Log
5172 dpurdie 9323
     --log_action (pvid, 'action', userid, 'Start of Package Merge...');
1373 dpurdie 9324
 
9325
     -- Get the planned operation type A=Add, S=Subtract
9326
     SELECT ev.operation INTO oper
9327
       FROM environment_view ev
9328
      WHERE ev.rtag_id = RtagId
9329
        AND ev.pv_id = PvId
9330
        AND (ev.operation = 'A' OR ev.operation = 'S');
9331
 
9332
     -- Remove from Pending
9333
     pk_planned.remove_package (PvId, RtagId, UserId);
9334
 
9335
     -- Either add to the release, or remove from the release as the operation commands
9336
     IF oper = 'A'
9337
     THEN
9338
       pk_release.add_package(PvId, viewId, RtagId, UserId);
9339
 
9340
     ELSIF oper = 'S'
9341
     THEN
9342
       pk_release.remove_package(PvId, RtagId, UserId);
9343
 
9344
       -- Delete old package's pegging info
9345
       DELETE FROM PEGGED_VERSIONS pegv WHERE pegv.RTAG_ID = RtagId AND pegv.PV_ID = PvId;
9346
 
9347
       -- Delete old package's advisory ripple info
9348
       DELETE FROM ADVISORY_RIPPLE avr WHERE avr.RTAG_ID = RtagId AND avr.PV_ID = PvId;
9349
     END IF;
9350
 
9351
     touch_release(RtagId);
9352
 
9353
     -- Log
5172 dpurdie 9354
     --log_action (pvid, 'action', userid, 'End of Package Merge...');
1373 dpurdie 9355
  END;
9356
/*-------------------------------------------------------------------------------------------------------*/
9357
END pk_environment;
4040 dpurdie 9358
 
1374 dpurdie 9359
/
4040 dpurdie 9360
--------------------------------------------------------
9361
--  DDL for Package Body PK_LICENCING
9362
--------------------------------------------------------
9363
 
5172 dpurdie 9364
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_LICENCING" IS
1373 dpurdie 9365
 
9366
/*
9367
------------------------------
3959 dpurdie 9368
||  Last Modified:  G.Huddy
9369
||  Modified Date:  19/Aug/2008
1373 dpurdie 9370
||  Body Version:   1.0
9371
------------------------------
9372
*/
9373
 
3959 dpurdie 9374
   PROCEDURE ADD_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER ) IS
9375
   BEGIN
9376
      IF IS_LICENCED(PvId, licenceId) = 0 THEN
9377
         -- Add entry to licencing table
9378
         INSERT INTO licencing (pv_id, licence)
9379
         VALUES (PvId, licenceId);
1373 dpurdie 9380
 
3959 dpurdie 9381
         -- log action
9382
         -- TODO
9383
      END IF;
1373 dpurdie 9384
 
3959 dpurdie 9385
   END;
1373 dpurdie 9386
 
9387
/*-------------------------------------------------------------------------------------------------------*/
9388
 
3959 dpurdie 9389
   PROCEDURE REMOVE_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER ) IS
9390
   BEGIN
9391
      IF NOT IS_LICENCED(PvId, licenceId) = 0 THEN
9392
         -- Delete entry from licencing table
9393
         DELETE FROM licencing
9394
         WHERE pv_id = PvId
9395
         AND licence = licenceId;
1373 dpurdie 9396
 
3959 dpurdie 9397
         -- log action
9398
         -- TODO
9399
      END IF;
9400
   END;
1373 dpurdie 9401
 
9402
/*-------------------------------------------------------------------------------------------------------*/
9403
 
3959 dpurdie 9404
   PROCEDURE CLONE_LICENCING( fromPvId IN NUMBER, toPvId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 9405
 
3959 dpurdie 9406
      CURSOR licencing_cur
9407
      IS
9408
         SELECT *
9409
         FROM licencing
9410
         WHERE pv_id = fromPvId;
1373 dpurdie 9411
 
3959 dpurdie 9412
      licencing_rec licencing_cur%ROWTYPE;
1373 dpurdie 9413
 
9414
   BEGIN
3959 dpurdie 9415
      -- For each licence association that the Last PV_ID had, create a similar
9416
      -- arrangement for the new PV_ID
9417
      -- NOTE that any additional licencing associations the new PV_ID has that the old one
9418
      -- does not have, are retained. The assumption is that the user has made those and so we do not
9419
      -- have any right to destroy them without asking them.
9420
      OPEN licencing_cur;
1373 dpurdie 9421
 
3959 dpurdie 9422
      FETCH licencing_cur
9423
      INTO licencing_rec;
1373 dpurdie 9424
 
3959 dpurdie 9425
      WHILE licencing_cur%FOUND
1373 dpurdie 9426
      LOOP
3959 dpurdie 9427
         ADD_LICENCE ( toPvId, licencing_rec.licence, UserId );
1373 dpurdie 9428
 
3959 dpurdie 9429
         FETCH licencing_cur
9430
         INTO licencing_rec;
1373 dpurdie 9431
      END LOOP;
9432
   END;
9433
 
9434
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 9435
 
9436
   FUNCTION IS_LICENCED( PvId IN NUMBER, licenceId IN NUMBER) RETURN NUMBER IS
9437
      found NUMBER;
1373 dpurdie 9438
   BEGIN
9439
 
3959 dpurdie 9440
      SELECT COUNT(*) INTO found
9441
      FROM licencing
9442
      WHERE pv_id = PvId
9443
      AND licence = LicenceId;
1373 dpurdie 9444
 
3959 dpurdie 9445
      RETURN found;
1373 dpurdie 9446
   END;
9447
 
9448
/*-------------------------------------------------------------------------------------------------------*/
9449
 
3959 dpurdie 9450
   PROCEDURE REMOVE_ALL_LICENCING( PvId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 9451
 
3959 dpurdie 9452
      CURSOR licencing_cur
9453
      IS
1373 dpurdie 9454
         SELECT *
3959 dpurdie 9455
         FROM licencing
9456
         WHERE pv_id = PvId;
1373 dpurdie 9457
 
3959 dpurdie 9458
      licencing_rec licencing_cur%ROWTYPE;
9459
   BEGIN
9460
      -- For each licence association that the PV_ID had, remove it
9461
      OPEN licencing_cur;
1373 dpurdie 9462
 
3959 dpurdie 9463
      FETCH licencing_cur
9464
      INTO licencing_rec;
1373 dpurdie 9465
 
3959 dpurdie 9466
      WHILE licencing_cur%FOUND
9467
      LOOP
9468
         REMOVE_LICENCE ( PvId, licencing_rec.licence, UserId );
1373 dpurdie 9469
 
3959 dpurdie 9470
         FETCH licencing_cur
9471
         INTO licencing_rec;
9472
      END LOOP;
1373 dpurdie 9473
   END;
9474
 
9475
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 9476
END PK_LICENCING;
4040 dpurdie 9477
 
1374 dpurdie 9478
/
4040 dpurdie 9479
--------------------------------------------------------
9480
--  DDL for Package Body PK_PACKAGE
9481
--------------------------------------------------------
9482
 
5172 dpurdie 9483
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PACKAGE" 
1373 dpurdie 9484
IS
9485
   /*-------------------------------------------------------------------------------------------------------*/
9486
   PROCEDURE new_version (
9487
      nlastpvid                   IN       NUMBER,
9488
      snewpkgversion              IN       VARCHAR2 DEFAULT NULL,
9489
      cbuildtype                  IN       CHAR,
4211 dpurdie 9490
      cchangetype                 IN       CHAR,
1373 dpurdie 9491
      nsettopvid                  IN       NUMBER DEFAULT NULL,
9492
      nrtagid                     IN       NUMBER,
9493
      nuserid                     IN       NUMBER,
9494
      enumissues_state_imported   IN       NUMBER,
9495
      returnpvid                  OUT      NUMBER
9496
   )
9497
   IS
3959 dpurdie 9498
      origpkg_id                  package_versions.pkg_id%TYPE;
9499
      origdlocked                 package_versions.dlocked%TYPE;
9500
      ssv_mm                      package_versions.v_mm%TYPE;
9501
      ssv_nmm                     package_versions.v_nmm%TYPE;
9502
      ssv_ext                     package_versions.v_ext%TYPE;
9503
      spackageversion             VARCHAR2 (4000);
9504
      nissuestypes                NUMBER;
9505
      nviewid                     NUMBER;
9506
      reccount                    NUMBER;
9507
      isreleased                  package_versions.dlocked%TYPE := 'N';
9508
      slabel                      VARCHAR2 (4000)               := NULL;
4211 dpurdie 9509
      uchangetype                 CHAR := cchangetype;
1373 dpurdie 9510
 
9511
      CURSOR package_versions_cur
9512
      IS
9513
         SELECT pv.pv_id, pv.is_patch, pv.dlocked
9514
           FROM package_versions pv
9515
          WHERE pv.pkg_version = snewpkgversion
9516
            AND pv.pkg_id IN (SELECT DISTINCT origpv.pkg_id
9517
                                         FROM package_versions origpv
9518
                                        WHERE origpv.pv_id = nlastpvid);
9519
 
3959 dpurdie 9520
      package_versions_rec package_versions_cur%ROWTYPE;
1373 dpurdie 9521
 
9522
      CURSOR clone_package_versions_cur
9523
      IS
9524
         SELECT DISTINCT pkg_id, dlocked
9525
                    FROM package_versions
9526
                   WHERE pv_id = nlastpvid;
9527
 
3959 dpurdie 9528
      clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
1373 dpurdie 9529
   BEGIN
9530
      spackageversion := snewpkgversion;
9531
 
9532
      IF nsettopvid IS NULL
9533
      THEN
9534
         -- SetToPv_id is not supplied, hence proceed.
9535
 
9536
         /* ---------------------------------------------------- */
3959 dpurdie 9537
         /* Find id package_version exists                       */
9538
         /* ---------------------------------------------------- */
1373 dpurdie 9539
         OPEN package_versions_cur;
9540
 
9541
         FETCH package_versions_cur
9542
          INTO package_versions_rec;
9543
 
9544
         IF package_versions_cur%NOTFOUND
9545
         THEN
9546
            ---  Create brand new package ---
9547
            SELECT seq_pv_id.NEXTVAL
9548
              INTO returnpvid
9549
              FROM DUAL;
9550
 
9551
            -- Split Version to get extention + other
9552
            split_version (spackageversion, ssv_mm, ssv_nmm, ssv_ext);
9553
 
9554
            -- Get previous package to clone from
9555
            OPEN clone_package_versions_cur;
9556
 
9557
            FETCH clone_package_versions_cur
9558
             INTO clone_package_versions_rec;
9559
 
9560
            origpkg_id := clone_package_versions_rec.pkg_id;
9561
            origdlocked := clone_package_versions_rec.dlocked;
9562
 
9563
            CLOSE clone_package_versions_cur;
9564
 
9565
            -- Automated built config
4211 dpurdie 9566
            IF ( cbuildtype = 'M' ) THEN
9567
              uchangetype := 'F';
9568
            END IF;  
9569
 
9570
            -- Automated version numbering
9571
            -- Make sure that version is still unique
9572
            IF (uchangetype != 'F') THEN
9573
              spackageversion := '(' || returnpvid || ')' || ssv_ext;
1373 dpurdie 9574
            END IF;
4211 dpurdie 9575
 
1373 dpurdie 9576
 
9577
            -- Clone Package Version Details --
3959 dpurdie 9578
            INSERT INTO package_versions(pv_id, pkg_id, pkg_version, dlocked, created_stamp,
9579
                                         creator_id, modified_stamp, modifier_id, v_mm, v_nmm,
9580
                                         v_ext, src_path, pv_description, pv_overview,
9581
                                         last_pv_id, owner_id, is_deployable,
4211 dpurdie 9582
                                         is_build_env_required, build_type, change_type, 
5892 dpurdie 9583
                                         bs_id, is_autobuildable, ripple_field, build_time)
3959 dpurdie 9584
                 SELECT returnpvid AS pv_id, origpkg_id AS pkg_id,
9585
                        spackageversion AS pkg_version, 'N' AS dlocked,
9586
                        ora_sysdate AS created_stamp, nuserid AS creator_id,
9587
                        ora_sysdatetime AS modified_stamp,
9588
                        nuserid AS modifier_id, ssv_mm AS v_mm,
9589
                        ssv_nmm AS v_nmm, ssv_ext AS v_ext, pv.src_path,
9590
                        pv.pv_description, pv.pv_overview,
9591
                        nlastpvid AS last_pv_id, pv.owner_id, pv.is_deployable,
4211 dpurdie 9592
                        pv.is_build_env_required, cbuildtype, uchangetype, 
5892 dpurdie 9593
                        pv.bs_id, pv.is_autobuildable, pv.ripple_field, pv.build_time
3959 dpurdie 9594
                   FROM package_versions pv
9595
                  WHERE pv.pv_id = nlastpvid;
1373 dpurdie 9596
 
9597
            -- Set Issues Type for cloning ---
9598
            IF origdlocked = 'Y'
9599
            THEN
9600
               nissuestypes := enumissues_state_imported;
9601
            ELSE
9602
               nissuestypes := NULL;
9603
            END IF;
9604
 
9605
            basic_clone (nlastpvid,
9606
                         returnpvid,
9607
                         nrtagid,
9608
                         nuserid,
9609
                         origpkg_id,
9610
                         nissuestypes
9611
                        );
4211 dpurdie 9612
 
9613
            -- Update Label for versioning purposes
9614
            slabel := get_automated_label (returnpvid);
9615
            UPDATE package_versions pv
9616
            SET pv.pkg_label = slabel
9617
            WHERE pv.pv_id = returnpvid;
9618
 
1373 dpurdie 9619
         ELSE
9620
            --- Package already exists, hence reuse ---
9621
            returnpvid := package_versions_rec.pv_id;
9622
            isreleased := package_versions_rec.dlocked;
9623
         END IF;
9624
 
9625
         CLOSE package_versions_cur;
9626
      ELSE
9627
         returnpvid := nsettopvid;
9628
      END IF;
9629
   END new_version;
9630
 
9631
/*-------------------------------------------------------------------------------------------------------*/
9632
   PROCEDURE change_state (
9633
      pvid       IN   NUMBER,
9634
      newstate   IN   package_versions.dlocked%TYPE,
9635
      userid     IN   NUMBER
9636
   )
9637
   IS
9638
   BEGIN
9639
      -- Set package in Released mode
9640
      UPDATE package_versions pv
9641
         SET pv.dlocked = newstate,
9642
             pv.modified_stamp = ora_sysdatetime,
9643
             pv.modifier_id = userid
9644
       WHERE pv.pv_id = pvid;
9645
 
9646
      -- Log action --
9647
      IF newstate = 'Y'
9648
      THEN
9649
         -- RELEASED --
9650
         log_action (pvid,
9651
                     'makeofficial',
9652
                     userid,
9653
                     'Package state change to: Released'
9654
                    );
9655
      ELSIF newstate = 'N'
9656
      THEN
9657
         -- UNLOCKED --
9658
         log_action (pvid,
9659
                     'makeunofficial',
9660
                     userid,
9661
                     'Package state change to: Ulocked'
9662
                    );
9663
      ELSIF newstate = 'P'
9664
      THEN
9665
         -- PENDING APPROVAL --
9666
         log_action (pvid,
9667
                     'add_to_planned',
9668
                     userid,
9669
                     'Package state change to: Pending Approval'
9670
                    );
9671
      ELSIF newstate = 'R'
9672
      THEN
9673
         -- REJECTED --
9674
         log_action (pvid,
9675
                     'reject_package',
9676
                     userid,
9677
                     'Package state change to: Rejected'
9678
                    );
9679
      ELSIF newstate = 'A'
9680
      THEN
9681
         -- APPROVED --
9682
         log_action (pvid,
9683
                     'approve_package',
9684
                     userid,
9685
                     'Package state change to: Approved'
9686
                    );
9687
      END IF;
9688
   END;
9689
 
9690
/*-------------------------------------------------------------------------------------------------------*/
9691
   PROCEDURE destroy_package (
9692
      pvid               IN       NUMBER,
9693
      overridewarnings   IN       CHAR DEFAULT 'N',
9694
      problemstring      OUT      VARCHAR2
9695
   )
9696
   IS
9697
      LOCKED     CHAR;
9698
      pkgid      NUMBER;
9699
      ROWCOUNT   NUMBER;
9700
   BEGIN
9701
      /*
9702
      || This will destroy all package details from database.
9703
      || It will only be used to remove unwanted work in progress packages,
9704
      || or mestaken versions
9705
      */
9706
 
9707
      /*--------------- Business Rules Here -------------------*/
9708
      problemstring := NULL;
9709
 
9710
      IF overridewarnings = 'N'
9711
      THEN
9712
         -- Package must not be official
9713
         SELECT pv.dlocked
9714
           INTO LOCKED
9715
           FROM package_versions pv
9716
          WHERE pv.pv_id = pvid;
9717
 
9718
         IF LOCKED = 'Y'
9719
         THEN
9720
            problemstring :=
9721
                  problemstring
9722
               || '- Package is locked and released.'
5892 dpurdie 9723
               ||PK_PACKAGE.crlf;
1373 dpurdie 9724
         END IF;
9725
 
9726
         -- Cannot remove if used in BOMs
9727
         SELECT COUNT (osc.prod_id)
9728
           INTO ROWCOUNT
9729
           FROM deployment_manager.os_contents osc
9730
          WHERE osc.prod_id = pvid;
9731
 
9732
         IF ROWCOUNT > 0
9733
         THEN
9734
            problemstring :=
9735
                  problemstring
9736
               || '- Package is part of Bill-Of-Material (BOM) in Deployment Manager.'
5892 dpurdie 9737
               ||PK_PACKAGE.crlf;
1373 dpurdie 9738
         END IF;
9739
 
9740
         -- Cannot remove if Referenced as build dependency
9741
         SELECT COUNT (dep.pv_id)
9742
           INTO ROWCOUNT
9743
           FROM package_dependencies dep
9744
          WHERE dep.dpv_id = pvid;
9745
 
9746
         IF ROWCOUNT > 0
9747
         THEN
9748
            problemstring :=
9749
                  problemstring
9750
               || '- Package is referenced by other package as build dependency.'
5892 dpurdie 9751
               ||PK_PACKAGE.crlf;
1373 dpurdie 9752
         END IF;
9753
 
9754
         -- Cannot remove if Referenced as runtime dependency
9755
         SELECT COUNT (rd.pv_id)
9756
           INTO ROWCOUNT
9757
           FROM runtime_dependencies rd
9758
          WHERE rd.rtd_id = pvid;
9759
 
9760
         IF ROWCOUNT > 0
9761
         THEN
9762
            problemstring :=
9763
                  problemstring
9764
               || '- Package is referenced by other package as runtime dependency.'
5892 dpurdie 9765
               ||PK_PACKAGE.crlf;
1373 dpurdie 9766
         END IF;
9767
 
9768
         -- Cannot remove if Referenced as patch
9769
         SELECT COUNT (pp.pv_id)
9770
           INTO ROWCOUNT
9771
           FROM package_patches pp
9772
          WHERE pp.patch_id = pvid;
9773
 
9774
         IF ROWCOUNT > 0
9775
         THEN
9776
            problemstring :=
9777
                  problemstring
9778
               || '- Package is used as patch by other package.'
5892 dpurdie 9779
               ||PK_PACKAGE.crlf;
1373 dpurdie 9780
         END IF;
9781
      END IF;
9782
 
9783
/*-------------------------------------------------------*/
9784
      IF (problemstring IS NULL)
9785
      THEN
9786
         --- Remove From Work in Progress
9787
         DELETE FROM work_in_progress wip
9788
               WHERE wip.pv_id = pvid;
9789
 
9790
         --- Remove From Pending
9791
         DELETE FROM planned pl
9792
               WHERE pl.pv_id = pvid;
9793
 
9794
         --- Remove From Released area
9795
         DELETE FROM release_content rc
9796
               WHERE rc.pv_id = pvid;
9797
 
9798
         ---Remove From Package Processes
9799
         DELETE FROM package_processes pp
9800
               WHERE pp.pv_id = pvid;
9801
 
9802
         --- Remove Dependencies
9803
         DELETE FROM package_dependencies dep
9804
               WHERE dep.pv_id = pvid;
9805
 
9806
         DELETE FROM package_dependencies dep
9807
               WHERE dep.dpv_id = pvid;
9808
 
9809
         --- Remove Runtime dependencies
9810
         DELETE FROM runtime_dependencies rtd
9811
               WHERE rtd.pv_id = pvid;
9812
 
9813
         DELETE FROM runtime_dependencies rtd
9814
               WHERE rtd.rtd_id = pvid;
9815
 
9816
         --- Remove components
9817
         DELETE FROM product_components pc
9818
               WHERE pc.pv_id = pvid;
9819
 
9820
         DELETE FROM release_components rc
9821
               WHERE rc.pv_id = pvid;
9822
 
9823
         --- Remove From Notification History
9824
         DELETE FROM notification_history nh
9825
               WHERE nh.pv_id = pvid;
9826
 
9827
         --- Remove From Ignore Warnings
9828
         DELETE FROM ignore_warnings iw
9829
               WHERE iw.pv_id = pvid;
9830
 
9831
         --- Remove From Additional Notes
9832
         DELETE FROM additional_notes an
9833
               WHERE an.pv_id = pvid;
9834
 
9835
         --- Remove From CQ Issues
9836
         DELETE FROM cq_issues cq
9837
               WHERE cq.pv_id = pvid;
9838
 
9839
         --- Remove from Package Patches
9840
         DELETE FROM package_patches pp
9841
               WHERE pp.pv_id = pvid;
9842
 
9843
         DELETE FROM package_patches pp
9844
               WHERE pp.patch_id = pvid;
9845
 
9846
         --- Remove From Package Documents
9847
         DELETE FROM package_documents pd
9848
               WHERE pd.pv_id = pvid;
9849
 
9850
         --- Remove from Code Review
9851
         DELETE FROM code_reviews cr
9852
               WHERE cr.pv_id = pvid;
9853
 
3959 dpurdie 9854
         --- Remove from Code Review URL
9855
         DELETE FROM code_review_url cru
9856
               WHERE cru.pv_id = pvid;
9857
 
1373 dpurdie 9858
         --- Remove from Unit Tests
9859
         DELETE FROM unit_tests ut
9860
               WHERE ut.pv_id = pvid;
9861
 
9862
         --- Remove from Package BuildEnv
9863
         DELETE FROM package_build_env pbe
9864
               WHERE pbe.pv_id = pvid;
9865
 
3959 dpurdie 9866
         --- Remove from Package Build Info
9867
         DELETE FROM package_build_info pbi
9868
               WHERE pbi.pv_id = pvid;
9869
 
1373 dpurdie 9870
         --- Remove from Build Order
9871
         DELETE FROM build_order bo
9872
               WHERE bo.pv_id = pvid;
9873
 
3959 dpurdie 9874
         --- Remove from Licencing
9875
         PK_LICENCING.REMOVE_ALL_LICENCING( pvid, 0 );
9876
 
1373 dpurdie 9877
         --- Remove from Note Manager
9878
         DELETE FROM note_manager nm
9879
               WHERE nm.nid = pvid;
9880
 
9881
         --- Remove from Action log
9882
         DELETE FROM action_log al
9883
               WHERE al.pv_id = pvid;
3959 dpurdie 9884
 
9885
         --- Remove from Do Not Ripple
9886
         DELETE FROM DO_NOT_RIPPLE dnr
9887
               WHERE dnr.PV_ID = pvid;
9888
 
9889
         --- Remove from Advisory Ripple
9890
         DELETE FROM ADVISORY_RIPPLE ar
9891
               WHERE ar.PV_ID = pvid;
9892
 
9893
         --- Remove from Jira Issues
9894
         DELETE FROM JIRA_ISSUES jira
9895
               WHERE jira.PV_ID = pvid;
9896
 
9897
         --- Remove from Package Metrics
9898
         DELETE FROM package_metrics pm
9899
              WHERE pm.pv_id = pvid;
9900
 
9901
         -- Delete from Pegged Versions
9902
         DELETE FROM pegged_versions pegv
9903
              WHERE pegv.pv_id = pvid;
9904
 
1373 dpurdie 9905
         --- Finally Remove From Package Versions
9906
         --- Get Package name
9907
         SELECT pv.pkg_id
9908
           INTO pkgid
9909
           FROM package_versions pv
9910
          WHERE pv.pv_id = pvid;
9911
 
9912
         DELETE FROM package_versions pv
9913
               WHERE pv.pv_id = pvid;
9914
 
9915
         --- Remove package name if not used any more
9916
         SELECT COUNT (pv.pv_id)
9917
           INTO ROWCOUNT
9918
           FROM package_versions pv
9919
          WHERE pv.pkg_id = pkgid;
9920
 
9921
         IF ROWCOUNT < 1
9922
         THEN
9923
            DELETE FROM PACKAGES pkg
9924
                  WHERE pkg.pkg_id = pkgid;
9925
         END IF;
9926
      END IF;
9927
   END;
9928
 
9929
/*-------------------------------------------------------------------------------------------------------*/
9930
   PROCEDURE new_patch (
9931
      snewpatchversion   IN       package_versions.pkg_version%TYPE,
9932
      nparentpvid        IN       NUMBER,
9933
      spatchidlist       IN       VARCHAR2,
9934
      nuserid            IN       NUMBER,
9935
      returnpatchid      OUT      NUMBER
9936
   )
9937
   IS
9938
      patchpv_id           NUMBER;
9939
      parpkg_id            NUMBER;
9940
      lastinstallorder     NUMBER;
9941
      ispatchdlocked       package_versions.dlocked%TYPE;
9942
      ssv_mm               package_versions.v_mm%TYPE;
9943
      ssv_nmm              package_versions.v_nmm%TYPE;
9944
      ssv_ext              package_versions.v_ext%TYPE;
3959 dpurdie 9945
      opatchdepcollector   relmgr_number_tab_t  := relmgr_number_tab_t ();
1373 dpurdie 9946
 
9947
      CURSOR parent_cur
9948
      IS
9949
         SELECT pv.*, pkg.pkg_name
9950
           FROM package_versions pv, PACKAGES pkg
9951
          WHERE pv.pv_id = nparentpvid AND pv.pkg_id = pkg.pkg_id;
9952
 
3959 dpurdie 9953
      parent_rec parent_cur%ROWTYPE;
1373 dpurdie 9954
 
9955
      CURSOR patch_cur
9956
      IS
9957
         SELECT pv.*, pg.pkg_name
9958
           FROM package_versions pv, PACKAGES pg
9959
          WHERE pv.pkg_id = parpkg_id
9960
            AND pv.pkg_version = snewpatchversion
9961
            AND pv.pkg_id = pg.pkg_id;
9962
 
3959 dpurdie 9963
      patch_rec  patch_cur%ROWTYPE;
1373 dpurdie 9964
 
9965
      CURSOR releases_cur
9966
      IS
9967
         SELECT rc.pv_id
9968
           FROM release_content rc
9969
          WHERE rc.pv_id = patch_rec.pv_id;
9970
 
3959 dpurdie 9971
      releases_rec releases_cur%ROWTYPE;
1373 dpurdie 9972
   BEGIN
9973
      -- Get Last Install Order
9974
      SELECT COUNT (*)
9975
        INTO lastinstallorder
9976
        FROM package_patches pp
9977
       WHERE pp.pv_id = nparentpvid;
9978
 
9979
      -- Get parent details
9980
      OPEN parent_cur;
9981
 
9982
      FETCH parent_cur
9983
       INTO parent_rec;
9984
 
9985
      parpkg_id := parent_rec.pkg_id;
9986
 
9987
      -- Find if patch exists in database
9988
      OPEN patch_cur;
9989
 
9990
      FETCH patch_cur
9991
       INTO patch_rec;
9992
 
9993
      -- Parent must be official
9994
      IF parent_rec.dlocked = 'Y'
9995
      THEN
9996
         IF patch_cur%NOTFOUND
9997
         THEN
9998
            ispatchdlocked := 'N';
9999
 
10000
            -- Create new patch version --
10001
            SELECT seq_pv_id.NEXTVAL
10002
              INTO patchpv_id
10003
              FROM DUAL;
10004
 
10005
            split_version (snewpatchversion, ssv_mm, ssv_nmm, ssv_ext);
10006
 
10007
            INSERT INTO package_versions
10008
                        (pv_id, pkg_id, pkg_version,
10009
                         dlocked, created_stamp, creator_id,
10010
                         modified_stamp, modifier_id, v_mm, v_nmm, v_ext,
10011
                         src_path,
10012
                         pv_description,
10013
                         owner_id, is_patch, last_pv_id, build_type, is_build_env_required, bs_id,
3959 dpurdie 10014
                         is_autobuildable, ripple_field
1373 dpurdie 10015
                        )
10016
                 VALUES (patchpv_id, parpkg_id, snewpatchversion,
10017
                         ispatchdlocked, ora_sysdate, nuserid,
10018
                         ora_sysdatetime, nuserid, ssv_mm, ssv_nmm, ssv_ext,
10019
                         parent_rec.src_path,
10020
                            'This is a patch to '
10021
                         || parent_rec.pkg_name
10022
                         || ' '
10023
                         || parent_rec.pkg_version,
3959 dpurdie 10024
                         nuserid, 'Y', patchpv_id, 'M', 'N', 3, 'N', parent_rec.ripple_field
1373 dpurdie 10025
                        );
10026
 
10027
            INSERT INTO package_patches
10028
                        (pv_id, patch_id, install_order)
3959 dpurdie 10029
                (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
10030
                        lastinstallorder + 1 AS install_order
10031
                   FROM package_versions pv
10032
                  WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
1373 dpurdie 10033
 
10034
            /* LOG ACTION */
10035
            log_action (patchpv_id,
10036
                        'new_version',
10037
                        nuserid,
10038
                        'Patch version created: ' || snewpatchversion
10039
                       );
10040
            log_action (nparentpvid,
10041
                        'patch_add',
10042
                        nuserid,
10043
                        'New patch created and attached: ' || snewpatchversion
10044
                       );
10045
         ELSE
10046
            patchpv_id := patch_rec.pv_id;
10047
            ispatchdlocked := patch_rec.dlocked;
10048
 
10049
            -- Find if pv_id exists in release content (i.e. it cannot be a patch)
10050
            OPEN releases_cur;
10051
 
10052
            FETCH releases_cur
10053
             INTO releases_rec;
10054
 
10055
            IF releases_cur%NOTFOUND
10056
            THEN
10057
               -- This pv_id is trully a patch, hence add Y to column IS_PATCH
10058
               UPDATE package_versions
10059
                  SET is_patch = 'Y'
10060
                WHERE pv_id = patchpv_id;
10061
 
10062
               INSERT INTO package_patches
10063
                           (pv_id, patch_id, install_order)
3959 dpurdie 10064
                   (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
10065
                           lastinstallorder + 1 AS install_order
10066
                      FROM package_versions pv
10067
                     WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
1373 dpurdie 10068
            END IF;
10069
 
10070
            CLOSE releases_cur;
10071
 
10072
            /* LOG ACTION */
10073
            log_action (nparentpvid,
10074
                        'patch_add',
10075
                        nuserid,
10076
                           'Patch version was found and attached: '
10077
                        || snewpatchversion
10078
                       );
10079
         END IF;
10080
      END IF;
10081
 
10082
      /* Create Patch Dependencies */
10083
      opatchdepcollector := in_list_number (spatchidlist);
10084
 
10085
      -- Make sure patch is unofficial before altering its dependencies
10086
      IF (opatchdepcollector.COUNT > 0) AND (ispatchdlocked = 'N')
10087
      THEN
10088
         -- Delete Existing Dependencies
10089
         DELETE FROM package_dependencies dep
10090
               WHERE dep.pv_id = patchpv_id;
10091
 
10092
         -- Insert new dependencies
10093
         INSERT INTO package_dependencies
10094
                     (pv_id, dpv_id, pkg_id, dpkg_id, build_type)
3959 dpurdie 10095
              SELECT patchpv_id AS pv_id, pv.pv_id AS dpv_id,
10096
                     parpkg_id AS pkg_id, pv.pkg_id AS dpkg_id,
10097
                     'L' AS build_type
10098
                FROM package_versions pv
10099
               WHERE pv.pv_id IN (
1373 dpurdie 10100
                      SELECT *
10101
                        FROM TABLE
10102
                                (CAST
10103
                                    (opatchdepcollector AS relmgr_number_tab_t)
10104
                                ));
10105
      END IF;
10106
 
10107
      -- Return patch_id
10108
      returnpatchid := patchpv_id;
10109
 
10110
      CLOSE parent_cur;
10111
 
10112
      CLOSE patch_cur;
10113
   EXCEPTION
10114
      WHEN DUP_VAL_ON_INDEX
10115
      THEN
10116
         raise_application_error (-20000,
10117
                                     'Patch version '
10118
                                  || snewpatchversion
10119
                                  || ' already exist.'
10120
                                 );
10121
   END;
10122
 
10123
/*-------------------------------------------------------------------------------------------------------*/
10124
   PROCEDURE obsolete_patch (
10125
      patchid            IN   NUMBER,
10126
      isobsolete         IN   CHAR,
10127
      obsoletecomments   IN   VARCHAR2,
10128
      userid             IN   NUMBER
10129
   )
10130
   IS
10131
   BEGIN
10132
      -- Update patch
10133
      UPDATE package_versions pv
10134
         SET pv.is_obsolete = isobsolete,
10135
             pv.obsolete_comments = obsoletecomments
10136
       WHERE pv.pv_id = patchid;
10137
 
10138
      /*
10139
      -- Update patch children
10140
      UPDATE PACKAGE_VERSIONS pv SET
10141
      pv.IS_OBSOLETE = IsObsolete,
10142
      pv.OBSOLETE_COMMENTS = ObsoleteComments
10143
      WHERE pv.PV_ID IN (
10144
                     SELECT DISTINCT dep.DPV_ID
10145
                       FROM PACKAGE_DEPENDENCIES dep
10146
                      WHERE dep.PV_ID = PatchId
10147
                     );
10148
 
10149
 
10150
      -- Update patch parent
10151
      UPDATE PACKAGE_VERSIONS pv SET
10152
      pv.IS_OBSOLETE = IsObsolete,
10153
      pv.OBSOLETE_COMMENTS = ObsoleteComments
10154
      WHERE pv.PV_ID IN (
10155
                     SELECT DISTINCT dep.PV_ID
10156
                       FROM PACKAGE_DEPENDENCIES dep
10157
                      WHERE dep.DPV_ID = PatchId
10158
                     );
10159
 
3959 dpurdie 10160
      */
1373 dpurdie 10161
 
10162
      /* LOG ACTION */
10163
      IF isobsolete IS NOT NULL
10164
      THEN
10165
         log_action (patchid,
10166
                     'patch_obsolete',
10167
                     userid,
10168
                     'Obsolete patch. ' || obsoletecomments
10169
                    );
10170
      ELSE
10171
         log_action (patchid,
10172
                     'patch_obsolete',
10173
                     userid,
10174
                     'Undo patch obsolete.'
10175
                    );
10176
      END IF;
10177
   END;
10178
 
10179
/*-------------------------------------------------------------------------------------------------------*/
10180
   PROCEDURE obsolete_patches (
10181
      spatchidlist       IN   VARCHAR2,
10182
      isobsolete         IN   CHAR,
10183
      obsoletecomments   IN   VARCHAR2,
10184
      userid             IN   NUMBER
10185
   )
10186
   IS
10187
   BEGIN
10188
      /*--------------- Business Rules Here -------------------*/
10189
      IF spatchidlist IS NULL
10190
      THEN
10191
         raise_application_error (-20000,
10192
                                  'Please select one or more Patches.'
10193
                                 );
10194
      END IF;
10195
 
10196
/*-------------------------------------------------------*/
10197
 
10198
      -- Update patch
10199
      UPDATE package_versions pv
10200
         SET pv.is_obsolete = isobsolete,
10201
             pv.obsolete_comments = obsoletecomments
10202
       WHERE pv.pv_id IN (
10203
                SELECT *
10204
                  FROM THE
10205
                          (SELECT CAST
10206
                                     (in_list_number (spatchidlist) AS relmgr_number_tab_t
10207
                                     )
10208
                             FROM DUAL
10209
                          ));
3959 dpurdie 10210
      /*
10211
      -- Update patch children
10212
      UPDATE PACKAGE_VERSIONS pv SET
10213
      pv.IS_OBSOLETE = IsObsolete,
10214
      pv.OBSOLETE_COMMENTS = ObsoleteComments
10215
      WHERE pv.PV_ID IN (
10216
                     SELECT DISTINCT dep.DPV_ID
10217
                       FROM PACKAGE_DEPENDENCIES dep
10218
                      WHERE dep.PV_ID = PatchId
10219
                     );
1373 dpurdie 10220
 
10221
 
3959 dpurdie 10222
      -- Update patch parent
10223
      UPDATE PACKAGE_VERSIONS pv SET
10224
      pv.IS_OBSOLETE = IsObsolete,
10225
      pv.OBSOLETE_COMMENTS = ObsoleteComments
10226
      WHERE pv.PV_ID IN (
10227
                     SELECT DISTINCT dep.PV_ID
10228
                       FROM PACKAGE_DEPENDENCIES dep
10229
                      WHERE dep.DPV_ID = PatchId
10230
                     );
1373 dpurdie 10231
 
10232
      */
10233
 
3959 dpurdie 10234
      /* LOG ACTION
10235
      IF IsObsolete IS NOT NULL THEN
1373 dpurdie 10236
         Log_Action ( PatchId, 'patch_obsolete', UserId,
3959 dpurdie 10237
                     'Obsolete patch. '|| ObsoleteComments );
10238
      ELSE
10239
         Log_Action ( PatchId, 'patch_obsolete', UserId,
10240
                     'Undo patch obsolete.' );
10241
      END IF;  */
1373 dpurdie 10242
   END;
10243
 
10244
/*-------------------------------------------------------------------------------------------------------*/
10245
   PROCEDURE add_process (
10246
      nprocid         IN   processes.proc_id%TYPE,
10247
      shealthtag      IN   processes.proc_name%TYPE,
10248
      sprocdesc       IN   processes.proc_description%TYPE,
10249
      scmdinterface   IN   processes.run_as%TYPE,
10250
      spkgowner       IN   processes.pkg_owner%TYPE,
10251
      sisinterface    IN   processes.is_interface%TYPE,
10252
      npvid           IN   package_processes.pv_id%TYPE,
10253
      nuserid         IN   NUMBER
10254
   )
10255
   IS
10256
      pkgname   VARCHAR2 (100);
3959 dpurdie 10257
 
1373 dpurdie 10258
   BEGIN
10259
      INSERT INTO processes
10260
                  (proc_id, proc_name, proc_description, run_as, pkg_owner,
10261
                   is_interface
10262
                  )
10263
           VALUES (nprocid, shealthtag, sprocdesc, scmdinterface, spkgowner,
10264
                   sisinterface
10265
                  );
10266
 
10267
      pk_package.add_package_process (nprocid, npvid, nuserid);
10268
   END;
10269
 
10270
/*-------------------------------------------------------------------------------------------------------*/
10271
   PROCEDURE add_package_process (
10272
      nprocidlist   IN   VARCHAR2,
10273
      npvid         IN   package_processes.pv_id%TYPE,
10274
      nuserid       IN   NUMBER
10275
   )
10276
   IS
10277
      processname   VARCHAR2 (4000);
10278
 
10279
      CURSOR proc_cur
10280
      IS
10281
         SELECT prc.proc_id
10282
           FROM processes prc
10283
          WHERE prc.proc_id IN (
10284
                   SELECT *
10285
                     FROM THE
10286
                             (SELECT CAST
10287
                                        (in_list_number (nprocidlist) AS relmgr_number_tab_t
10288
                                        )
10289
                                FROM DUAL
10290
                             ));
10291
 
3959 dpurdie 10292
      proc_rec  proc_cur%ROWTYPE;
1373 dpurdie 10293
   BEGIN
10294
      OPEN proc_cur;
10295
 
10296
      FETCH proc_cur
10297
       INTO proc_rec;
10298
 
10299
      WHILE proc_cur%FOUND
10300
      LOOP
3959 dpurdie 10301
         INSERT INTO package_processes (proc_id, pv_id)
10302
              VALUES (proc_rec.proc_id, npvid);
1373 dpurdie 10303
 
10304
         SELECT prc.proc_name
10305
           INTO processname
10306
           FROM processes prc
10307
          WHERE prc.proc_id = proc_rec.proc_id;
10308
 
10309
         -- Log Action --
10310
         log_action (npvid,
10311
                     'process_add',
10312
                     nuserid,
10313
                     'Added process with health tag ' || processname
10314
                    );
10315
 
10316
         FETCH proc_cur
10317
          INTO proc_rec;
10318
      END LOOP;
3959 dpurdie 10319
 
10320
      CLOSE proc_cur;
1373 dpurdie 10321
   END;
10322
 
10323
/*-------------------------------------------------------------------------------------------------------*/
10324
   PROCEDURE remove_process (
10325
      nprocid   IN   package_processes.proc_id%TYPE,
10326
      npvid     IN   package_processes.pv_id%TYPE,
10327
      nuserid   IN   NUMBER
10328
   )
10329
   IS
10330
      processname   VARCHAR2 (4000);
10331
   BEGIN
10332
      SELECT prc.proc_name
10333
        INTO processname
10334
        FROM processes prc
10335
       WHERE prc.proc_id = nprocid;
10336
 
10337
      DELETE FROM package_processes
10338
            WHERE proc_id = nprocid AND pv_id = npvid;
10339
 
10340
      -- Log Action --
10341
      log_action (npvid,
10342
                  'process_remove',
10343
                  nuserid,
10344
                  'Removed process with health tag ' || processname
10345
                 );
10346
   END;
10347
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 10348
   /*
10349
   ** Author: Rupesh Solanki
10350
   ** Purpose: To move package versions from one release to another
10351
   ** Release: 4th September 2006
10352
   */
10353
   PROCEDURE move_package (
10354
      npvid        IN package_versions.pv_id%TYPE,
10355
      nrtagid      IN release_tags.rtag_id%TYPE,
10356
      nnewrtagid   IN release_tags.rtag_id%TYPE,
10357
      nuserid      IN NUMBER
10358
   )
10359
   IS
1373 dpurdie 10360
 
3959 dpurdie 10361
      oldrtag_name VARCHAR2(4000);newrtag_name VARCHAR2(4000);
10362
 
10363
   BEGIN
10364
      SELECT rtag_name into oldrtag_name
10365
      FROM RELEASE_TAGS
10366
      WHERE rtag_id = nrtagid;
10367
 
10368
      SELECT rtag_name into newrtag_name
10369
      FROM RELEASE_TAGS
10370
      WHERE rtag_id = nnewrtagid;
10371
 
10372
      /* Table Work In Progress*/
10373
      UPDATE WORK_IN_PROGRESS
10374
      SET RTAG_ID = nnewrtagid
10375
      WHERE RTAG_ID = nrtagid
10376
      AND PV_ID = npvid;
10377
 
10378
      /* Table PLANNED*/
10379
      UPDATE PLANNED
10380
      SET RTAG_ID = nnewrtagid
10381
      WHERE RTAG_ID = nrtagid
10382
      AND PV_ID = npvid;
10383
 
10384
      /* Table PEGGED_VERSIONS */
10385
      DELETE FROM PEGGED_VERSIONS pegv
10386
      WHERE pegv.RTAG_ID = nrtagid
10387
      AND pegv.PV_ID = npvid;
10388
 
10389
      /* Table ADVISORY_RIPPLE*/
10390
      DELETE FROM ADVISORY_RIPPLE
10391
      WHERE RTAG_ID = nrtagid
10392
      AND PV_ID = npvid;
10393
 
10394
 
1373 dpurdie 10395
      -- Log Action --
10396
      log_action (npvid,
10397
                  'move_package_version',
10398
                  nuserid,
10399
                  'Moved package version from ' || oldrtag_name || ' to ' || newrtag_name
3959 dpurdie 10400
                 );
10401
   END;
10402
 
1373 dpurdie 10403
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 10404
   /*
10405
   ** Author: Rupesh Solanki
10406
   ** Purpose: To modify the product state from integration to test to deployment
10407
   ** Release: 25th January 2006
10408
   */
10409
   PROCEDURE modify_product_state (
10410
      npvid    IN package_versions.pv_id%TYPE,
10411
      nrtagid  IN release_tags.rtag_id%TYPE,
10412
      nstateid IN product_states.state_id%TYPE,
10413
      nuserid  IN NUMBER
1373 dpurdie 10414
   ) IS
3959 dpurdie 10415
 
10416
      sStateName VARCHAR2(4000);
10417
      sRtagName VARCHAR2(4000);
10418
 
10419
   BEGIN
10420
 
10421
      UPDATE RELEASE_CONTENT
10422
      SET PRODUCT_STATE = nstateid
10423
      WHERE PV_ID = npvid
10424
      AND RTAG_ID = nrtagid;
10425
 
10426
 
10427
      SELECT STATE INTO sStateName
10428
      FROM PRODUCT_STATES
10429
      WHERE STATE_ID = nstateid;
10430
 
10431
      SELECT RTAG_NAME into sRtagName
10432
      FROM RELEASE_TAGS
10433
      WHERE RTAG_ID = nrtagid;
10434
 
10435
 
10436
      -- Log Action --
10437
      log_action (npvid,
10438
                  'modify_product_state',
10439
                     nuserid,
10440
                     sStateName || ' in '|| sRtagName
10441
                  );
10442
   END;
10443
/*-------------------------------------------------------------------------------------------------------*/
10444
   /*
10445
   ** Author: Jeremy Tweddle
10446
   ** Date: 24/Aug/2007
10447
   */
10448
   PROCEDURE add_code_review_url (
10449
      npvid           IN    NUMBER,
10450
      nprojid         IN    NUMBER,
10451
      surl            IN    VARCHAR2,
10452
      sreason         IN    VARCHAR2,
4553 dpurdie 10453
      ddateofreview   IN    VARCHAR2
3959 dpurdie 10454
   ) IS
10455
 
10456
      ncrid NUMBER;
10457
 
10458
   BEGIN
10459
 
10460
      SELECT seq_cr_id.NEXTVAL INTO ncrid FROM DUAL;
10461
 
4553 dpurdie 10462
      INSERT INTO code_review_url ( cr_id, pv_id, proj_id, url, reason, date_of_review, last_modified )
10463
      VALUES ( ncrid, npvid, nprojid, surl, sreason, TO_DATE( ddateofreview,'DD/MM/YYYY' ), ora_sysdate );
3959 dpurdie 10464
 
10465
   END;
10466
/*-------------------------------------------------------------------------------------------------------*/
10467
   /*
10468
   ** Author: Jeremy Tweddle
10469
   ** Date: 22/Aug/2007
10470
   */
10471
   PROCEDURE update_code_review_url (
10472
      ncrid           IN    NUMBER,
10473
      nprojid         IN    NUMBER,
10474
      surl            IN    VARCHAR2,
4553 dpurdie 10475
      sreason         IN    VARCHAR2,
10476
      ddateofreview   IN    VARCHAR2
3959 dpurdie 10477
   ) IS
10478
 
10479
   BEGIN
10480
 
10481
      UPDATE code_review_url
10482
      SET url = surl,
10483
          proj_id = nprojid,
10484
          reason = sreason,
4553 dpurdie 10485
          date_of_review = TO_DATE( ddateofreview,'DD/MM/YYYY' ), 
3959 dpurdie 10486
          last_modified = ora_sysdate
10487
      WHERE cr_id = ncrid;
10488
 
10489
   END;
4553 dpurdie 10490
 
3959 dpurdie 10491
/*-------------------------------------------------------------------------------------------------------*/
10492
   /*
10493
   ** Author: Jeremy Tweddle
10494
   ** Date: 22/Aug/2007
10495
   */
10496
   PROCEDURE remove_code_review_url (
10497
      ncrid  IN    NUMBER
10498
   ) IS
10499
 
10500
   BEGIN
10501
      DELETE FROM code_review_url
10502
      WHERE cr_id = ncrid;
10503
   END;
10504
/*-------------------------------------------------------------------------------------------------------*/
10505
END pk_package;
4040 dpurdie 10506
 
1374 dpurdie 10507
/
5892 dpurdie 10508
 
10509
  GRANT EXECUTE, DEBUG ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";
10510
  GRANT EXECUTE, DEBUG ON "RELEASE_MANAGER"."PK_PACKAGE" TO "CODE_INSPECTION";
4040 dpurdie 10511
--------------------------------------------------------
10512
--  DDL for Package Body PK_PLANNED
10513
--------------------------------------------------------
10514
 
5172 dpurdie 10515
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PLANNED" IS
3959 dpurdie 10516
 
1373 dpurdie 10517
/*
10518
------------------------------
3959 dpurdie 10519
||  Last Modified:  G.Huddy
10520
||  Modified Date:  05/Aug/2008
10521
||  Body Version:   1.2
1373 dpurdie 10522
------------------------------
10523
*/
10524
 
10525
 
10526
/*-------------------------------------------------------------------------------------------------------*/
5384 dpurdie 10527
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, OPR IN CHAR DEFAULT 'R' ) IS
1373 dpurdie 10528
 
3959 dpurdie 10529
    oldPvId NUMBER;
10530
    ReleaseLocation VARCHAR2(4000);
10531
    IsPatch CHAR(1) := NULL;
10532
    sLocation VARCHAR2(4000) := NULL;
10533
    nRtagIdLocation NUMBER;
1373 dpurdie 10534
 
10535
 
10536
 
3959 dpurdie 10537
BEGIN
10538
    /*--------------- Business Rules Here -------------------*/
10539
    /*-------------------------------------------------------*/
5384 dpurdie 10540
 
10541
    IF OPR = 'R' THEN
10542
      BEGIN
10543
          -- Check if Exists in "Work in progress" anywhere in the world, except "Closed mode" releases
10544
          SELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME, rt.RTAG_ID  INTO sLocation, nRtagIdLocation
10545
            FROM PLANNED pl,
10546
                 RELEASE_TAGS rt,
10547
                 PROJECTS proj
10548
           WHERE pl.PV_ID = newPvId
10549
             AND pl.RTAG_ID = rt.RTAG_ID
10550
             AND rt.OFFICIAL != 'Y'
10551
             AND rt.PROJ_ID = proj.PROJ_ID;
10552
 
10553
          EXCEPTION
10554
              WHEN NO_DATA_FOUND THEN
10555
                  sLocation := NULL;
10556
      END;
10557
 
10558
      IF (sLocation IS NULL) OR (nRtagIdLocation = RtagId) THEN
10559
 
10560
          -- Add to "Pending" area
10561
          INSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID, OPERATION )
10562
          VALUES( RtagId, newPvId, ViewId, OPR );
10563
 
10564
          /* LOG ACTION */
10565
          SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
10566
            FROM PROJECTS proj,
10567
                 RELEASE_TAGS rt
10568
           WHERE rt.PROJ_ID = proj.PROJ_ID
10569
             AND rt.RTAG_ID = RtagId;
10570
 
10571
          Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );
10572
 
10573
      ELSE
10574
            RAISE_APPLICATION_ERROR (-20000, 'This version is already in Pending Area at '|| sLocation ||'.' );
10575
        END IF;
10576
 
3959 dpurdie 10577
    ELSE
5384 dpurdie 10578
      -- Not adding a WIP. Merging a package version 
10579
      MERGE_PACKAGE ( newPvId, ViewId, RtagId, UserId, OPR );
3959 dpurdie 10580
    END IF;
10581
 
10582
END;
1373 dpurdie 10583
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 10584
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 10585
 
3959 dpurdie 10586
    ReleaseLocation VARCHAR2(4000);
1373 dpurdie 10587
 
3959 dpurdie 10588
BEGIN
1373 dpurdie 10589
 
3959 dpurdie 10590
    /*--------------- Business Rules Here -------------------*/
10591
    /*-------------------------------------------------------*/
1373 dpurdie 10592
 
10593
 
3959 dpurdie 10594
    -- Get release location for logging pusposes
10595
    SELECT proj.PROJ_NAME  ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
10596
      FROM PROJECTS proj,
10597
           RELEASE_TAGS rt
10598
     WHERE rt.PROJ_ID = proj.PROJ_ID
10599
       AND rt.RTAG_ID = RtagId;
1373 dpurdie 10600
 
10601
 
3959 dpurdie 10602
    -- Delete from Work In Progress
10603
    DELETE
10604
      FROM PLANNED pl
10605
     WHERE pl.RTAG_ID = RtagId
10606
       AND pl.PV_ID = PvId;
1373 dpurdie 10607
 
3959 dpurdie 10608
    Log_Action ( PvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );
10609
 
10610
 
10611
 
10612
 
10613
END;
1373 dpurdie 10614
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 10615
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
1373 dpurdie 10616
 
3959 dpurdie 10617
    ReturnValue NUMBER;
1373 dpurdie 10618
 
3959 dpurdie 10619
BEGIN
10620
    SELECT pl.VIEW_ID INTO ReturnValue
10621
      FROM PLANNED pl
10622
     WHERE pl.RTAG_ID = RtagId
10623
       AND pl.PV_ID = PvId;
10624
 
10625
    RETURN ReturnValue;
10626
END;
10627
/*-------------------------------------------------------------------------------------------------------*/
10628
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
10629
 
10630
    IsBaseView CHAR(1);
10631
 
10632
BEGIN
10633
 
10634
    -- Check if the view is BASE VIEW
10635
    SELECT vi.BASE_VIEW INTO IsBaseView
10636
      FROM VIEWS vi
10637
     WHERE vi.VIEW_ID = ViewId;
10638
 
10639
 
5172 dpurdie 10640
    IF (IsBaseView IN ('Y', 'S')) THEN
3959 dpurdie 10641
        -- Get Base view content
10642
        OPEN RecordSet FOR
10643
        SELECT 0 AS PKG_STATE,
10644
               NULL AS DEPRECATED_STATE,
10645
               pv.pv_id,
10646
               pkg.pkg_name,
10647
               pv.pkg_version,
10648
               pv.dlocked,
10649
               pv.pv_description,
10650
               pv.BUILD_TYPE,
10651
               rel.operation
10652
          FROM PLANNED rel,
10653
               packages pkg,
10654
               package_versions pv
10655
         WHERE pv.pkg_id = pkg.pkg_id
10656
           AND rel.pv_id = pv.pv_id
10657
           AND rel.VIEW_ID = ViewId
10658
           AND rel.RTAG_ID = RtagId
10659
         ORDER BY UPPER(pkg.PKG_NAME);
10660
 
10661
    ELSE
10662
 
10663
        -- Get non base view content
10664
        OPEN RecordSet FOR
10665
        SELECT 0 AS PKG_STATE,
10666
               NULL AS DEPRECATED_STATE,
10667
               pv.pv_id,
10668
               pkg.pkg_name,
10669
               pv.pkg_version,
10670
               pv.dlocked,
10671
               pv.pv_description,
10672
               pv.BUILD_TYPE,
10673
               rel.operation
10674
          FROM PLANNED rel,
10675
               packages pkg,
10676
               package_versions pv,
10677
               VIEW_DEF vd
10678
         WHERE pv.pkg_id = pkg.pkg_id
10679
           AND rel.pv_id = pv.pv_id
10680
           AND rel.RTAG_ID = RtagId
10681
           AND vd.VIEW_ID = ViewId
10682
           AND vd.PKG_ID = pv.PKG_ID
10683
         ORDER BY UPPER(pkg.PKG_NAME);
10684
 
10685
    END IF;
10686
 
10687
 
10688
END;
10689
/*-------------------------------------------------------------------------------------------------------*/
10690
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
10691
 
10692
BEGIN
10693
 
10694
    UPDATE PLANNED pl SET
10695
    pl.VIEW_ID = NewViewId
10696
    WHERE pl.PV_ID = PvId
10697
      AND pl.RTAG_ID = RtagId;
10698
 
10699
END;
10700
/*-------------------------------------------------------------------------------------------------------*/
10701
-- DEVI-45275 This new function supports the ability to insert into the planned table, and existing
10702
-- version of a package as part of a release-to-release merge operation carried out within release manager.
10703
-- DEVI-49594 This function has subsequently been changed to allow a merge operation to cancel its
10704
-- opposite operation, if the opposite already exists in the planned table. This supports user activity
10705
-- via the Release Manager merge manager display
10706
 
10707
PROCEDURE MERGE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, mergeOperation IN CHAR ) IS
10708
 
10709
    ReleaseLocation VARCHAR2(4000);
10710
 
10711
        entryExists NUMBER;
10712
        existingOperation CHAR;
10713
BEGIN
10714
    /*--------------- Business Rules Here -------------------*/
10715
    /*-------------------------------------------------------*/
10716
 
10717
      -- Determine if the specified PV_ID already exists in the planned table....
10718
      SELECT COUNT (pl.pv_id) INTO entryExists
10719
      FROM PLANNED pl
10720
      WHERE pl.pv_id = newPvId
10721
      AND pl.rtag_id = RtagId
10722
      AND pl.view_id = ViewId;
10723
 
10724
      -- If the specified PV_ID already exists in the planned table....
10725
      IF entryExists = 1 THEN
10726
 
10727
         -- Get the operation for the existing entry
10728
         SELECT pl.operation INTO existingOperation
10729
         FROM PLANNED pl
10730
         WHERE pl.pv_id = newPvId
10731
         AND pl.rtag_id = RtagId
10732
         AND pl.view_id = ViewId;
10733
 
10734
         -- Is the specified merge operation the opposite of the existing entry?
10735
         -- If it is not, then there is nothing to do, otherwise...
10736
         -- NOTE: A = Add, S = Subtract
10737
         IF (mergeOperation = 'S' AND existingOperation = 'A')
10738
            OR (mergeOperation = 'A' AND existingOperation = 'S') THEN
10739
 
10740
           -- It is the opposite, so effectively it cancels the existing entry
10741
           -- Remove the entry from the planned table
10742
           DELETE
10743
            FROM PLANNED pl
10744
           WHERE pl.pv_id = newPvId
10745
             AND pl.rtag_id = RtagId
10746
             AND pl.view_id = ViewId;
10747
 
10748
           -- Log action
10749
           SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
10750
             FROM PROJECTS proj,
10751
                  RELEASE_TAGS rt
10752
            WHERE rt.PROJ_ID = proj.PROJ_ID
10753
              AND rt.RTAG_ID = RtagId;
10754
 
10755
           Log_Action ( newPvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 10756
         END IF;
3959 dpurdie 10757
      ELSE
10758
         -- Add to Planned tabled
10759
         INSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID, OPERATION )
10760
         VALUES( RtagId, newPvId, ViewId, mergeOperation );
1373 dpurdie 10761
 
3959 dpurdie 10762
         -- Log Action
10763
         SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
10764
          FROM PROJECTS proj,
10765
               RELEASE_TAGS rt
10766
         WHERE rt.PROJ_ID = proj.PROJ_ID
10767
         AND   rt.RTAG_ID = RtagId;
10768
 
10769
         Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 10770
      END IF;
10771
 
3959 dpurdie 10772
END;
1373 dpurdie 10773
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 10774
END PK_PLANNED;
4040 dpurdie 10775
 
3959 dpurdie 10776
/
4040 dpurdie 10777
--------------------------------------------------------
10778
--  DDL for Package Body PK_PROJECT
10779
--------------------------------------------------------
10780
 
5172 dpurdie 10781
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PROJECT" IS
1373 dpurdie 10782
 
3959 dpurdie 10783
    /*------------------------------------------------------------------------*/
10784
    PROCEDURE update_base_url (
10785
    nprojid   IN  projects.proj_id%TYPE,
10786
    sbaseurl  IN  VARCHAR2
10787
    ) IS
10788
    BEGIN
1373 dpurdie 10789
 
3959 dpurdie 10790
    UPDATE projects
10791
    SET base_url = sbaseurl
10792
    WHERE proj_id = nprojid;
10793
 
10794
    END update_base_url;
10795
 
10796
/*------------------------------------------------------------------------*/
10797
    PROCEDURE update_project_config (
10798
    nprojid   IN  projects.proj_id%TYPE,
10799
    sbaseurl  IN  VARCHAR2,
10800
    sjirakey  IN  VARCHAR2
10801
    ) IS
10802
    BEGIN
10803
 
10804
    UPDATE projects
10805
    SET base_url = sbaseurl,
10806
        jira_key = sjirakey
10807
    WHERE proj_id = nprojid;
10808
 
10809
    END update_project_config;
10810
    /*------------------------------------------------------------------------*/
10811
 
10812
    END pk_project;
4040 dpurdie 10813
 
3959 dpurdie 10814
/
4040 dpurdie 10815
--------------------------------------------------------
10816
--  DDL for Package Body PK_RELEASE
10817
--------------------------------------------------------
10818
 
5172 dpurdie 10819
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_RELEASE" IS
3959 dpurdie 10820
 
1373 dpurdie 10821
/*-------------------------------------------------------------------------------------------------------*/
5502 dpurdie 10822
PROCEDURE New_Release ( sReleaseName IN VARCHAR2, 
10823
                        sReleaseComments IN VARCHAR2, 
10824
                        nProjId IN NUMBER, 
10825
                        nSourceRtagId IN NUMBER, 
10826
                        sIsBranched IN CHAR, 
10827
                        nUserId IN NUMBER,
10828
                        cOfficial IN CHAR DEFAULT 'N'
10829
                        ) IS
1373 dpurdie 10830
 
3959 dpurdie 10831
RtagId NUMBER;
10832
ParentRtagId NUMBER;
10833
RecCount NUMBER := 0;
10834
VtreeId NUMBER;
1373 dpurdie 10835
 
3959 dpurdie 10836
BEGIN
10837
   /*--------------- Business Rules Here -------------------*/
10838
   -- Check for missing parameters
10839
   IF (sReleaseName IS NULL) OR (nUserId IS NULL)
10840
   THEN
10841
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId );
1373 dpurdie 10842
 
3959 dpurdie 10843
   END IF;
1373 dpurdie 10844
 
3959 dpurdie 10845
 
10846
   -- Check for duplicate Release Names
10847
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
10848
     FROM RELEASE_TAGS rt
10849
    WHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )
10850
      AND rt.PROJ_ID = nProjId;
10851
 
10852
   IF (RecCount > 0) THEN
10853
      RAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');
10854
   END IF;
10855
   /*-------------------------------------------------------*/
10856
 
10857
 
10858
   -- Get rtag_id
10859
   SELECT SEQ_RTAG_ID.NEXTVAL INTO RtagId FROM DUAL;
10860
 
10861
   SELECT SEQ_VTREE_ID.NEXTVAL INTO VtreeId FROM DUAL;
10862
 
10863
 
10864
 
10865
   -- Get Parent RtagId
10866
   ParentRtagId := GET_PARENT_RTAG ( RtagId, nSourceRtagId, sIsBranched );
10867
 
10868
   -- If the parent RTAG is NOT in this project then we cannot use it.
10869
   -- We must re-assign the parent to be the new release's RTAG_ID instead
10870
   -- else it will not show up in the projects release tree (DEVI-55480)
10871
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
10872
     FROM RELEASE_TAGS rt
10873
    WHERE rt.RTAG_ID = ParentRtagId
10874
      AND rt.PROJ_ID = nProjId;
10875
 
10876
   IF (RecCount = 0) THEN
10877
     ParentRtagId := RtagId;
10878
   END IF;
10879
 
10880
   -- Create new release
10881
   INSERT INTO RELEASE_TAGS ( RTAG_ID, RTAG_NAME, DESCRIPTION, CREATED_STAMP, CREATOR_ID,
10882
                        OFFICIAL, REBUILD_ENV, REBUILD_STAMP,
10883
                        PARENT_RTAG_ID, PROJ_ID, VTREE_ID )
10884
   VALUES ( RtagId,
10885
          sReleaseName,
10886
          sReleaseComments,
10887
          ORA_SYSDATE,
10888
          nUserId,
5502 dpurdie 10889
          cOfficial,
3959 dpurdie 10890
          'N',
10891
          0,
10892
          ParentRtagId,
10893
          nProjId,
10894
          VtreeId );
10895
 
10896
   -- If a source release is provided, clone its config spec branch information into the new release (DEVI-56650)
10897
   IF (NOT nSourceRtagId IS NULL)
10898
   THEN
10899
      UPDATE RELEASE_TAGS rtd
10900
      SET rtd.config_spec_branch = (SELECT rts.CONFIG_SPEC_BRANCH FROM RELEASE_TAGS rts WHERE rts.RTAG_ID = nSourceRtagId)
10901
      WHERE rtd.RTAG_ID = RtagId;
10902
   END IF;
10903
 
10904
   -- Update display Order
10905
   UPDATE_DISPLAY_ORDER ( nProjId );
10906
 
10907
   /* Log Project Action */
10908
   Log_Project_Action ( nProjId, 'new_release', nUserId, sReleaseName, RtagId );
10909
 
10910
 
10911
   -- Import Release Contents
10912
   IF (NOT nSourceRtagId IS NULL) THEN
5502 dpurdie 10913
      Import_Release_Contents ( nSourceRtagId, RtagId, nUserId, 1 );
3959 dpurdie 10914
   END IF;
10915
 
10916
END;
10917
/*-------------------------------------------------------------------------------------------------------*/
10918
PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER ) IS
10919
 
10920
 
10921
BEGIN
10922
 
10923
 
10924
   /*--------------- Business Rules Here -------------------*/
10925
   /*-------------------------------------------------------*/
10926
 
10927
   UPDATE RELEASE_TAGS urt SET
10928
   urt.DISPLAY_ORDER = (
10929
                  SELECT qry.REC_NUM
10930
                    FROM (
10931
                        SELECT rel.*, ROWNUM AS REC_NUM
10932
                          FROM (
10933
 
10934
                                SELECT rt.RTAG_ID,
10935
                                    rt.DISPLAY_ORDER,
10936
                                     DECODE( rt.PARENT_RTAG_ID,
10937
                                             rt.RTAG_ID, 0, rt.PARENT_RTAG_ID ) AS PARENT_RTAG_ID
10938
                                FROM RELEASE_TAGS rt
10939
                               WHERE rt.PROJ_ID = nProjId
10940
 
10941
                                ) rel
10942
                        START WITH rel.PARENT_RTAG_ID = 0
10943
                        CONNECT BY PRIOR rel.RTAG_ID = rel.PARENT_RTAG_ID
10944
                        ORDER SIBLINGS BY rel.DISPLAY_ORDER
10945
                        ) qry
10946
                     WHERE qry.RTAG_ID = urt.RTAG_ID
10947
                  )
10948
   WHERE urt.PROJ_ID = nProjId;
10949
 
10950
END;
10951
/*-------------------------------------------------------------------------------------------------------*/
10952
PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER  ) IS
10953
 
10954
   nIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
10955
   SeqNum NUMBER;
10956
 
10957
BEGIN
10958
 
10959
 
10960
   /*--------------- Business Rules Here -------------------*/
10961
   /*-------------------------------------------------------*/
10962
 
10963
   nIdCollector := IN_LIST_NUMBER ( sRtagIdList );
10964
 
10965
   -- Set start sequence number
10966
   SeqNum := 1;
10967
 
10968
   FOR i IN 1..nIdCollector.COUNT
10969
   LOOP
10970
 
10971
      -- Update new display order
10972
      UPDATE RELEASE_TAGS rt SET
10973
         rt.DISPLAY_ORDER = SeqNum
10974
       WHERE rt.PROJ_ID = nProjId
10975
         AND rt.RTAG_ID = nIdCollector(i);
10976
 
10977
      SeqNum := SeqNum + 1;
10978
 
10979
   END LOOP;
10980
 
10981
END;
10982
/*-------------------------------------------------------------------------------------------------------*/
5502 dpurdie 10983
PROCEDURE Update_Release ( nRtagId IN NUMBER,
10984
                           sReleaseName IN VARCHAR2,
10985
                           sReleaseComments IN VARCHAR2,
10986
                           nParentRtagId IN NUMBER,
10987
                           nMASSRtagId IN NUMBER,
10988
                           nConfigSpecBranch IN VARCHAR2,
10989
                           sOwnerEmail IN VARCHAR2,
10990
                           nUserId IN NUMBER,
10991
                           cState IN VARCHAR,
5384 dpurdie 10992
                           nBuildAge in NUMBER,
10993
                           cLxr in CHAR) IS
3959 dpurdie 10994
 
10995
RecCount NUMBER := 0;
10996
ProjId NUMBER;
10997
 
10998
BEGIN
10999
 
11000
 
11001
   /*--------------- Business Rules Here -------------------*/
11002
   -- Check for missing parameters
11003
   IF (sReleaseName IS NULL) OR (nUserId IS NULL) OR (nRtagId IS NULL)
11004
   THEN
11005
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId ||', nRtagId='|| nRtagId);
11006
 
11007
   END IF;
11008
 
11009
 
11010
   -- Check for duplicate Release Names
11011
   SELECT rt.PROJ_ID INTO ProjId
11012
     FROM RELEASE_TAGS rt
11013
    WHERE rt.RTAG_ID = nRtagId;
11014
 
11015
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
11016
     FROM RELEASE_TAGS rt
11017
    WHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )
11018
      AND rt.RTAG_ID != nRtagId
11019
      AND rt.PROJ_ID = ProjId;
11020
 
11021
 
11022
   IF (RecCount > 0) THEN
11023
      RAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');
11024
   END IF;
11025
   /*-------------------------------------------------------*/
11026
 
11027
 
11028
 
11029
   -- Update release details
11030
   UPDATE RELEASE_TAGS rt SET
11031
   rt.RTAG_NAME = sReleaseName,
11032
   rt.DESCRIPTION = sReleaseComments,
11033
   rt.PARENT_RTAG_ID = nParentRtagId,
11034
   rt.ASSOC_MASS_REF = nMASSRtagId,
11035
   rt.CONFIG_SPEC_BRANCH = nConfigSpecBranch,
11036
   rt.OWNER_EMAIL = sOwnerEmail,
5172 dpurdie 11037
   rt.PRODUCT_STATE_USED = cState,
5384 dpurdie 11038
   rt.BUILD_AGE = nBuildAge,
11039
   rt.LXR = cLxr
3959 dpurdie 11040
   WHERE rt.RTAG_ID = nRtagId;
11041
 
11042
   -- Update display Order
11043
   UPDATE_DISPLAY_ORDER ( ProjId );
11044
 
11045
   /* Log Project Action */
11046
   Log_Project_Action ( ProjId, 'update_release', nUserId, 'Release Name: <br>Release Comments:', nRtagId );
11047
 
11048
 
11049
 
11050
 
11051
END;
11052
/*-------------------------------------------------------------------------------------------------------*/
11053
PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER ) IS
11054
 
11055
   RecCount NUMBER := 0;
11056
   sReleaseId VARCHAR2(4000);
11057
   ProjId NUMBER;
11058
 
11059
BEGIN
11060
   /*--------------- Business Rules Here -------------------*/
11061
   IF (nRtagId IS NULL)
11062
   THEN
11063
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId  );
11064
   END IF;
11065
 
11066
 
11067
 
11068
   -- Check for any kids
11069
   SELECT COUNT( rt.RTAG_ID ) INTO RecCount
11070
     FROM RELEASE_TAGS rt
11071
    WHERE rt.PARENT_RTAG_ID = nRtagId
11072
      AND rt.RTAG_ID != rt.PARENT_RTAG_ID;
11073
 
11074
   IF (RecCount > 0) THEN
11075
      RAISE_APPLICATION_ERROR (-20000, 'Cannot destroy this release. You need to destroy its children releases first.'  );
11076
   END IF;
11077
   /*-------------------------------------------------------*/
11078
 
11079
   -- Clear the release contents
11080
   Clean_Release_Contents ( nRtagId, nUserId );
11081
 
11082
   /* Log Project Action */
11083
   SELECT rt.PROJ_ID, rt.RTAG_NAME ||'['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']' INTO ProjId, sReleaseId
11084
     FROM RELEASE_TAGS rt
11085
    WHERE rt.RTAG_ID = nRtagId;
11086
 
11087
   Log_Project_Action ( ProjId, 'destroy_release', nUserId, sReleaseId, nRtagId );
11088
 
11089
 
11090
   -- Remove Release
11091
   DELETE
11092
     FROM RELEASE_TAGS rt
11093
    WHERE rt.RTAG_ID = nRtagId;
11094
 
11095
 
11096
 
11097
END;
11098
/*-------------------------------------------------------------------------------------------------------*/
5502 dpurdie 11099
PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER, nMode IN NUMBER default 0 ) IS
3959 dpurdie 11100
 
11101
   sSourceLocation VARCHAR2(4000);
11102
   sTargetLocation VARCHAR2(4000);
11103
   ProjId NUMBER;
11104
   cReleaseMode CHAR(1);
11105
   RconId NUMBER;
11106
 
11107
   -- this cursor gets the source release daemon configurations, ensuring that the
11108
   -- first record will be the master daemon, and subsequent records will be the slaves.
11109
   CURSOR curSrcReleaseConfigs IS
4308 dpurdie 11110
    SELECT daemon_hostname, gbe_id, gbe_buildfilter, bmcon_id, daemon_mode
3959 dpurdie 11111
     FROM RELEASE_CONFIG rc
11112
    WHERE rc.RTAG_ID = nSourceRtagId
11113
    ORDER BY rc.daemon_mode;
11114
    recSrcReleaseConfigs curSrcReleaseConfigs%ROWTYPE;
11115
 
11116
    -- this cursor looks for target release daemons
11117
   CURSOR curTgtReleaseConfigs IS
11118
    SELECT rcon_id
11119
     FROM RELEASE_CONFIG rc
11120
    WHERE rc.RTAG_ID = nTargetRtagId;
11121
    recTgtReleaseConfigs curTgtReleaseConfigs%ROWTYPE;
11122
 
11123
    -- this cursor looks for target release daemon run level entries
11124
   CURSOR curTgtReleaseConfigRunLevel IS
11125
    SELECT current_run_level
11126
     FROM RUN_LEVEL rl
11127
    WHERE rl.RCON_ID = recTgtReleaseConfigs.rcon_id;
11128
    recTgtReleaseConfigRunLevel curTgtReleaseConfigRunLevel%ROWTYPE;
11129
 
11130
BEGIN
11131
   /*--------------- Business Rules Here -------------------*/
11132
   IF (nSourceRtagId IS NULL) OR (nTargetRtagId IS NULL)
11133
   THEN
11134
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nSourceRtagId= '|| nSourceRtagId ||', nTargetRtagId='|| nTargetRtagId );
11135
   END IF;
11136
 
11137
   IF (nSourceRtagId = nTargetRtagId) THEN
11138
      RAISE_APPLICATION_ERROR (-20000, 'Cannot import release contents from same release.' );
11139
   END IF;
11140
 
11141
 
11142
   -- Check if Target release is in OPEN mode
5502 dpurdie 11143
   IF nMode = 0 THEN
11144
     SELECT rt.OFFICIAL  INTO  cReleaseMode
11145
       FROM RELEASE_TAGS rt
11146
      WHERE rt.RTAG_ID = nTargetRtagId;
11147
 
11148
     IF (cReleaseMode != 'N') THEN
11149
        RAISE_APPLICATION_ERROR (-20000, 'Release must be in OPEN mode to import the contents.' );
11150
     END IF;
11151
  END IF;
3959 dpurdie 11152
 
11153
   -- check that the target release's daemons are all paused before we allow an import operation
11154
   OPEN curTgtReleaseConfigs;
11155
   FETCH curtgtReleaseConfigs INTO recTgtReleaseConfigs;
11156
 
11157
   WHILE curTgtReleaseConfigs%FOUND
11158
   LOOP
11159
      OPEN curTgtReleaseConfigRunLevel;
11160
      FETCH curTgtReleaseConfigRunLevel INTO recTgtReleaseConfigRunLevel;
11161
      IF curTgtReleaseConfigRunLevel%FOUND THEN
11162
         IF (recTgtReleaseConfigRunLevel.current_run_level IS NULL) OR
11163
            (recTgtReleaseConfigRunLevel.current_run_level <> 2) THEN
11164
            RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
11165
         END IF;
1373 dpurdie 11166
      ELSE
3959 dpurdie 11167
         -- we don't know what the daemon run level is so err on the side of caution
11168
         RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
1373 dpurdie 11169
      END IF;
3959 dpurdie 11170
      CLOSE curTgtReleaseConfigRunLevel;
1373 dpurdie 11171
 
3959 dpurdie 11172
      FETCH curTgtReleaseConfigs INTO recTgtReleaseConfigs;
11173
   END LOOP;
1373 dpurdie 11174
 
3959 dpurdie 11175
   CLOSE curTgtReleaseConfigs;
1373 dpurdie 11176
 
11177
 
3959 dpurdie 11178
   /*-------------------------------------------------------*/
1373 dpurdie 11179
 
3959 dpurdie 11180
   -- Clean target contents
11181
   Clean_Release_Contents ( nTargetRtagId, nUserId );
1373 dpurdie 11182
 
11183
 
3959 dpurdie 11184
   -- Import Released Area Contents
5502 dpurdie 11185
   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 11186
   SELECT nTargetRtagId AS RTAG_ID,
11187
         rc.PV_ID,
11188
         rc.BASE_VIEW_ID,
11189
         rc.INSERT_STAMP,
11190
         rc.INSERTOR_ID,
11191
         rc.PKG_STATE,
11192
         rc.PKG_ID,
5384 dpurdie 11193
         rc.DEPRECATED_STATE,
11194
         rc.PRODUCT_STATE,
11195
         rc.SDKTAG_ID
3959 dpurdie 11196
     FROM RELEASE_CONTENT rc
11197
    WHERE rc.RTAG_ID = nSourceRtagId;
11198
 
11199
 
11200
   -- Import any Pegged Version settings from the source release
11201
   INSERT INTO PEGGED_VERSIONS ( RTAG_ID, PV_ID )
11202
   SELECT nTargetRtagId AS RTAG_ID,
11203
          pegv.PV_ID
11204
     FROM PEGGED_VERSIONS pegv
11205
    WHERE pegv.RTAG_ID = nSourceRtagId;
11206
 
11207
   -- Import any Advisory Ripple settings from the source release
11208
   INSERT INTO ADVISORY_RIPPLE ( RTAG_ID, PV_ID )
11209
   SELECT nTargetRtagId AS RTAG_ID,
11210
          avr.PV_ID
11211
     FROM ADVISORY_RIPPLE avr
11212
    WHERE avr.RTAG_ID = nSourceRtagId;
11213
 
11214
 
11215
   --Import Release Configuration Information
11216
   OPEN curSrcReleaseConfigs;
11217
   FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
11218
 
4308 dpurdie 11219
     WHILE curSrcReleaseConfigs%FOUND
3959 dpurdie 11220
   LOOP
11221
      -- add a daemon to the target release
5502 dpurdie 11222
      PK_BUILDAPI.duplicate_daemon_config( nTargetRtagId,
11223
                                     recSrcReleaseConfigs.bmcon_id,
11224
                                     recSrcReleaseConfigs.daemon_hostname,
11225
                                     recSrcReleaseConfigs.gbe_id,
4308 dpurdie 11226
                                     recSrcReleaseConfigs.daemon_mode ,
11227
                                     recSrcReleaseConfigs.gbe_buildfilter );
3959 dpurdie 11228
 
11229
      FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
11230
   END LOOP;
11231
 
11232
   CLOSE curSrcReleaseConfigs;
11233
 
11234
 
11235
 
11236
   -- Import Ignore Warning states
11237
   INSERT INTO IGNORE_WARNINGS ( RTAG_ID, PV_ID, DPV_ID )
11238
   SELECT nTargetRtagId AS RTAG_ID,
11239
          igw.PV_ID,
11240
          igw.DPV_ID
11241
     FROM IGNORE_WARNINGS igw
11242
    WHERE igw.rtag_id = nSourceRtagId;
11243
 
11244
 
11245
   /* Log Project Action */
11246
   -- Get Source Location
11247
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sSourceLocation
11248
     FROM RELEASE_TAGS rt,
11249
           PROJECTS pr
11250
    WHERE rt.PROJ_ID = pr.PROJ_ID
11251
      AND rt.RTAG_ID = nSourceRtagId;
11252
 
11253
   -- Get Target Location
11254
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sTargetLocation
11255
     FROM RELEASE_TAGS rt,
11256
           PROJECTS pr
11257
    WHERE rt.PROJ_ID = pr.PROJ_ID
11258
      AND rt.RTAG_ID = nTargetRtagId;
11259
 
11260
   -- Get project id
11261
   SELECT rt.PROJ_ID  INTO  ProjId
11262
     FROM RELEASE_TAGS rt
11263
    WHERE rt.RTAG_ID = nTargetRtagId;
11264
 
11265
   Log_Project_Action ( ProjId, 'import_release_contents', nUserId, 'SOURCE: '|| sSourceLocation ||'   TARGET: '|| sTargetLocation, nTargetRtagId );
11266
END;
11267
 
11268
 
11269
 
1373 dpurdie 11270
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11271
PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER ) IS
1373 dpurdie 11272
 
3959 dpurdie 11273
   RecCount NUMBER;
11274
        rconIdList VARCHAR2(4000);
1373 dpurdie 11275
 
3959 dpurdie 11276
BEGIN
11277
   /*--------------- Business Rules Here -------------------*/
11278
   IF (nRtagId IS NULL)
11279
   THEN
11280
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId  );
11281
   END IF;
1373 dpurdie 11282
 
11283
 
3959 dpurdie 11284
   -- Check if other release references this release
11285
   SELECT COUNT( rl.RTAG_ID ) INTO RecCount
11286
     FROM RELEASE_LINKS rl
11287
    WHERE rl.REF_RTAG_ID = nRtagId;
1373 dpurdie 11288
 
3959 dpurdie 11289
   IF (RecCount > 0) THEN
11290
      RAISE_APPLICATION_ERROR (-20000, 'This release is referenced by other release and cannot be destroyed.'  );
11291
   END IF;
11292
   /*-------------------------------------------------------*/
1373 dpurdie 11293
 
3959 dpurdie 11294
   -- Delete Release links
11295
   DELETE
11296
     FROM RELEASE_LINKS rl
11297
    WHERE rl.RTAG_ID = nRtagId;
11298
 
11299
   -- Delete ignore warning
11300
   DELETE
11301
     FROM IGNORE_WARNINGS iw
11302
    WHERE iw.RTAG_ID = nRtagId;
11303
 
11304
 
11305
   -- Delete Build Order cached calculations
11306
   DELETE
11307
     FROM BUILD_ORDER bo
11308
    WHERE bo.RTAG_ID = nRtagId;
11309
 
11310
 
11311
   -- Delete Notification History
11312
   DELETE
11313
     FROM NOTIFICATION_HISTORY nh
11314
    WHERE nh.RTAG_ID = nRtagId;
11315
 
11316
 
11317
   -- Delete Released Area Contents
11318
   DELETE
11319
     FROM RELEASE_CONTENT rc
11320
    WHERE rc.RTAG_ID = nRtagId;
11321
 
11322
 
11323
   -- Delete Work In Progress Area Contents
11324
   DELETE
11325
     FROM WORK_IN_PROGRESS wip
11326
    WHERE wip.RTAG_ID = nRtagId;
11327
 
11328
 
11329
   -- Delete Pending Area Contents
11330
   DELETE
11331
     FROM PLANNED pl
11332
    WHERE pl.RTAG_ID = nRtagId;
11333
 
11334
   -- Delete Deprecated Packages
11335
   DELETE
11336
     FROM DEPRECATED_PACKAGES dp
11337
    WHERE dp.RTAG_ID = nRtagId;
11338
 
11339
   -- Delete Project Action Log
11340
   DELETE
11341
     FROM PROJECT_ACTION_LOG pal
11342
    WHERE pal.RTAG_ID = nRtagId;
11343
 
11344
   -- Delete Do Not Ripple Contents
11345
   DELETE
11346
     FROM DO_NOT_RIPPLE dnr
11347
    WHERE dnr.RTAG_ID = nRtagId;
11348
 
11349
   -- Delete Dash Board Contents
11350
   DELETE
11351
     FROM DASH_BOARD db
11352
    WHERE db.RTAG_ID = nRtagId;
11353
 
11354
   -- Delete Advisory Ripple Contents
11355
   DELETE
11356
     FROM ADVISORY_RIPPLE adr
11357
    WHERE adr.RTAG_ID = nRtagId;
11358
 
11359
   -- Delete Archive Action Log
11360
   DELETE
11361
     FROM ARCHIVE_ACTION_LOG aal
11362
    WHERE aal.RTAG_ID = nRtagId;
11363
 
11364
   -- Delete Daemons For This Release
11365
   FOR rcon IN (SELECT rc.RCON_ID FROM RELEASE_CONFIG rc WHERE rc.RTAG_ID = nRtagId )
11366
   LOOP
11367
      rconIdList := rconIdList || rcon.RCON_ID || ',';
11368
   END LOOP;
11369
 
11370
   pk_buildapi.DELETE_DAEMON(rconIdList);
11371
 
11372
   -- Delete Release Metrics Contents
11373
   DELETE
11374
     FROM RELEASE_METRICS rm
11375
    WHERE rm.RTAG_ID = nRtagId;
11376
 
11377
   -- Delete Release Configuration Contents
11378
   DELETE
11379
     FROM RELEASE_CONFIG rc
11380
    WHERE rc.RTAG_ID = nRtagId;
11381
 
11382
   -- Delete Pegged Version Contents
11383
   DELETE
11384
     FROM PEGGED_VERSIONS pegv
11385
    WHERE pegv.RTAG_ID = nRtagId;
11386
 
11387
END;
11388
/*-------------------------------------------------------------------------------------------------------*/
11389
FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR )  RETURN NUMBER IS
11390
 
11391
   nSourceParentRtagId NUMBER;
11392
 
11393
BEGIN
11394
   /*--------------- Business Rules Here -------------------*/
11395
   IF (nRtagId IS NULL) OR (cIsBranch IS NULL)
11396
   THEN
11397
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId ||', cIsBranch= '|| cIsBranch );
11398
   END IF;
11399
   /*-------------------------------------------------------*/
11400
 
11401
 
11402
   IF ( nSourceRtagId IS NULL ) THEN
11403
      -- Create new on main branch
11404
      RETURN nRtagId;
11405
 
11406
   ELSE
11407
      -- Create from source rtag_id
11408
 
11409
      -- Find parent of Source RtagId
11410
      SELECT rt.PARENT_RTAG_ID INTO nSourceParentRtagId
11411
        FROM RELEASE_TAGS rt
11412
       WHERE rt.RTAG_ID = nSourceRtagId;
11413
 
11414
      IF (UPPER(cIsBranch) = 'Y') THEN
11415
         RETURN nSourceRtagId;
11416
      ELSE
11417
         IF (nSourceRtagId = nSourceParentRtagId) THEN
11418
            RETURN nRtagId;
11419
         ELSE
11420
            RETURN nSourceParentRtagId;
1373 dpurdie 11421
         END IF;
11422
      END IF;
11423
 
3959 dpurdie 11424
 
11425
   END IF;
11426
 
11427
 
11428
END;
1373 dpurdie 11429
/*-------------------------------------------------------------------------------------------------------*/
11430
 
3959 dpurdie 11431
-- PROCEDURE Get_Next_Version ( nSourceRtagId IN NUMBER,
11432
--                       sNextVersion OUT VARCHAR2,
11433
--                       nNextLifeCycle OUT NUMBER,
11434
--                       nParentRtagId OUT NUMBER,
11435
--                       nProjId IN NUMBER ) IS
11436
--
11437
-- SourceBranchCount NUMBER;
11438
-- ProjRootVersion VARCHAR2(4000);
11439
-- LastLifeCycle NUMBER;
11440
-- ROOT_VERSION_NOT_FOUND NUMBER := -1;
11441
-- SET_PARENT_AS_YOURSELF NUMBER := -1;
11442
--
11443
-- SourceProjId NUMBER;
11444
-- SourceVersion RELEASE_TAGS.RTAG_VERSION%TYPE;
11445
-- SourceLifeCycle RELEASE_TAGS.RTAG_LIFE_CYCLE%TYPE;
11446
--
11447
-- BEGIN
11448
--    /*--------------- Business Rules Here -------------------*/
11449
--    /*-------------------------------------------------------*/
11450
--
11451
--
11452
--    BEGIN
11453
--       -- Get Project root version
11454
--       SELECT rt.RTAG_VERSION INTO ProjRootVersion
11455
--         FROM RELEASE_TAGS rt
11456
--        WHERE rt.PROJ_ID = nProjId
11457
--          AND rt.RTAG_ID = rt.PARENT_RTAG_ID;
11458
--
11459
--       EXCEPTION
11460
--       WHEN NO_DATA_FOUND THEN
11461
--       ProjRootVersion := ROOT_VERSION_NOT_FOUND;
11462
--    END;
11463
--
11464
--
11465
--
11466
--
11467
--    BEGIN
11468
--       -- Get info for source rtagid
11469
--       SELECT rt.PROJ_ID, rt.RTAG_VERSION, rt.RTAG_LIFE_CYCLE  INTO  SourceProjId, SourceVersion, SourceLifeCycle
11470
--         FROM RELEASE_TAGS rt
11471
--        WHERE rt.RTAG_ID = nSourceRtagId;
11472
--
11473
--       EXCEPTION
11474
--       WHEN NO_DATA_FOUND THEN
11475
--       SourceProjId := NULL;
11476
--       SourceVersion := NULL;
11477
--       SourceLifeCycle := NULL;
11478
--    END;
11479
--
11480
--
11481
--    IF (nSourceRtagId IS NULL)  OR  ( SourceProjId != nProjId ) THEN
11482
--
11483
--       /* Blank Release Required  OR  Release imported from other project */
11484
--
11485
--       IF (ProjRootVersion = ROOT_VERSION_NOT_FOUND) THEN
11486
--          /* No Releases found in the project, hence calculate next version available.  */
11487
--
11488
--          -- Set parent rtag
11489
--          nParentRtagId := SET_PARENT_AS_YOURSELF;
11490
--
11491
--
11492
--          BEGIN
11493
--             -- Get Next Available Global Root Version
11494
--             SELECT MAX( TO_NUMBER( rt.RTAG_VERSION ) )  INTO  ProjRootVersion
11495
--               FROM RELEASE_TAGS rt
11496
--              WHERE rt.RTAG_ID = rt.PARENT_RTAG_ID;
11497
--
11498
--             -- Set Next Rtag Version
11499
--             sNextVersion := CAST( ProjRootVersion + 1 AS VARCHAR2 );
11500
--
11501
--             -- Restart Lifecycle
11502
--             nNextLifeCycle := 0;
11503
--
11504
--
11505
--             EXCEPTION
11506
--             WHEN NO_DATA_FOUND THEN
11507
--             -- Release Manager has no releases, hence start from 1
11508
--             sNextVersion := '1';
11509
--             nNextLifeCycle := 0;
11510
--
11511
--          END;
11512
--
11513
--
11514
--
11515
--       ELSE
11516
--          /* Releases found in this project. */
11517
--
11518
--          SELECT qry.RTAG_ID, qry.RTAG_LIFE_CYCLE  INTO nParentRtagId, LastLifeCycle
11519
--            FROM (
11520
--                SELECT rt.RTAG_ID, rt.RTAG_LIFE_CYCLE
11521
--                  FROM RELEASE_TAGS rt
11522
--                 WHERE rt.PROJ_ID = nProjId
11523
--                   AND rt.RTAG_VERSION = ProjRootVersion
11524
--                 ORDER BY rt.RTAG_LIFE_CYCLE DESC
11525
--                  ) qry
11526
--           WHERE ROWNUM = 1;
11527
--
11528
--
11529
--          -- Set same Rtag Version
11530
--          sNextVersion := ProjRootVersion;
11531
--
11532
--          -- Increase Lifecycle
11533
--          nNextLifeCycle := LastLifeCycle + 1;
11534
--
11535
--       END IF;
11536
--
11537
--
11538
--
11539
--    ELSE
11540
--       /* Create Release From other release within this project */
11541
--
11542
--       -- Set parent id
11543
--       nParentRtagId := nSourceRtagId;
11544
--
11545
--
11546
--       -- Get number of source branches
11547
--       SELECT COUNT(rt.RTAG_ID) INTO SourceBranchCount
11548
--         FROM RELEASE_TAGS rt
11549
--        WHERE rt.PROJ_ID = nProjId
11550
--          AND rt.PARENT_RTAG_ID = nSourceRtagId;
11551
--
11552
--
11553
--       IF SourceBranchCount = 0 THEN
11554
--          /* Release is Head (i.e. Tip on its branch ) */
11555
--
11556
--          -- Set Next Rtag Version
11557
--          sNextVersion := SourceVersion;
11558
--
11559
--          -- Increase Lifecycle
11560
--          nNextLifeCycle := SourceLifeCycle + 1;
11561
--
11562
--
11563
--       ELSIF SourceBranchCount = 1 THEN
11564
--          /* Release IS NOT Head, but can be branched */
11565
--
11566
--          -- Set Next Rtag Version
11567
--          sNextVersion := SourceVersion ||'.'|| SourceLifeCycle;
11568
--
11569
--          -- Reset Lifecycle to 1
11570
--          nNextLifeCycle := 1;
11571
--
11572
--
11573
--       ELSE
11574
--          -- Limit of two branches is reached
11575
--          RAISE_APPLICATION_ERROR (-20000, 'This release is already branched and cannot be branched again. ');
11576
--
11577
--       END IF;
11578
--
11579
--
11580
--
11581
--
11582
--
11583
--
11584
--    END IF;
11585
--
11586
--
11587
-- END;
11588
 
11589
/*-------------------------------------------------------------------------------------------------------*/
11590
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
11591
 
11592
   IsBaseView CHAR(1);
11593
 
11594
BEGIN
11595
 
11596
   -- Check if the view is BASE VIEW
11597
   SELECT vi.BASE_VIEW INTO IsBaseView
11598
     FROM VIEWS vi
11599
    WHERE vi.VIEW_ID = ViewId;
11600
 
5172 dpurdie 11601
   IF (IsBaseView IN ('Y', 'S')) THEN
3959 dpurdie 11602
      -- Get Base view content
11603
      OPEN RecordSet FOR
11604
      SELECT DECODE ( rel.pkg_state, NULL, 0, rel.pkg_state ) AS PKG_STATE,
11605
            rel.deprecated_state,
11606
            pv.pv_id,
11607
            pkg.pkg_name,
11608
            pv.pkg_version,
11609
            pv.dlocked,
11610
            pv.pv_description,
11611
            pv.BUILD_TYPE
11612
        FROM release_content rel,
11613
             packages pkg,
11614
             package_versions pv
11615
       WHERE pv.pkg_id = pkg.pkg_id
11616
         AND rel.pv_id = pv.pv_id
11617
         AND rel.BASE_VIEW_ID = ViewId
11618
         AND rel.RTAG_ID = RtagId
11619
       ORDER BY UPPER(pkg.PKG_NAME);
11620
 
11621
   ELSE
11622
 
11623
       -- Get non base view content
11624
      OPEN RecordSet FOR
11625
      SELECT DECODE ( rel.pkg_state, NULL, 0, rel.pkg_state ) AS PKG_STATE,
11626
            rel.deprecated_state,
11627
            pv.pv_id,
11628
            pkg.pkg_name,
11629
            pv.pkg_version,
11630
            pv.dlocked,
11631
            pv.pv_description,
11632
            pv.BUILD_TYPE
11633
        FROM release_content rel,
11634
             packages pkg,
11635
             package_versions pv,
11636
            VIEW_DEF vd
11637
       WHERE pv.pkg_id = pkg.pkg_id
11638
         AND rel.pv_id = pv.pv_id
11639
         AND vd.VIEW_ID = ViewId
11640
         AND vd.PKG_ID = pv.PKG_ID
11641
         AND rel.RTAG_ID = RtagId
11642
       ORDER BY UPPER(pkg.PKG_NAME);
11643
 
11644
   END IF;
11645
 
11646
 
11647
 
11648
 
11649
END;
11650
/*-------------------------------------------------------------------------------------------------------*/
4585 dpurdie 11651
  -- Add or Replace a package to the specified release
3959 dpurdie 11652
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
11653
   ReleaseLocation VARCHAR2(4000);
11654
   nPkgId NUMBER;
11655
   sVExt VARCHAR2(4000);
11656
   IsPatch PACKAGE_VERSIONS.IS_PATCH%TYPE := 'N';
5172 dpurdie 11657
   default_pegged CHAR := 'N';
11658
   default_advisory_ripple CHAR := 'N';
3959 dpurdie 11659
 
11660
   -- Find package for replacement
11661
   CURSOR curReplacePkg IS
11662
    SELECT pv.PV_ID
11663
     FROM RELEASE_CONTENT rc,
11664
           PACKAGE_VERSIONS pv
11665
    WHERE rc.PV_ID = pv.PV_ID
11666
      AND rc.RTAG_ID = RtagId
11667
      AND pv.PKG_ID = nPkgId
11668
      AND NVL( pv.V_EXT, 'LINK_A_NULL' ) = NVL( sVExt, 'LINK_A_NULL' );
11669
    recReplacePkg curReplacePkg%ROWTYPE;
11670
 
11671
BEGIN
11672
   -- Get is_patch, pkg_id and v_ext
5502 dpurdie 11673
   SELECT pv.IS_PATCH, pv.PKG_ID, pv.V_EXT
5172 dpurdie 11674
     INTO IsPatch, nPkgId, sVExt
3959 dpurdie 11675
     FROM PACKAGE_VERSIONS pv
11676
    WHERE pv.PV_ID = newPvId;
11677
 
11678
   -- Never put patch in relesed area
11679
   IF (IsPatch != 'Y') OR (IsPatch IS NULL) THEN
11680
 
11681
      -- Try to get a package to be replaced with this new one.
11682
      -- Use unique constraint of PKG_ID and V_EXT
11683
      OPEN curReplacePkg;
11684
       FETCH curReplacePkg INTO recReplacePkg;
11685
 
11686
       IF curReplacePkg%FOUND THEN
11687
         -- Replace package
11688
         REPLACE_PACKAGE ( newPvId, recReplacePkg.PV_ID, RtagId, UserId );
11689
 
11690
      ELSE
11691
         -- Add new package
11692
         INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )
11693
         VALUES( RtagId, newPvId, ViewId, Ora_Sysdate, UserId, 0);
5502 dpurdie 11694
 
5172 dpurdie 11695
        -- Insert default package flags
11696
        -- Get Package Level defaults
5502 dpurdie 11697
 
11698
        SELECT pkg.default_pegged, pkg.DEFAULT_ADVISORY_RIPPLE
5172 dpurdie 11699
         INTO  default_pegged, default_advisory_ripple
11700
         FROM  PACKAGES pkg
5502 dpurdie 11701
        WHERE  pkg.PKG_ID = nPkgId;
3959 dpurdie 11702
 
5172 dpurdie 11703
        -- Apply to the newly inserted package
11704
        IF default_pegged = 'Y' THEN
11705
          INSERT INTO PEGGED_VERSIONS ( RTAG_ID, PV_ID ) VALUES (RtagId, newPvId);
11706
          -- Log_Action ( newPvId, 'action', UserId, 'Set default package peg' );
11707
        END IF;
5502 dpurdie 11708
 
5172 dpurdie 11709
        IF default_advisory_ripple = 'Y' THEN
11710
          INSERT INTO ADVISORY_RIPPLE ( RTAG_ID, PV_ID ) VALUES (RtagId, newPvId);
11711
          -- Log_Action ( newPvId, 'action', UserId, 'Set default advisory ripple' );
11712
        END IF;
3959 dpurdie 11713
 
5172 dpurdie 11714
        -- Mark Release as chnaged
11715
        SET_RELEASE_MODIFIED(RtagId);
11716
        RUN_POST_ACTIONS(newPvId, RtagId);
5502 dpurdie 11717
 
3959 dpurdie 11718
          /* LOG ACTION */
11719
         SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11720
           FROM PROJECTS proj,
11721
                 RELEASE_TAGS rt
11722
          WHERE rt.PROJ_ID = proj.PROJ_ID
11723
            AND rt.RTAG_ID = RtagId;
11724
 
11725
         Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );
11726
 
1373 dpurdie 11727
      END IF;
3959 dpurdie 11728
      CLOSE curReplacePkg;
11729
   END IF;
5172 dpurdie 11730
END;
3959 dpurdie 11731
 
1373 dpurdie 11732
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11733
PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 11734
 
3959 dpurdie 11735
   ReleaseLocation VARCHAR2(4000);
11736
   sPkgVersion VARCHAR2(4000);
5172 dpurdie 11737
   nSdkTag NUMBER;
3959 dpurdie 11738
BEGIN
5172 dpurdie 11739
   -- Trap SDK Replacement
11740
   -- This is a last ditch check. The application should not allow this condition to happen
11741
      SELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENT
11742
      WHERE rtag_id = RtagId
11743
       AND pv_id = oldPvId;
5502 dpurdie 11744
 
5172 dpurdie 11745
     If nSdkTag IS NOT NULL  THEN
11746
       raise_application_error (-20000, 'Attempt to replace a package provided by an SDK.');
11747
     END IF;
3959 dpurdie 11748
 
11749
   -- Replace Package
11750
    UPDATE RELEASE_CONTENT
11751
       SET pv_id = newPvId,
11752
           insert_stamp = Ora_Sysdate,
11753
           insertor_id = UserId,
11754
         product_state = NULL
11755
     WHERE rtag_id = RtagId
11756
       AND pv_id = oldPvId;
11757
 
11758
   -- update the pegging table
11759
   UPDATE PEGGED_VERSIONS
11760
      SET pv_id = newPvId
11761
     WHERE rtag_id = RtagId
11762
       AND pv_id = oldPvId;
11763
 
11764
   -- update the advisory_ripple table
11765
   UPDATE ADVISORY_RIPPLE
11766
      SET pv_id = newPvId
11767
     WHERE rtag_id = RtagId
11768
       AND pv_id = oldPvId;
11769
 
11770
    /* LOG ACTION */
11771
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11772
     FROM PROJECTS proj,
11773
           RELEASE_TAGS rt
11774
    WHERE rt.PROJ_ID = proj.PROJ_ID
11775
      AND rt.RTAG_ID = RtagId;
11776
 
11777
   SELECT pv.PKG_VERSION INTO sPkgVersion
11778
     FROM PACKAGE_VERSIONS pv
11779
    WHERE pv.PV_ID = newPvId;
11780
 
5172 dpurdie 11781
   SET_RELEASE_MODIFIED(RtagId);
3959 dpurdie 11782
   Log_Action ( oldPvId, 'replaced_with', UserId, 'Replacing with: '|| sPkgVersion ||' at '|| ReleaseLocation );
11783
   Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );
11784
 
11785
END;
11786
/*-------------------------------------------------------------------------------------------------------*/
11787
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
11788
   ReleaseLocation VARCHAR2(4000);
5172 dpurdie 11789
   nSdkTag NUMBER;
3959 dpurdie 11790
BEGIN
5172 dpurdie 11791
   -- Trap SDK Package Deletion
11792
   -- This is a last ditch check. The application should not allow this condition to happen
11793
      SELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENT
11794
      WHERE rtag_id = RtagId
11795
       AND pv_id = PvId;
5502 dpurdie 11796
 
5172 dpurdie 11797
     If nSdkTag IS NOT NULL  THEN
11798
       raise_application_error (-20000, 'Attempt to delete a package provided by an SDK.');
11799
     END IF;
3959 dpurdie 11800
 
11801
   -- Delete old package
11802
   DELETE
11803
     FROM RELEASE_CONTENT rc
11804
    WHERE rc.PV_ID = PvId
11805
      AND rc.RTAG_ID = RtagId;
11806
 
11807
 
11808
   /* LOG ACTION */
11809
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11810
     FROM PROJECTS proj,
11811
          RELEASE_TAGS rt
11812
    WHERE rt.PROJ_ID = proj.PROJ_ID
11813
      AND rt.RTAG_ID = RtagId;
11814
 
11815
   Log_Action ( PvId, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );
11816
 
11817
 
11818
END;
11819
/*-------------------------------------------------------------------------------------------------------*/
11820
PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
11821
   ReleaseLocation VARCHAR2(4000);
11822
 
11823
   CURSOR curMatchingPackage IS
11824
    SELECT mpv.PV_ID
11825
     FROM RELEASE_CONTENT rc,
11826
           PACKAGE_VERSIONS mpv,
11827
         PACKAGE_VERSIONS pv
11828
    WHERE rc.PV_ID = mpv.PV_ID
11829
      AND rc.RTAG_ID = RtagId
11830
      AND pv.PV_ID = PvId
11831
      AND pv.PKG_ID = mpv.PKG_ID
11832
      AND NVL( pv.V_EXT, '|LINK_A_NULL|' ) = NVL( mpv.V_EXT, '|LINK_A_NULL|' );
11833
    recMatchingPackage curMatchingPackage%ROWTYPE;
11834
 
11835
BEGIN
11836
 
11837
   OPEN curMatchingPackage;
11838
    FETCH curMatchingPackage INTO recMatchingPackage;
11839
 
11840
    IF curMatchingPackage%FOUND THEN
11841
      -- Delete old package
11842
      DELETE
11843
        FROM RELEASE_CONTENT rc
11844
       WHERE rc.PV_ID = recMatchingPackage.PV_ID
11845
         AND rc.RTAG_ID = RtagId;
11846
 
11847
 
11848
      /* LOG ACTION */
11849
      SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11850
        FROM PROJECTS proj,
11851
              RELEASE_TAGS rt
11852
       WHERE rt.PROJ_ID = proj.PROJ_ID
11853
         AND rt.RTAG_ID = RtagId;
11854
 
11855
      Log_Action ( recMatchingPackage.PV_ID, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );
11856
 
11857
   END IF;
11858
 
11859
 
11860
   CLOSE curMatchingPackage;
11861
 
11862
 
11863
 
11864
 
11865
END;
11866
/*-------------------------------------------------------------------------------------------------------*/
11867
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
11868
 
11869
   ReturnValue NUMBER;
11870
 
11871
BEGIN
11872
   SELECT rc.BASE_VIEW_ID INTO ReturnValue
11873
     FROM RELEASE_CONTENT rc
11874
    WHERE rc.RTAG_ID = RtagId
11875
      AND rc.PV_ID = PvId;
11876
 
11877
   RETURN ReturnValue;
11878
END;
11879
/*-------------------------------------------------------------------------------------------------------*/
11880
PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER ) IS
11881
 
11882
BEGIN
11883
   -- Reset Ignore warnings up-the-tree
11884
   RESET_IGNORE_WARNINGS ( TO_CHAR(PvId), RtagId );
11885
 
11886
   -- Refresh Package states
11887
   TOUCH_RELEASE ( RtagId );
11888
 
11889
END;
11890
/*-------------------------------------------------------------------------------------------------------*/
11891
PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER ) IS
11892
   CURSOR curReleases IS
11893
    SELECT rc.RTAG_ID
11894
     FROM RELEASE_CONTENT rc
11895
    WHERE rc.PV_ID = PvId;
11896
    recReleases curReleases%ROWTYPE;
11897
 
11898
BEGIN
11899
 
11900
   OPEN curReleases;
11901
    FETCH curReleases INTO recReleases;
11902
 
11903
   WHILE curReleases%FOUND
11904
   LOOP
11905
 
11906
      RUN_POST_ACTIONS ( PvId, recReleases.RTAG_ID );
11907
 
11908
      FETCH curReleases INTO recReleases;
11909
   END LOOP;
11910
 
11911
   CLOSE curReleases;
11912
 
11913
END;
11914
/*-------------------------------------------------------------------------------------------------------*/
11915
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
11916
 
11917
BEGIN
11918
 
11919
   UPDATE RELEASE_CONTENT rc SET
11920
   rc.BASE_VIEW_ID = NewViewId
11921
   WHERE rc.PV_ID = PvId
11922
     AND rc.RTAG_ID = RtagId;
11923
 
11924
END;
11925
/*-------------------------------------------------------------------------------------------------------*/
11926
PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 ) IS
11927
 
11928
   RowCount NUMBER;
11929
 
11930
 
11931
   CURSOR curPackageClash IS
11932
   SELECT pkg.PKG_NAME,
11933
         er.*
11934
     FROM (
11935
 
11936
           /* Get existing referenced packages */
11937
         SELECT pv.PKG_ID,
11938
                pv.V_EXT
11939
           FROM RELEASE_LINKS rl,
11940
                 RELEASE_CONTENT rc,
11941
                 PACKAGE_VERSIONS pv
11942
          WHERE rl.RTAG_ID = nRtagId
11943
            AND rl.REF_RTAG_ID = rc.RTAG_ID
11944
            AND rc.PV_ID = pv.PV_ID
11945
 
11946
            ) er,
11947
         (
11948
 
11949
         /* Get current reference packages */
11950
         SELECT pv.PKG_ID,
11951
                pv.V_EXT
11952
           FROM RELEASE_CONTENT rc,
11953
                 PACKAGE_VERSIONS pv
11954
          WHERE rc.RTAG_ID = nRefRtagId
11955
            AND rc.PV_ID = pv.PV_ID
11956
 
11957
         ) cr,
11958
         PACKAGES PKG
11959
    WHERE er.PKG_ID = cr.PKG_ID
11960
      AND NVL(er.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
11961
      AND er.PKG_ID = pkg.PKG_ID;
11962
 
11963
   recPackageClash curPackageClash%ROWTYPE;
11964
 
11965
BEGIN
11966
   /*--------------- Business Rules Here -------------------*/
11967
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
11968
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
11969
   END IF;
11970
 
11971
   IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THEN
11972
      RAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );
11973
   END IF;
11974
   /*-------------------------------------------------------*/
11975
   ProblemString := NULL;
11976
 
11977
 
11978
   -- Check if release already has references
11979
   SELECT COUNT(rl.RTAG_ID)  INTO  RowCount
11980
     FROM RELEASE_LINKS rl
11981
    WHERE rl.RTAG_ID = nRtagId;
11982
 
11983
 
11984
   IF RowCount > 0 THEN
11985
      -- Found existing references
11986
 
11987
      -- Make sure there is no package clashes
11988
      OPEN curPackageClash;
11989
       FETCH curPackageClash INTO recPackageClash;
11990
 
11991
      IF curPackageClash%FOUND THEN
11992
 
5502 dpurdie 11993
         ProblemString := ProblemString ||'Following is partial list of package already referenced from other release:'|| PK_PACKAGE.CRLF;
3959 dpurdie 11994
 
11995
         WHILE curPackageClash%FOUND
11996
         LOOP
5502 dpurdie 11997
            EXIT WHEN LENGTH( ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT  || PK_PACKAGE.CRLF ) > 200;   -- Do not allow variable overflow
3959 dpurdie 11998
 
5502 dpurdie 11999
            ProblemString := ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT  || PK_PACKAGE.CRLF;
3959 dpurdie 12000
 
12001
            FETCH curPackageClash INTO recPackageClash;
12002
         END LOOP;
12003
 
1373 dpurdie 12004
      END IF;
12005
 
3959 dpurdie 12006
      CLOSE curPackageClash;
12007
 
12008
 
12009
   ELSE
12010
      -- No references found, hence reference a release
12011
 
12012
 
12013
      -- Remove exising package from this release to be referenced
12014
      REMOVE_RELEASE_REFERENCE ( nRtagId, nRefRtagId);
12015
 
12016
 
12017
      -- Add new linked packages to release
12018
      INSERT INTO RELEASE_CONTENT rc (RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE)
12019
      SELECT nRtagId,
12020
            rc.PV_ID,
12021
            rc.BASE_VIEW_ID,
12022
            rc.INSERT_STAMP,
12023
            rc.INSERTOR_ID,
12024
            rc.PKG_STATE
12025
        FROM RELEASE_CONTENT rc
12026
       WHERE rc.RTAG_ID = nRefRtagId;
12027
 
12028
 
12029
 
12030
      -- Copy ignore warnings for referenced packages
12031
      INSERT INTO IGNORE_WARNINGS iw (RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE)
12032
      SELECT nRtagId,
12033
            iw.PV_ID,
12034
            iw.DPV_ID,
12035
            iw.IS_PATCH_IGNORE
12036
        FROM IGNORE_WARNINGS iw,
12037
              RELEASE_CONTENT rc
12038
       WHERE iw.RTAG_ID = rc.RTAG_ID
12039
         AND iw.PV_ID = rc.PV_ID
12040
         AND rc.RTAG_ID = nRefRtagId;
12041
 
12042
 
12043
 
12044
      -- Reference release
12045
      INSERT INTO RELEASE_LINKS (RTAG_ID, REF_RTAG_ID)
12046
      VALUES ( nRtagId, nRefRtagId );
12047
 
12048
 
12049
      -- Refresh Package states
12050
      TOUCH_RELEASE ( nRtagId );
12051
 
12052
   END IF;
12053
 
12054
 
12055
END;
1373 dpurdie 12056
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12057
PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER ) IS
1373 dpurdie 12058
 
3959 dpurdie 12059
 
12060
BEGIN
12061
   /*--------------- Business Rules Here -------------------*/
12062
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
12063
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
12064
   END IF;
12065
 
12066
   IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THEN
12067
      RAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );
12068
   END IF;
12069
 
12070
   /*-------------------------------------------------------*/
12071
 
12072
 
12073
   -- Remove ignore warnings for those packages who use referenced packages
12074
   DELETE FROM IGNORE_WARNINGS iw
12075
    WHERE iw.RTAG_ID = nRtagId
12076
      AND iw.DPV_ID IN (
12077
                        SELECT dep.DPV_ID
12078
                       FROM (
12079
 
12080
                           /* Get referenced packages */
12081
                           SELECT pv.PKG_ID,
12082
                                  pv.V_EXT
12083
                             FROM RELEASE_CONTENT rc,
12084
                                   PACKAGE_VERSIONS pv
12085
                            WHERE rc.RTAG_ID = nRefRtagId
12086
                              AND rc.PV_ID = pv.PV_ID
12087
 
12088
                           ) cr,
12089
                           (
12090
 
12091
                           /* Get all dependencies for current release */
12092
                           SELECT DISTINCT
12093
                                 pv.PKG_ID,
12094
                                 pv.V_EXT,
12095
                                 dep.DPV_ID
12096
                             FROM RELEASE_CONTENT rc,
12097
                                 PACKAGE_DEPENDENCIES dep,
12098
                                 PACKAGE_VERSIONS pv
12099
                            WHERE rc.RTAG_ID = nRtagId
12100
                              AND rc.PV_ID = dep.PV_ID
12101
                              AND dep.PV_ID = pv.PV_ID
12102
 
12103
                           ) dep
12104
                      WHERE dep.PKG_ID = cr.PKG_ID
12105
                        AND NVL(dep.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
12106
                     );
12107
 
12108
 
12109
 
12110
 
12111
   -- Remove ignore warnings for those package which are going to be replaced with the reference
12112
   DELETE FROM IGNORE_WARNINGS iw
12113
    WHERE iw.RTAG_ID = nRtagId
12114
      AND iw.PV_ID IN (
12115
                  SELECT pv.PV_ID
12116
                    FROM (
12117
 
12118
                        /* Get referenced packages */
12119
                        SELECT pv.PKG_ID,
12120
                               pv.V_EXT
12121
                          FROM RELEASE_CONTENT rc,
12122
                                PACKAGE_VERSIONS pv
12123
                         WHERE rc.RTAG_ID = nRefRtagId
12124
                           AND rc.PV_ID = pv.PV_ID
12125
 
12126
                        ) cr,
12127
                        RELEASE_CONTENT rc,
12128
                        PACKAGE_VERSIONS pv
12129
                   WHERE pv.PKG_ID = cr.PKG_ID
12130
                     AND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
12131
                     AND rc.RTAG_ID = nRtagId
12132
                     AND rc.PV_ID = pv.PV_ID
12133
                  );
12134
 
12135
 
12136
 
12137
 
12138
 
12139
   -- Remove matching packages from release
12140
   DELETE FROM RELEASE_CONTENT rc
12141
    WHERE rc.RTAG_ID = nRtagId
12142
      AND rc.PV_ID IN (
12143
                  SELECT pv.PV_ID
12144
                    FROM (
12145
 
12146
                        /* Get referenced packages */
12147
                        SELECT pv.PKG_ID,
12148
                               pv.V_EXT
12149
                          FROM RELEASE_CONTENT rc,
12150
                                PACKAGE_VERSIONS pv
12151
                         WHERE rc.RTAG_ID = nRefRtagId
12152
                           AND rc.PV_ID = pv.PV_ID
12153
 
12154
                        ) cr,
12155
                        RELEASE_CONTENT rc,
12156
                        PACKAGE_VERSIONS pv
12157
                   WHERE pv.PKG_ID = cr.PKG_ID
12158
                     AND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
12159
                     AND rc.RTAG_ID = nRtagId
12160
                     AND rc.PV_ID = pv.PV_ID
12161
                  );
12162
 
12163
 
12164
 
12165
 
12166
 
12167
   -- Remove Reference release
12168
   DELETE
12169
     FROM RELEASE_LINKS rl
12170
    WHERE rl.RTAG_ID = nRtagId
12171
      AND rl.REF_RTAG_ID = nRefRtagId;
12172
 
12173
 
12174
   -- Refresh Package states
12175
   TOUCH_RELEASE ( nRtagId );
12176
 
12177
 
12178
END;
12179
/*-------------------------------------------------------------------------------------------------------*/
12180
PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR ) IS
12181
 
12182
   cReleaseMode CHAR(1);
12183
   cPvMode CHAR(1);
12184
 
12185
BEGIN
12186
 
12187
   -- Get Release Mode
12188
   SELECT rt.OFFICIAL INTO cReleaseMode
12189
     FROM RELEASE_TAGS rt
12190
    WHERE rt.RTAG_ID = RtagId;
12191
 
12192
 
12193
   -- Get Package Mode
12194
   SELECT pv.DLOCKED INTO cPvMode
12195
     FROM PACKAGE_VERSIONS pv
12196
    WHERE pv.PV_ID = PvId;
12197
 
12198
   -- Only check if package is locked
12199
   IF (cPvMode = 'Y') THEN
12200
 
12201
      IF (cReleaseMode != 'N') AND (Permission != 'Y')
1373 dpurdie 12202
      THEN
3959 dpurdie 12203
         RAISE_APPLICATION_ERROR (-20000, 'Cannot add package to this release. Release needs to be in Open Mode.' );
12204
 
1373 dpurdie 12205
      END IF;
12206
 
3959 dpurdie 12207
   END IF;
5172 dpurdie 12208
END;
3959 dpurdie 12209
 
5172 dpurdie 12210
/*-----------------------------------------------------------------------------*/
12211
PROCEDURE SET_RELEASE_MODIFIED (nRtagId IN NUMBER ) IS
12212
--
12213
--  Set flags to indicate that the specified release has changed for the
12214
--  purposes of building. (Not every single change)
12215
--
12216
--  Used by Build System to streamline build decisions
12217
--    Bump a sequence number
12218
--    Set a TimeStamp
12219
--
12220
--  Care must be taken to avoid concuency issues
12221
--  Must Insert or Update in a safe manner
12222
--
12223
--  This should be called whenever the package_versions in the release have changed in such
12224
--  a manner that the build daemons should examine the release. This includes:
12225
--   - Packages added, removed and version updated
12226
--   - Packages build status changed (re-included in the release)
12227
--   - Packages made Pending Build
12228
--   - Daemon instruction add/updated (Test Build)
12229
--
12230
--  Note: Not yet used (10-Oct-2014)
12231
--        Uses SEQ_RELEASE_MOD and Table: RELEASE_MODIFIED
12232
BEGIN
12233
 LOOP
12234
  BEGIN
12235
    MERGE INTO RELEASE_MODIFIED USING dual ON ( RTAG_ID=nRtagId )
5502 dpurdie 12236
      WHEN MATCHED THEN UPDATE SET SEQNUM=SEQ_RELEASE_MOD.NEXTVAL,TIMESTAMP=CURRENT_TIMESTAMP
12237
      WHEN NOT MATCHED THEN INSERT (RTAG_ID,TIMESTAMP,SEQNUM)
5172 dpurdie 12238
        VALUES (nRtagId, CURRENT_TIMESTAMP,SEQ_RELEASE_MOD.NEXTVAL );
12239
    EXIT; -- success? -> exit loop
12240
  EXCEPTION
12241
    WHEN NO_DATA_FOUND THEN -- the entry was concurrently deleted
12242
      NULL; -- exception? -> no op, i.e. continue looping
12243
    WHEN DUP_VAL_ON_INDEX THEN -- an entry was concurrently inserted
12244
      NULL; -- exception? -> no op, i.e. continue looping
12245
  END;
12246
 END LOOP;
12247
END;
3959 dpurdie 12248
 
5172 dpurdie 12249
/*-------------------------------------------------------------------------------------------------------*/
12250
--  ADD_RELEASE_SDK
12251
--  ADD an SDK Reference to a Release
12252
--  Args: nRtagId           - RTAG_ID of Release to Process
12253
--        nSdktagId         - SDKTAG_ID of SDK to add to Release
12254
--        nUserId           - User IF of user performing the action
12255
--        bDelete           - Delete conflicting (non sdk) packages from the release 0:False
12256
--        nInsertCount      - Returns: Number of Packages inserted: -1 is an error
12257
--        curReturn         - Returns: On error a table of PV_IDs of packages causing the conflict
12258
--
12259
PROCEDURE ADD_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER, nUserId IN NUMBER, bDelete IN NUMBER, nInsertCount OUT NUMBER, curReturn OUT typeCur )IS
12260
 
12261
  vartbl RELMGR_NUMBER_TAB_T := RELMGR_NUMBER_TAB_T();
12262
  ii NUMBER;
12263
  view_id NUMBER;
12264
 
12265
    -- Detect clashing packages
12266
    -- Packages provided by the SDK that are present in the Release
12267
    CURSOR curPackageClash
12268
    IS
12269
      SELECT release.pvid
12270
      FROM
12271
        -- Alias and pvid from SDK
12272
        (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
12273
          pv.PV_ID                  AS pvid
12274
        FROM SDK_CONTENT sc, PACKAGE_VERSIONS pv
12275
        WHERE sc.SDKTAG_ID  = nSdktagId
12276
        AND sc.SDKPKG_STATE = 'E'
12277
        AND pv.PV_ID        = sc.PV_ID
12278
        ) sdk,
12279
      -- Alias and pvid from Release
12280
      (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
12281
        pv.PV_ID                  AS pvid
12282
      FROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pv
12283
      WHERE rc.rtag_id = nRtagId
12284
      AND rc.PV_ID    = pv.PV_ID
12285
      ) RELEASE
12286
    WHERE sdk.pkgAlias = release.pkgAlias;
5502 dpurdie 12287
 
5172 dpurdie 12288
   -- Detect packages in the release that are provided by the SDK
12289
   -- Do not include packages provided by an SDK - these cannot be replaced
12290
       CURSOR curPackageReplacable
12291
    IS
12292
      SELECT release.pvid
12293
      FROM
12294
        -- Alias and pvid from SDK
12295
        (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
12296
                pv.PV_ID                            AS pvid
12297
        FROM SDK_CONTENT sc, PACKAGE_VERSIONS pv
12298
        WHERE sc.SDKTAG_ID    = nSdktagId
12299
          AND sc.SDKPKG_STATE = 'E'
12300
          AND pv.PV_ID        = sc.PV_ID
12301
        ) sdk,
12302
      -- Alias and pvid from Release
12303
      --  Excluding those import by any SDK
12304
      (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
12305
              pv.PV_ID                            AS pvid
12306
       FROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pv
12307
       WHERE rc.rtag_id = nRtagId
12308
         AND rc.PV_ID   = pv.PV_ID
12309
         AND rc.SDKTAG_ID is NULL
12310
      ) RELEASE
12311
    WHERE sdk.pkgAlias = release.pkgAlias;
12312
 
12313
BEGIN
12314
   /*--------------- Business Rules Here -------------------*/
12315
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
12316
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
12317
   END IF;
12318
 
12319
   IF (nSdktagId = 0) OR ( nSdktagId IS NULL ) THEN
12320
      RAISE_APPLICATION_ERROR (-20000, 'nSdktagId is not supplied. [nSdktagId='|| nSdktagId ||']' );
12321
   END IF;
12322
   /*-------------------------------------------------------*/
5502 dpurdie 12323
 
5172 dpurdie 12324
   -- Delete packages from the release if they are provided by the SDK
5502 dpurdie 12325
   -- provided they are not provided by another SDK
5172 dpurdie 12326
    IF bDelete != 0 THEN
12327
      FOR rdata IN curPackageClash LOOP
12328
        DELETE FROM RELEASE_CONTENT rc
12329
          WHERE rc.RTAG_ID = nRtagId
12330
          AND rc.PV_ID = rdata.pvid;
12331
      END LOOP;
12332
 
12333
      -- Remove exising package from this release to be referenced
12334
      REMOVE_RELEASE_SDK ( nRtagId, nSdktagId);
12335
    END IF;
12336
 
12337
    -- Detect and report package clashes
12338
    -- Packages provided by the SDK that are (still) in the release
12339
    ii := 1;
12340
    FOR rdata IN curPackageClash LOOP
12341
      vartbl.extend;
12342
      --vartbl(ii) := TABLE_PVID(rdata.pvid);
12343
      vartbl(ii) := rdata.pvid;
12344
      ii := ii + 1;
12345
    END LOOP;
12346
    -- Make sure there is no package clashes
5502 dpurdie 12347
 
5172 dpurdie 12348
    IF ii != 1 THEN
12349
      nInsertCount := -1;
12350
      open curReturn for select * from table(vartbl);
12351
      --curReturn := vartbl;
12352
      RETURN;
12353
    END IF;
12354
 
12355
    -- Determine the target view_id
12356
    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 12357
 
5172 dpurdie 12358
    -- Add SDK exported packages to release
12359
    INSERT INTO RELEASE_CONTENT rc (RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE, SDKTAG_ID)
5502 dpurdie 12360
    SELECT nRtagId, sc.PV_ID, view_id, sysdate, nUserId, 11, nSdktagId
5172 dpurdie 12361
        FROM SDK_CONTENT sc
12362
        WHERE sc.SDKTAG_ID = nSdktagId
12363
        AND sc.SDKPKG_STATE = 'E';
12364
    nInsertCount := sql%ROWCOUNT;
12365
 
12366
    -- Refresh Package states
12367
    TOUCH_RELEASE ( nRtagId );
12368
    SET_RELEASE_MODIFIED(nRtagId);
12369
 
3959 dpurdie 12370
END;
12371
 
1373 dpurdie 12372
/*-------------------------------------------------------------------------------------------------------*/
5172 dpurdie 12373
--  Name:   REMOVE_RELEASE_SDK
12374
--  Desc:   Remove an SDK from the specified Release
12375
--          It is not an error to remove an SDK that is not attached to the release
12376
--  Args:   nRtagId         - RTAG_ID of the Release to Process
12377
--          nSdktagId       - SDKTAG_ID to remove
12378
--
12379
PROCEDURE REMOVE_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER ) IS
12380
 
12381
BEGIN
12382
   /*--------------- Business Rules Here -------------------*/
12383
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
12384
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
12385
   END IF;
12386
 
12387
   IF (nSdktagId = 0) OR ( nSdktagId IS NULL ) THEN
12388
      RAISE_APPLICATION_ERROR (-20000, 'nSdktagId is not supplied. [nSdktagId='|| nSdktagId ||']' );
12389
   END IF;
12390
 
12391
   /*-------------------------------------------------------*/
12392
 
12393
   -- Remove matching packages from release
12394
   DELETE FROM RELEASE_CONTENT rc
12395
    WHERE rc.RTAG_ID = nRtagId
12396
      AND rc.SDKTAG_ID = nSdktagId;
12397
 
12398
   -- Refresh Package states
12399
   TOUCH_RELEASE ( nRtagId );
12400
   SET_RELEASE_MODIFIED(nRtagId);
12401
END;
12402
 
12403
--------------------------------------------------------------------------------
12404
--  CAN_ADD_PKG_TO_RELEASE
12405
--  Test if a Package (pvid) can be added to a given release
12406
--  The test will not allwo an exiting package to be replaced IF it is imported via an
12407
--  SDK
12408
--
12409
--  Returns:  0 - Package cannot be replaced
12410
--            1 - Package can be replaced
12411
--            2 - Package will be added
5502 dpurdie 12412
--
5172 dpurdie 12413
FUNCTION CAN_ADD_PKG_TO_RELEASE ( nRtagId IN NUMBER, nPvid in NUMBER ) RETURN NUMBER IS
12414
 
12415
   sAlias VARCHAR2(4000);
5502 dpurdie 12416
 
5172 dpurdie 12417
    -- Find package for proccessing
12418
    -- Use unique constraint of PKG_ID and V_EXT
12419
   CURSOR curReplacePkg IS
12420
    SELECT pv.PV_ID
12421
     FROM RELEASE_CONTENT rc,
12422
           PACKAGE_VERSIONS pv
12423
    WHERE rc.PV_ID = pv.PV_ID
12424
      AND rc.RTAG_ID = nRtagId
12425
      AND pv.PKG_ID || NVL( pv.V_EXT, 'LINK_A_NULL' ) = sAlias;
5502 dpurdie 12426
 
5172 dpurdie 12427
    recReplacePkg curReplacePkg%ROWTYPE;
12428
    nSdkTag NUMBER;
5502 dpurdie 12429
 
5172 dpurdie 12430
BEGIN
12431
   /*--------------- Business Rules Here -------------------*/
12432
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
12433
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
12434
   END IF;
12435
 
12436
   IF (nPvid = 0) OR ( nPvid IS NULL ) THEN
12437
      RAISE_APPLICATION_ERROR (-20000, 'nPvid is not supplied. [nPvid='|| nPvid ||']' );
12438
   END IF;
12439
 
12440
    -- Find pkg Alias for provided package
5502 dpurdie 12441
   SELECT pv.PKG_ID || NVL( pv.V_EXT, 'LINK_A_NULL' )
5172 dpurdie 12442
     INTO sAlias
12443
     FROM PACKAGE_VERSIONS pv
12444
    WHERE pv.PV_ID = nPvid;
12445
 
12446
      -- Find Package that may be replaced
12447
      OPEN curReplacePkg;
12448
       FETCH curReplacePkg INTO recReplacePkg;
12449
 
12450
       IF curReplacePkg%FOUND THEN
12451
        SELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENT
12452
         WHERE rtag_id = nRtagId
12453
         AND pv_id = recReplacePkg.PV_ID;
5502 dpurdie 12454
 
5172 dpurdie 12455
        If nSdkTag IS NOT NULL  THEN
12456
          RETURN 0;
12457
        ELSE
12458
          RETURN 1;
12459
        END IF;
12460
      END IF;
12461
 
12462
  -- No package found, so it can be added
12463
  RETURN 2;
5502 dpurdie 12464
 
5172 dpurdie 12465
  EXCEPTION
12466
  WHEN NO_DATA_FOUND THEN
12467
    RAISE_APPLICATION_ERROR (-20000, 'nPvid is not valid. [nPvid='|| nPvid ||']' );
12468
END;
12469
 
12470
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12471
END PK_RELEASE;
4040 dpurdie 12472
 
3959 dpurdie 12473
/
4040 dpurdie 12474
--------------------------------------------------------
12475
--  DDL for Package Body PK_RMAPI
12476
--------------------------------------------------------
12477
 
5172 dpurdie 12478
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_RMAPI" 
3959 dpurdie 12479
IS
12480
 
12481
   /*-------------------------------------------------------------------------------------------------------*/
12482
   FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)
12483
      RETURN typecur
1373 dpurdie 12484
   IS
3959 dpurdie 12485
      npvid     NUMBER  := 0;
12486
      RECORDS   typecur;
1373 dpurdie 12487
   BEGIN
3959 dpurdie 12488
      BEGIN
12489
         -- Get PV_ID --
12490
         SELECT pv.pv_id
12491
           INTO npvid
12492
           FROM PACKAGES pkg, package_versions pv
12493
          WHERE pv.pkg_id = pkg.pkg_id
12494
            AND pkg.pkg_name = pkgname
12495
            AND pv.pkg_version = pkgversion;
12496
      EXCEPTION
12497
         WHEN NO_DATA_FOUND
12498
         THEN
12499
            raise_application_error (-20000, 'Package Not Found!');
12500
            --WHEN OTHERS THEN
12501
                  -- Consider logging the error and then re-raise
12502
            RAISE;
12503
      END;
1373 dpurdie 12504
 
3959 dpurdie 12505
      -- Finally get package dependencies --
12506
      OPEN RECORDS FOR
12507
         SELECT dpv.pv_id, dpkg.pkg_name, dpv.pkg_version
12508
           FROM package_dependencies dep, PACKAGES dpkg, package_versions dpv
12509
          WHERE dep.pv_id = npvid
12510
            AND dpv.pkg_id = dpkg.pkg_id
12511
            AND dpv.pv_id = dep.dpv_id;
12512
 
12513
      RETURN RECORDS;
1373 dpurdie 12514
   END;
12515
 
12516
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12517
   FUNCTION wip_iteration_package (
12518
      projname        VARCHAR2,
12519
      iterationname   VARCHAR2,
12520
      pkgname         VARCHAR2
1373 dpurdie 12521
   )
3959 dpurdie 12522
      RETURN typecur
1373 dpurdie 12523
   IS
3959 dpurdie 12524
      nrtagid   NUMBER  := 0;
12525
      RECORDS   typecur;
1373 dpurdie 12526
   BEGIN
3959 dpurdie 12527
      BEGIN
12528
         -- Get latest rtag_id --
12529
         SELECT rt.rtag_id
12530
           INTO nrtagid
12531
           FROM projects proj, release_tags rt
12532
          WHERE rt.proj_id = proj.proj_id
12533
            AND UPPER (proj.proj_name) = UPPER (projname)
12534
            AND UPPER (rt.rtag_name) = UPPER (iterationname);
1373 dpurdie 12535
 
3959 dpurdie 12536
         IF (nrtagid IS NULL)
12537
         THEN
12538
            raise_application_error (-20000,
12539
                                     'Work In Progress is Not Found!');
12540
         END IF;
12541
      EXCEPTION
12542
         WHEN NO_DATA_FOUND
12543
         THEN
12544
            raise_application_error (-20000,
12545
                                     'Work In Progress is Not Found!');
12546
            RAISE;
12547
      END;
12548
 
12549
      -- Finally get package dependencies --
12550
      OPEN RECORDS FOR
12551
         SELECT pv.pkg_version, pv.dlocked AS is_official, pv.pkg_label,
12552
                pv.src_path
12553
           FROM PACKAGES pkg, package_versions pv, work_in_progress wip
12554
          WHERE pv.pkg_id = pkg.pkg_id
12555
            AND wip.pv_id = pv.pv_id
12556
            AND wip.rtag_id = nrtagid
12557
            AND pkg.pkg_name = pkgname;
12558
 
12559
      RETURN RECORDS;
1373 dpurdie 12560
   END;
12561
 
12562
/*-------------------------------------------------------------------------------------------------------*/
4553 dpurdie 12563
-- Use:
12564
--   Used by the Automated Build System to release a new package
12565
-- Returns:
12566
--    Use application errors to indicate programming errors
12567
--    Use negative return codes to indicate correctable user problems
12568
--    Positive return code is the new PVID of the package
12569
  FUNCTION auto_make_vcsrelease (
3959 dpurdie 12570
      rtagid                   IN   NUMBER,
12571
      pkgname                  IN   VARCHAR2,
12572
      vext                     IN   VARCHAR2,
12573
      newpkgversion            IN   VARCHAR2,
12574
      vcstag                   IN   VARCHAR2,
12575
      dependenciesimportlist   IN   VARCHAR2,
12576
      isrippled                IN   NUMBER,
12577
      username                 IN   VARCHAR2
12578
   )
1373 dpurdie 12579
      RETURN NUMBER
12580
   IS
3959 dpurdie 12581
      pkgid                           NUMBER;
12582
      pvid                            NUMBER                        := 0;
12583
      userid                          NUMBER;
12584
      dlocked                         VARCHAR2 (20)                 := NULL;
12585
      clonefrompvid                   NUMBER;
12586
      ssv_mm                          package_versions.v_mm%TYPE;
12587
      ssv_nmm                         package_versions.v_nmm%TYPE;
12588
      ssv_ext                         package_versions.v_ext%TYPE;
12589
      return_package_not_found        NUMBER                        := -1;
12590
      return_package_already_exists   NUMBER                        := -2;
12591
      return_not_approved             NUMBER                        := -3;
12592
      return_migrated_pkg             NUMBER                        := -4;
4553 dpurdie 12593
      return_svn_path_changed         NUMBER                        := -5;
1373 dpurdie 12594
 
12595
 
3959 dpurdie 12596
      x_vcstypeid                     NUMBER;
12597
      x_tag                           VARCHAR2(32);
12598
      x_label                         VARCHAR2(60);
12599
      x_srcpath                       VARCHAR2(2000);
12600
      p_srcpath                       VARCHAR2(2000);
1373 dpurdie 12601
 
3959 dpurdie 12602
      -- Regular expression constituents
12603
      Token         VARCHAR2(16) := '([^:]+)';  -- a token is anything except a ':' character
12604
      Seperator     VARCHAR2(4)  := '::';       -- tokens will be seperated by '::'
12605
      BOL           VARCHAR2(4)  := '^';
12606
      Anything      VARCHAR2(4)  := '.*';
12607
      ReplaceToken1 VARCHAR2(4)  := '\1';
12608
      ReplaceToken2 VARCHAR2(4)  := '\2';
12609
      ReplaceToken3 VARCHAR2(4)  := '\3';
12610
      iprev_modifier_id               NUMBER;
12611
 
1373 dpurdie 12612
   BEGIN
3959 dpurdie 12613
      /*--------------- Business Rules Here -------------------*/
12614
      IF (rtagid IS NULL)
12615
      THEN
12616
         raise_application_error (-20000, 'RtagId must be supplied.');
12617
      END IF;
1373 dpurdie 12618
 
3959 dpurdie 12619
      IF (pkgname IS NULL)
12620
      THEN
12621
         raise_application_error (-20000, 'PkgName must be supplied.');
12622
      END IF;
1373 dpurdie 12623
 
3959 dpurdie 12624
      IF (newpkgversion IS NULL)
1373 dpurdie 12625
      THEN
3959 dpurdie 12626
         raise_application_error (-20000, 'PkgVersion must be supplied.');
1373 dpurdie 12627
      END IF;
12628
 
3959 dpurdie 12629
      IF (vcstag IS NULL)
1373 dpurdie 12630
      THEN
3959 dpurdie 12631
         raise_application_error (-20000, 'PkgVcsTag must be supplied.');
1373 dpurdie 12632
      END IF;
12633
 
3959 dpurdie 12634
      IF (isrippled IS NULL) OR (isrippled < 0) OR (isrippled > 1)
1373 dpurdie 12635
      THEN
4553 dpurdie 12636
         raise_application_error (-20000, 'IsRippled must be set to 1 (Is rippled build) or 0 (Is planned build).');
1373 dpurdie 12637
      END IF;
12638
 
3959 dpurdie 12639
      IF (username IS NULL)
1373 dpurdie 12640
      THEN
3959 dpurdie 12641
         raise_application_error (-20000, 'UserName must be supplied.');
1373 dpurdie 12642
      END IF;
12643
 
3959 dpurdie 12644
      -- Parse the PkgVcsTag
12645
      -- Sets up
12646
      --   x_tag, x_label, x_srcpath
1373 dpurdie 12647
 
3959 dpurdie 12648
       BEGIN
12649
          -- Extract the first token - this will be the short tag name for the VCS (eg. 'CC', 'SVN', etc)
12650
          x_tag := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Anything, ReplaceToken1);
1373 dpurdie 12651
 
3959 dpurdie 12652
          -- Decode the short tag
12653
          CASE x_tag
12654
             WHEN 'CC' THEN
12655
                -- extract the 2nd and 3rd tokens, those being the source path and label respectively
12656
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
12657
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
1373 dpurdie 12658
 
3959 dpurdie 12659
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
12660
                -- check for that error as well as the obvious zero-length string conditions.
12661
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
12662
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
12663
                END IF;
12664
 
12665
                IF isSVNbyName(pkgname) > 0 THEN
12666
                    -- Don't allow migrated packages to be released from a CC label
12667
                    return return_migrated_pkg;
12668
                END IF;
1373 dpurdie 12669
 
12670
 
3959 dpurdie 12671
             WHEN 'SVN' THEN
12672
                -- extract the 2nd token, that being the subversion tag
12673
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
12674
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
1373 dpurdie 12675
 
3959 dpurdie 12676
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
12677
                -- check for that error as well as the obvious zero-length string conditions.
12678
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
12679
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
12680
                END IF;
12681
 
12682
             WHEN 'UC' THEN
12683
                -- nothing to extract, just assign defaults
12684
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
12685
                x_label   := 'N/A';
12686
             ELSE
12687
                raise_application_error (-20000, 'Unrecognised VCS Tag!');
12688
          END CASE;
12689
       END;
12690
 
12691
      -- Get the VCS_TYPE_ID for the version control system.
12692
      BEGIN
12693
         SELECT vt.vcs_type_id
12694
         INTO x_vcstypeid
12695
         FROM VCS_TYPE vt
12696
         WHERE vt.tag = x_tag;
12697
         EXCEPTION
12698
            WHEN NO_DATA_FOUND THEN
12699
               raise_application_error (-20000, 'Database is missing a version control system tag (' || x_tag || ')!' );
12700
      END;
12701
 
12702
 
12703
      -- Get user_id
12704
      BEGIN
12705
         SELECT usr.user_id
12706
           INTO userid
12707
           FROM users usr
12708
          WHERE UPPER (usr.user_name) = UPPER (username)
12709
            AND usr.is_disabled IS NULL;
12710
      EXCEPTION
12711
         WHEN NO_DATA_FOUND
1373 dpurdie 12712
         THEN
4585 dpurdie 12713
            raise_application_error (-20000, 'UserName: ' || username || ' is not valid or disabled.' );
3959 dpurdie 12714
      END;
1373 dpurdie 12715
 
3959 dpurdie 12716
/*-------------------------------------------------------*/
1373 dpurdie 12717
 
3959 dpurdie 12718
      -- Create package if necessary
12719
      IF isrippled = 1
1373 dpurdie 12720
      THEN
3959 dpurdie 12721
         /* Ripple Build */
12722
         BEGIN
12723
            -- Make sure that package does not exist
12724
            SELECT pv.pv_id
12725
              INTO pvid
12726
              FROM package_versions pv, PACKAGES pkg
12727
             WHERE pv.pkg_id = pkg.pkg_id
12728
               AND pkg.pkg_name = pkgname
12729
               AND pv.pkg_version = newpkgversion;
12730
         EXCEPTION
12731
            WHEN NO_DATA_FOUND
12732
            THEN
12733
               pvid := 0;
12734
         END;
12735
 
12736
         IF (pvid = 0)
1373 dpurdie 12737
         THEN
3959 dpurdie 12738
            -- Split current version in parts
12739
            split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
12740
 
12741
            BEGIN
12742
               -- Find package to be replaced with the ripple package
12743
               IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
12744
               THEN
12745
                  SELECT pv.pv_id, pv.src_path
12746
                    INTO clonefrompvid, p_srcpath
12747
                    FROM PACKAGES pkg, package_versions pv,
12748
                         release_content rc
12749
                   WHERE rc.pv_id = pv.pv_id
12750
                     AND pv.pkg_id = pkg.pkg_id
12751
                     AND rc.rtag_id = rtagid
12752
                     AND pkg.pkg_name = pkgname
12753
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|');
12754
               ELSE
12755
                  SELECT pv.pv_id, pv.src_path
12756
                    INTO clonefrompvid, p_srcpath
12757
                    FROM PACKAGES pkg, package_versions pv,
12758
                         release_content rc
12759
                   WHERE rc.pv_id = pv.pv_id
12760
                     AND pv.pkg_id = pkg.pkg_id
12761
                     AND rc.rtag_id = rtagid
12762
                     AND pkg.pkg_name = pkgname
12763
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
12764
               END IF;
12765
            EXCEPTION
12766
               WHEN NO_DATA_FOUND
12767
               THEN
12768
                  raise_application_error
12769
                                        (-20000,
12770
                                            'Cannot get CloneFromPvId. VExt='
12771
                                         || vext
12772
                                         || ', RtagId='
12773
                                         || rtagid
12774
                                         || ', PkgName='
12775
                                         || pkgname
12776
                                         || ', SSV_EXT='
12777
                                         || ssv_ext
12778
                                        );
12779
            END;
12780
 
12781
            IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
12782
            THEN
12783
               -- Create package
12784
               seed_package_names_versions (pkgname,
12785
                                            newpkgversion,
12786
                                            userid,
12787
                                            pvid,
12788
                                            clonefrompvid
12789
                                           );
12790
            ELSE
4585 dpurdie 12791
               -- Create package (now both the same)
12792
               seed_package_names_versions (pkgname,
3959 dpurdie 12793
                                             newpkgversion,
12794
                                             userid,
12795
                                             pvid,
12796
                                             clonefrompvid
12797
                                            );
12798
            END IF;
12799
 
12800
            -- Update Package reason for release
12801
            UPDATE package_versions pv
12802
               SET pv.comments = 'Rippled Build.',
12803
                   pv.build_type = 'Y'
12804
             WHERE pv.pv_id = pvid;
12805
         ELSE
12806
            -- Package already exists, it was built previously, and has just been re-built again probably due to the
12807
            -- fact that the archive was cleaned of the original build artifacts at some point, and those artifacts
12808
            -- are now needed once more. As such, we need to ensure that a new release note generation occurs so
12809
            -- reset the package_versions[pvid].release_notes_info field to enable that to happen.
12810
            UPDATE package_versions pv
12811
               SET pv.release_notes_info = null,
12812
                   pv.modified_stamp = ora_sysdatetime
12813
             WHERE pv.pv_id = pvid;
12814
 
12815
            --DEVI-066151
12816
            log_action (pvid, 'package_rebuilt', userid, 'Package Re-built...');
12817
 
12818
            RETURN return_package_already_exists;
1373 dpurdie 12819
         END IF;
12820
      ELSE
3959 dpurdie 12821
         /* Auto build from Pending area */
12822
 
12823
         -- Find package in pending area
12824
         BEGIN
12825
            SELECT pv.pv_id, pv.dlocked, pv.src_path
12826
              INTO pvid, dlocked, p_srcpath
12827
              FROM planned pl, package_versions pv, PACKAGES pkg
12828
             WHERE pl.pv_id = pv.pv_id
12829
               AND pv.pkg_id = pkg.pkg_id
12830
               AND pl.rtag_id = rtagid
12831
               AND pkg.pkg_name = pkgname
12832
               AND pv.dlocked = 'A'
12833
               AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|')
12834
               AND rownum = 1
12835
             ORDER BY pv.modified_stamp;
12836
         EXCEPTION
12837
            WHEN NO_DATA_FOUND
12838
            THEN
12839
               pvid := 0;
12840
         END;
12841
 
12842
         IF (pvid = 0)
1373 dpurdie 12843
         THEN
3959 dpurdie 12844
            -- Package does not exist in pending area, hence report it
12845
            RETURN return_package_not_found;
12846
         ELSIF (dlocked != 'A')
1373 dpurdie 12847
         THEN
3959 dpurdie 12848
            -- Package is not approved for autobuild
12849
            RETURN return_not_approved;
1373 dpurdie 12850
         END IF;
12851
 
12852
      END IF;
12853
 
3959 dpurdie 12854
      -- Ensure Source Path does not change
12855
      -- Do not expect the SVN development branch to change
12856
      -- From the previous package
12857
      IF ( x_tag = 'SVN' AND p_srcpath != x_srcpath )
1373 dpurdie 12858
      THEN
4553 dpurdie 12859
        return return_svn_path_changed;
1373 dpurdie 12860
      END IF;
12861
 
3959 dpurdie 12862
      BEGIN
12863
         -- Import Dependencies
12864
         import_dependencies (pvid, dependenciesimportlist, userid);
12865
      END;
1373 dpurdie 12866
 
12867
 
3959 dpurdie 12868
      BEGIN
12869
         -- Split current version in parts
12870
         split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
1373 dpurdie 12871
 
3959 dpurdie 12872
         -- Update Package Details
12873
         UPDATE package_versions pv
12874
            SET pv.pkg_version = newpkgversion,
12875
                pv.v_ext = ssv_ext,
12876
                pv.v_mm = ssv_mm,
12877
                pv.v_nmm = ssv_nmm,
12878
                pv.src_path = x_srcpath,
12879
                pv.pkg_label = x_label,
12880
                pv.vcs_type_id = x_vcstypeid
12881
          WHERE pv.pv_id = pvid;
12882
      EXCEPTION
12883
         WHEN DUP_VAL_ON_INDEX
12884
         THEN
12885
            -- Package already exists, hence cannot be used for ripple build
12886
            RETURN return_package_already_exists;
12887
      END;
12888
 
12889
      -- Update the is_autobuildable
12890
      UPDATE package_versions
12891
         SET is_autobuildable = 'Y'
12892
       WHERE pv_id = pvid;
12893
 
12894
      -- DEVI-063601
12895
      -- For planned builds the modifier_id shouldn't be set to buildadm.
12896
      -- To ensure this the modifier_id is obtained so it can be restored after
12897
      -- the function pk_environment.auto_make_release is called.
12898
      -- This function calls, change_state, which sets the modifier_id to the
12899
      -- specified userid, which for auto builds is buildadm.
12900
      SELECT pv.modifier_id INTO iprev_modifier_id
12901
      FROM package_versions pv WHERE pv.pv_id = pvid;
12902
 
12903
      -- Now release package
12904
      pk_environment.auto_make_release (pvid,
12905
                                        rtagid,
12906
                                        userid,
12907
                                        vext,
12908
                                        ssv_ext,
12909
                                        clonefrompvid
12910
                                       );
12911
 
12912
      -- DEVI-063601
12913
      -- if it is a planned build then restore the modifier_id to the previous modifier
12914
      UPDATE package_versions pv SET pv.modifier_id = iprev_modifier_id
12915
      WHERE pv.pv_id = pvid;
12916
 
12917
      --Now clean the PLANNED_VERSIONS table
12918
      SELECT pkg_id
12919
        INTO pkgid
12920
        FROM PACKAGES
12921
       WHERE pkg_name = pkgname;
12922
 
12923
      DELETE FROM planned_versions
12924
            WHERE pkg_id = pkgid AND pkg_version = newpkgversion;
12925
 
12926
      RETURN pvid;
1373 dpurdie 12927
   END;
12928
 
12929
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12930
   PROCEDURE import_dependencies (
12931
      pvid                     IN   NUMBER,
12932
      dependenciesimportlist   IN   VARCHAR2,
12933
      userid                   IN   NUMBER
12934
   )
1373 dpurdie 12935
   IS
3959 dpurdie 12936
/*
12937
|| DependenciesImportList Format:
12938
|| "pkgA","1.0.0";"pkgB","2.0.0";
12939
||  OR 'pkgA','1.0.0';'pkgB','2.0.0';
12940
*/
12941
      TYPE tdictionary IS TABLE OF VARCHAR2 (4000)
12942
         INDEX BY VARCHAR2 (4000);
12943
 
12944
      seperator         VARCHAR2 (2)           := '||';
12945
      pkgname           VARCHAR2 (4000);
12946
      pkgversion        VARCHAR2 (4000);
12947
      buildtype         VARCHAR2 (50);
12948
      pkgid             NUMBER;
12949
      vext              VARCHAR2 (4000);
12950
      dpvid             NUMBER;
12951
      slist             VARCHAR2 (4000);
12952
      cbuildtypes       tdictionary;
12953
      dependencyrow     NUMBER;
12954
      sdependency       VARCHAR2 (4000);
12955
      first_pos         VARCHAR2 (4000);
12956
      second_pos        VARCHAR2 (4000);
12957
      third_pos         VARCHAR2 (4000);
12958
      forth_pos         VARCHAR2 (4000);
12959
      citemcollection   relmgr_varchar2_tab_t  := relmgr_varchar2_tab_t ();
12960
 
12961
      CURSOR curbuildtype
12962
      IS
12963
         SELECT dpv.pkg_id || seperator || dpv.v_ext AS pkgid_ext,
12964
                dep.build_type
12965
           FROM package_dependencies dep, package_versions dpv
12966
          WHERE dep.pv_id = pvid AND dep.dpv_id = dpv.pv_id;
12967
 
12968
      recbuildtype      curbuildtype%ROWTYPE;
1373 dpurdie 12969
   BEGIN
3959 dpurdie 12970
      slist := dependenciesimportlist;
1373 dpurdie 12971
 
3959 dpurdie 12972
      -- Preformat String
12973
      IF NOT slist IS NULL
1373 dpurdie 12974
      THEN
3959 dpurdie 12975
         slist := REPLACE (slist, ' ');                      -- Remove spaces
12976
         slist := REPLACE (slist, UTL_TCP.crlf);
12977
         -- Remove new line and carriage-return characters
12978
         slist := REPLACE (slist, '''', '"');             -- Replace ' with "
1373 dpurdie 12979
      END IF;
12980
 
3959 dpurdie 12981
      -- Get Current Dependencies
12982
      OPEN curbuildtype;
1373 dpurdie 12983
 
3959 dpurdie 12984
      FETCH curbuildtype
12985
       INTO recbuildtype;
1373 dpurdie 12986
 
3959 dpurdie 12987
      WHILE curbuildtype%FOUND
12988
      LOOP
12989
         cbuildtypes (recbuildtype.pkgid_ext) := recbuildtype.build_type;
1373 dpurdie 12990
 
3959 dpurdie 12991
         FETCH curbuildtype
12992
          INTO recbuildtype;
12993
      END LOOP;
1373 dpurdie 12994
 
3959 dpurdie 12995
      CLOSE curbuildtype;
1373 dpurdie 12996
 
3959 dpurdie 12997
      -- Separate dependencies with ; separator
12998
      citemcollection := in_list_varchar2 (slist, ';');
1373 dpurdie 12999
 
3959 dpurdie 13000
      BEGIN
13001
         -- Remove old dependencies
13002
         DELETE FROM package_dependencies dep
13003
               WHERE dep.pv_id = pvid;
1373 dpurdie 13004
 
3959 dpurdie 13005
         -- Loop through dependencies
13006
         FOR dependencyrow IN 1 .. citemcollection.COUNT
13007
         LOOP
13008
            -- Extract pkg_name and pkg_version
13009
            sdependency := citemcollection (dependencyrow);
13010
            first_pos := INSTR (sdependency, '"', 1, 1);
13011
            second_pos := INSTR (sdependency, '"', 1, 2);
13012
            third_pos := INSTR (sdependency, '"', 1, 3);
13013
            forth_pos := INSTR (sdependency, '"', 1, 4);
13014
            pkgname :=
13015
               SUBSTR (sdependency,
13016
                       (first_pos + 1),
13017
                       (second_pos - first_pos - 1)
13018
                      );
13019
            pkgversion :=
13020
               SUBSTR (sdependency,
13021
                       (third_pos + 1),
13022
                       (forth_pos - third_pos - 1)
13023
                      );
13024
 
13025
            -- Dependency must exits to be linked against
13026
            BEGIN
13027
               SELECT pv.pv_id, pv.pkg_id, pv.v_ext
13028
                 INTO dpvid, pkgid, vext
13029
                 FROM package_versions pv, PACKAGES pkg
13030
                WHERE pv.pkg_id = pkg.pkg_id
13031
                  AND pkg.pkg_name = pkgname
13032
                  AND pv.pkg_version = pkgversion;
13033
            EXCEPTION
13034
               WHEN NO_DATA_FOUND
13035
               THEN
13036
                  raise_application_error
13037
                                  (-20000,
13038
                                      'Dependency ['
13039
                                   || pkgname
13040
                                   || ' '
13041
                                   || pkgversion
13042
                                   || '] does not exist yet and cannot be used!'
13043
                                  );
13044
            END;
13045
 
13046
            -- Get Build Type (i.e. BuildPackageArchive or LinkPackageArchive)
13047
            BEGIN
13048
               buildtype := cbuildtypes (pkgid || seperator || vext);
13049
 
13050
               IF buildtype IS NULL
13051
               THEN
13052
                  -- Set build type to LinkPackageArchive by default
13053
                  buildtype := 'L';
13054
               END IF;
13055
            EXCEPTION
13056
               WHEN NO_DATA_FOUND
13057
               THEN
13058
                  buildtype := 'L';
13059
            END;
13060
 
13061
            -- Insert Dependencies
13062
            update_package_dependency (pvid,
13063
                                       pkgname,
13064
                                       pkgversion,
13065
                                       buildtype,
13066
                                       userid,
13067
 
13068
                                      );
13069
         END LOOP;
13070
      END;
1373 dpurdie 13071
   END;
13072
 
13073
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13074
   FUNCTION return_last_package_version (pkgname IN VARCHAR2, rtagid IN NUMBER)
13075
      RETURN VARCHAR2
1373 dpurdie 13076
   IS
3959 dpurdie 13077
      pkgversion   VARCHAR2 (4000);
1373 dpurdie 13078
   BEGIN
3959 dpurdie 13079
      BEGIN
13080
         SELECT pv.pkg_version
13081
           INTO pkgversion
13082
           FROM PACKAGES pkg, release_content rc, package_versions pv
13083
          WHERE pv.pv_id = rc.pv_id
13084
            AND pkg.pkg_id = pv.pkg_id
13085
            AND pkg.pkg_name = pkgname
13086
            AND rc.rtag_id = rtagid;
13087
 
13088
         RETURN pkgversion;
13089
      END;
1373 dpurdie 13090
   END;
13091
 
13092
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13093
   FUNCTION return_wip (pkgname IN VARCHAR2, rtagid IN NUMBER)
13094
      RETURN VARCHAR2
1373 dpurdie 13095
   IS
3959 dpurdie 13096
      pkgversion   VARCHAR2 (4000);
1373 dpurdie 13097
   BEGIN
3959 dpurdie 13098
      BEGIN
13099
         SELECT pv.pkg_version
13100
           INTO pkgversion
13101
           FROM PACKAGES pkg, work_in_progress wip, package_versions pv
13102
          WHERE pv.pv_id = wip.pv_id
13103
            AND pkg.pkg_id = pv.pkg_id
13104
            AND pkg.pkg_name = pkgname
13105
            AND wip.rtag_id = rtagid;
1373 dpurdie 13106
 
3959 dpurdie 13107
         IF pkgversion IS NULL
13108
         THEN
13109
            SELECT pv.pkg_version
13110
              INTO pkgversion
13111
              FROM PACKAGES pkg, planned pl, package_versions pv
13112
             WHERE pv.pv_id = pl.pv_id
13113
               AND pkg.pkg_id = pv.pkg_id
13114
               AND pkg.pkg_name = pkgname
13115
               AND pl.rtag_id = rtagid;
13116
         END IF;
13117
 
13118
         RETURN pkgversion;
13119
      END;
1373 dpurdie 13120
   END;
13121
 
13122
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13123
   PROCEDURE update_dash_board (rtagid IN NUMBER)
1373 dpurdie 13124
   IS
3959 dpurdie 13125
      projid       NUMBER;
13126
      projiddb     NUMBER;
13127
      total        NUMBER;
13128
      auto_total   NUMBER;
13129
      rtagiddb     NUMBER;
1373 dpurdie 13130
   BEGIN
3959 dpurdie 13131
      SELECT COUNT (*)
13132
        INTO total
13133
        FROM release_content rc, package_versions pv
13134
       WHERE pv.pv_id = rc.pv_id AND rc.rtag_id = rtagid;
1373 dpurdie 13135
 
3959 dpurdie 13136
      SELECT COUNT (*)
13137
        INTO auto_total
13138
        FROM release_content rc, package_versions pv
13139
       WHERE pv.pv_id = rc.pv_id
13140
         AND pv.is_autobuildable = 'Y'
13141
         AND rc.rtag_id = rtagid;
13142
 
13143
      BEGIN
13144
         SELECT rtag_id
13145
           INTO rtagiddb
13146
           FROM dash_board
13147
          WHERE rtag_id = rtagid;
13148
 
13149
         SELECT proj_id
13150
           INTO projiddb
13151
           FROM dash_board
13152
          WHERE rtag_id = rtagid;
13153
      EXCEPTION
13154
         WHEN NO_DATA_FOUND
13155
         THEN
13156
            rtagiddb := '';
13157
      END;
13158
 
13159
      IF rtagiddb IS NULL
1373 dpurdie 13160
      THEN
3959 dpurdie 13161
         SELECT proj_id
13162
           INTO projid
13163
           FROM release_tags
13164
          WHERE rtag_id = rtagid;
13165
 
13166
         INSERT INTO dash_board
13167
                     (proj_id, rtag_id, last_build_time, automated_packages,
13168
                      total_packages
13169
                     )
13170
              VALUES (projid, rtagid, ora_sysdatetime, auto_total,
13171
                      total
13172
                     );
13173
      ELSE
13174
         UPDATE dash_board
13175
            SET last_build_time = ora_sysdatetime,
13176
                automated_packages = auto_total,
13177
                total_packages = total
13178
          WHERE proj_id = projiddb AND rtag_id = rtagiddb;
1373 dpurdie 13179
      END IF;
13180
   END;
13181
 
13182
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13183
   FUNCTION exclude_from_build (
13184
      pvid          IN   NUMBER,
13185
      spkgversion   IN   VARCHAR2,
13186
      rtagid        IN   NUMBER,
13187
      username      IN   VARCHAR2
1373 dpurdie 13188
   )
3959 dpurdie 13189
      RETURN NUMBER
1373 dpurdie 13190
   IS
3959 dpurdie 13191
      userid              NUMBER;
13192
      outerrcode          NUMBER;
13193
      pkgid               NUMBER;
13194
 
13195
      CURSOR dnr_duplicate_cur
13196
      IS
13197
         SELECT *
13198
           FROM do_not_ripple
13199
          WHERE pv_id = pvid AND rtag_id = rtagid;
13200
 
13201
      dnr_duplicate_rec   dnr_duplicate_cur%ROWTYPE;
1373 dpurdie 13202
   BEGIN
3959 dpurdie 13203
      outerrcode := -1;       -- Set default return error code to ERROR state
13204
 
13205
      /*--------------- Business Rules Here -------------------*/
13206
      IF (rtagid IS NULL)
1373 dpurdie 13207
      THEN
3959 dpurdie 13208
         RETURN outerrcode;
13209
--         raise_application_error (-20000, 'RtagId must be supplied.');
13210
      END IF;
13211
 
13212
      IF (pvid IS NULL)
1373 dpurdie 13213
      THEN
3959 dpurdie 13214
         RETURN outerrcode;
13215
--         raise_application_error (-20000, 'PvId must be supplied.');
13216
      END IF;
13217
 
13218
      IF (username IS NULL)
1373 dpurdie 13219
      THEN
3959 dpurdie 13220
         RETURN outerrcode;
13221
--         raise_application_error (-20000, 'UserName must be supplied.');
13222
      END IF;
13223
 
13224
      -- Get user_id
13225
      BEGIN
13226
         SELECT usr.user_id
13227
           INTO userid
13228
           FROM users usr
13229
          WHERE UPPER (usr.user_name) = UPPER (username)
13230
            AND usr.is_disabled IS NULL;
13231
      EXCEPTION
13232
         WHEN NO_DATA_FOUND
13233
         THEN
13234
            RETURN outerrcode;
13235
--            raise_application_error (-20000,
13236
--                                        'UserName '
13237
--                                     || username
13238
--                                     || ' is not valid or disabled.'
13239
--                                    );
13240
      END;
13241
 
13242
      OPEN dnr_duplicate_cur;
13243
 
13244
      FETCH dnr_duplicate_cur
13245
       INTO dnr_duplicate_rec;
13246
 
13247
      IF dnr_duplicate_cur%FOUND
1373 dpurdie 13248
      THEN
3959 dpurdie 13249
         outerrcode := 0;
1373 dpurdie 13250
      END IF;
3959 dpurdie 13251
 
13252
      IF dnr_duplicate_cur%NOTFOUND
13253
      THEN
13254
         /* No duplicate recordset */
13255
         unripple_package (pvid, rtagid, userid);
13256
         outerrcode := 0;                            -- Set return to SUCCESS
13257
      END IF;
13258
 
13259
      CLOSE dnr_duplicate_cur;
13260
 
13261
      SELECT pkg_id
13262
        INTO pkgid
13263
        FROM package_versions
13264
       WHERE pv_id = pvid;
13265
 
13266
      DELETE FROM planned_versions
13267
            WHERE pkg_id = pkgid AND pkg_version = spkgversion;
13268
 
13269
      RETURN outerrcode;
1373 dpurdie 13270
   END;
13271
 
13272
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13273
   FUNCTION exclude_indirect_from_build (
13274
      pvid          IN   NUMBER,
13275
      spkgversion   IN   VARCHAR2,
13276
      rtagid        IN   NUMBER,
13277
      username      IN   VARCHAR2,
13278
      rootpvid      IN   NUMBER,
13279
      rootcause     IN   VARCHAR2,
13280
      rootfile      IN   VARCHAR2
1373 dpurdie 13281
   )
3959 dpurdie 13282
      RETURN NUMBER
1373 dpurdie 13283
   IS
3959 dpurdie 13284
      userid              NUMBER;
13285
      outerrcode          NUMBER;
13286
      pkgid               NUMBER;
13287
 
13288
      CURSOR dnr_duplicate_cur
13289
      IS
13290
         SELECT *
13291
           FROM do_not_ripple
13292
          WHERE pv_id = pvid AND rtag_id = rtagid;
13293
 
13294
      dnr_duplicate_rec   dnr_duplicate_cur%ROWTYPE;
1373 dpurdie 13295
   BEGIN
3959 dpurdie 13296
      outerrcode := -1;       -- Set default return error code to ERROR state
13297
 
13298
      /*--------------- Business Rules Here -------------------*/
13299
      IF (rtagid IS NULL)
1373 dpurdie 13300
      THEN
3959 dpurdie 13301
         RETURN outerrcode;
13302
--         raise_application_error (-20000, 'RtagId must be supplied.');
13303
      END IF;
13304
 
13305
      IF (pvid IS NULL)
1373 dpurdie 13306
      THEN
3959 dpurdie 13307
         RETURN outerrcode;
13308
--         raise_application_error (-20000, 'PvId must be supplied.');
13309
      END IF;
13310
 
13311
      IF (username IS NULL)
1373 dpurdie 13312
      THEN
3959 dpurdie 13313
         RETURN outerrcode;
13314
--         raise_application_error (-20000, 'UserName must be supplied.');
1373 dpurdie 13315
      END IF;
3959 dpurdie 13316
 
13317
      -- Get user_id
13318
      BEGIN
13319
         SELECT usr.user_id
13320
           INTO userid
13321
           FROM users usr
13322
          WHERE UPPER (usr.user_name) = UPPER (username)
13323
            AND usr.is_disabled IS NULL;
13324
      EXCEPTION
13325
         WHEN NO_DATA_FOUND
13326
         THEN
13327
            RETURN outerrcode;
13328
--            raise_application_error (-20000,
13329
--                                        'UserName '
13330
--                                     || username
13331
--                                     || ' is not valid or disabled.'
13332
--                                    );
13333
      END;
13334
 
13335
     /* No duplicate recordset */
13336
     unripple_package_indirect (pvid, rtagid, userid, rootpvid, rootcause, rootfile);
13337
     outerrcode := 0;                            -- Set return to SUCCESS
13338
 
13339
      SELECT pkg_id
13340
        INTO pkgid
13341
        FROM package_versions
13342
       WHERE pv_id = pvid;
13343
 
13344
      DELETE FROM planned_versions
13345
            WHERE pkg_id = pkgid AND pkg_version = spkgversion;
13346
 
13347
      RETURN outerrcode;
1373 dpurdie 13348
   END;
13349
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13350
   PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2)
1373 dpurdie 13351
   IS
13352
   BEGIN
3959 dpurdie 13353
      INSERT INTO abt_action_log
13354
                  (rcon_id, action_datetime, action
13355
                  )
13356
           VALUES (rconid, ora_sysdatetime, action
13357
                  );
1373 dpurdie 13358
   END;
13359
 
13360
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13361
   FUNCTION insert_package_metrics (
13362
      rtagid                   IN   NUMBER,
13363
      pkgname                  IN   VARCHAR2,
13364
      vext                     IN   VARCHAR2,
13365
      metricstring             IN   VARCHAR2
1373 dpurdie 13366
   )
3959 dpurdie 13367
      RETURN NUMBER
1373 dpurdie 13368
   IS
3959 dpurdie 13369
      citemcollection          relmgr_varchar2_tab_t  := relmgr_varchar2_tab_t ();
13370
      lv_pvid                  NUMBER                 := 0;
13371
      rownumber                NUMBER;
13372
      rowcontent               VARCHAR2(4000);
13373
      metricname               VARCHAR2(1000);
13374
      metricvalue              VARCHAR2(4000);
13375
      return_insert_error      NUMBER                 := -1;
13376
      return_insert_success    NUMBER                 := 0;
13377
 
13378
      /* Metrics */
13379
      lv_branches                 NUMBER;
13380
      lv_branchlist               VARCHAR2(4000);
13381
      lv_codefiles                NUMBER;
13382
      lv_ignoredfiles             NUMBER;
13383
      lv_directories              NUMBER;
13384
      lv_directorydepth           NUMBER;
13385
      lv_totalfiles               NUMBER;
13386
      lv_makefiles                NUMBER;
13387
      lv_blanklines               NUMBER;
13388
      lv_codelines                NUMBER;
13389
      lv_commentlines             NUMBER;
13390
 
1373 dpurdie 13391
   BEGIN
3959 dpurdie 13392
      /*--------------- Business Rules Here -------------------*/
13393
      IF (rtagid IS NULL)
13394
      THEN
13395
         RETURN return_insert_error;
13396
      END IF;
1373 dpurdie 13397
 
3959 dpurdie 13398
      IF (pkgname IS NULL)
13399
      THEN
13400
         RETURN return_insert_error;
13401
      END IF;
13402
 
13403
      IF (metricstring IS NULL)
13404
      THEN
13405
         RETURN return_insert_error;
13406
      END IF;
13407
 
13408
      BEGIN
13409
         SELECT pv.pv_id
13410
           INTO lv_pvid
13411
           FROM package_versions pv, packages pkg, release_content rc
13412
          WHERE pv.pkg_id = pkg.pkg_id
13413
            AND rc.rtag_id = rtagid
13414
            AND pv.pv_id = rc.pv_id
13415
            AND pkg.pkg_name = pkgname
13416
            AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
13417
      EXCEPTION
13418
           WHEN NO_DATA_FOUND
13419
           THEN
13420
                lv_pvid := 0;
13421
      END;
13422
 
13423
      citemcollection := in_list_varchar2 (metricstring, ';');
13424
 
13425
      FOR rownumber IN 1 .. citemcollection.COUNT
13426
      LOOP
13427
         rowcontent := citemcollection(rownumber);
13428
         metricvalue := SUBSTR(rowcontent, (INSTR(rowcontent, '=') + 1));
13429
         metricname := REGEXP_REPLACE(rowcontent, '=.*$', '');
13430
 
13431
         IF    metricname = 'ccbranch.count' THEN lv_branches := metricvalue;
13432
         ELSIF metricname = 'ccbranch.list' THEN lv_branchlist := metricvalue;
13433
         ELSIF metricname = 'code.files' THEN lv_codefiles := metricvalue;
13434
         ELSIF metricname = 'code.ignored' THEN lv_ignoredfiles := metricvalue;
13435
         ELSIF metricname = 'count.dir' THEN lv_directories := metricvalue;
13436
         ELSIF metricname = 'count.dirdepth' THEN lv_directorydepth := metricvalue;
13437
         ELSIF metricname = 'count.file' THEN lv_totalfiles := metricvalue;
13438
         ELSIF metricname = 'count.makefile' THEN lv_makefiles := metricvalue;
13439
         ELSIF metricname = 'lines.blank' THEN lv_blanklines := metricvalue;
13440
         ELSIF metricname = 'lines.code' THEN lv_codelines := metricvalue;
13441
         ELSIF metricname = 'lines.comment' THEN lv_commentlines := metricvalue;
13442
         END IF;
13443
      END LOOP;
13444
 
13445
      IF (lv_pvid > 0)
13446
      THEN
13447
         -- Delete any existing entries for this package version to makes sure our data is untainted
13448
         DELETE FROM package_metrics pm
13449
         WHERE pm.pv_id = lv_pvid;
13450
 
13451
         -- Insert the new data into the metrics table
13452
         INSERT INTO package_metrics
13453
                     (pv_id, branches, branch_list, code_files, ignored_files, directories, directory_depth,
13454
                      total_files, makefiles, blank_lines, code_lines, comment_lines, created_stamp
13455
                     )
13456
              VALUES (lv_pvid, lv_branches, lv_branchlist, lv_codefiles, lv_ignoredfiles, lv_directories, lv_directorydepth,
13457
                      lv_totalfiles, lv_makefiles, lv_blanklines, lv_codelines, lv_commentlines, ora_sysdatetime
13458
                     );
13459
 
13460
         -- Now update the Release_Metrics Table
13461
         update_release_metrics(rtagid);
13462
 
13463
         RETURN return_insert_success;
13464
      ELSE
13465
         RETURN return_insert_error;
13466
      END IF;
1373 dpurdie 13467
   END;
13468
 
13469
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13470
   PROCEDURE update_release_metrics (rtagid IN NUMBER)
1373 dpurdie 13471
   IS
3959 dpurdie 13472
      lv_totalpackages       NUMBER;
13473
      lv_autobuilt           NUMBER;
13474
      lv_linesofcode         NUMBER;
13475
      lv_unittested          NUMBER;
13476
      lv_autotested          NUMBER;
13477
      lv_numOfbranches       NUMBER;
13478
      lv_lastbuildtime       DATE;
1373 dpurdie 13479
   BEGIN
3959 dpurdie 13480
      IF (rtagid > 0)
13481
      THEN
13482
         -- Get the total number of packages in this release and the number of
13483
         -- those that are autobuilt
13484
         SELECT COUNT (DISTINCT rc.pv_id),
13485
                COUNT (DISTINCT autobuilt_qry.pv_id)
13486
           INTO lv_totalpackages, lv_autobuilt
13487
           FROM release_content rc,
13488
                package_versions pv,
13489
                (
13490
                 SELECT rc.pv_id
13491
                   FROM release_content rc,
13492
                        package_versions pv
13493
                  WHERE pv.is_autobuildable = 'Y'
13494
                    AND pv.pv_id = rc.pv_id
13495
                    AND rc.rtag_id = rtagid
13496
                ) autobuilt_qry
13497
          WHERE pv.pv_id = rc.pv_id
13498
            AND rc.rtag_id = rtagid
13499
            AND autobuilt_qry.pv_id (+) = rc.pv_id;
1373 dpurdie 13500
 
3959 dpurdie 13501
         -- Get the build time of the last package built in this release and the
13502
         -- total number of lines of code
13503
         SELECT MAX(pm.created_stamp),
13504
                SUM(pm.code_lines)
13505
           INTO lv_lastbuildtime, lv_linesofcode
13506
           FROM package_metrics pm, release_content rc
13507
          WHERE pm.pv_id = rc.pv_id
13508
            AND rc.rtag_id = rtagid;
13509
 
13510
         -- Get the number of packages with unit tests in this release and the
13511
         -- number of those that are autotested
13512
         SELECT COUNT(DISTINCT ut.pv_id) INTO lv_unittested
13513
           FROM unit_tests ut,
13514
                release_content rc
13515
          WHERE ut.pv_id = rc.pv_id
13516
            AND rc.rtag_id = rtagid
13517
        AND ut.test_types_fk != 1;
13518
 
13519
        SELECT COUNT(DISTINCT ut.pv_id) INTO lv_autotested
13520
          FROM unit_tests ut,
13521
               release_content rc
13522
         WHERE ut.pv_id = rc.pv_id
13523
           AND rc.rtag_id = rtagid
13524
           AND ut.test_types_fk = 7;
13525
 
13526
 
13527
         -- Count the number of unique branches in the packages in this release.
13528
--         SELECT COUNT(DISTINCT branch) INTO lv_numOfbranches
13529
--           FROM (
13530
--                SELECT pv_id,
13531
--                       regexp_substr(str, '[^,]+', 1, level) branch,
13532
--                       level lv,
13533
--                       lag(level, 1, 0) over (partition by pv_id order by level) lg
13534
--                  FROM (
13535
--                       SELECT pm.pv_id,
13536
--                              ','||pm.branch_list str
13537
--                         FROM package_metrics pm,
13538
--                              release_content rc
13539
--                        WHERE pm.pv_id = rc.pv_id
13540
--                          AND rc.rtag_id = rtagid
13541
--                       )
13542
--                CONNECT BY regexp_substr(str, '[^,]+', 1, LEVEL) IS NOT NULL
13543
--                )
13544
--          WHERE lv != lg;
13545
 
13546
         UPDATE release_metrics rm
13547
            SET rm.total_packages = lv_totalpackages,
13548
                rm.autobuilt = lv_autobuilt,
13549
                rm.lines_of_code = lv_linesofcode,
13550
                rm.unit_tested = lv_unittested,
13551
                rm.autotested = lv_autotested,
13552
--                rm.branches = lv_numOfbranches,
13553
                rm.last_build_time = lv_lastbuildtime
13554
          WHERE rtag_id = rtagid;
13555
 
13556
         IF (SQL%ROWCOUNT = 0)
13557
         THEN
13558
            INSERT INTO release_metrics
13559
                        (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,
13560
                         autotested, last_build_time
13561
                        )
13562
                 VALUES (rtagid, lv_totalpackages, lv_autobuilt, lv_linesofcode, lv_unittested,
13563
                         lv_autotested, lv_lastbuildtime
13564
                        );
13565
         END IF;
13566
--         IF (SQL%ROWCOUNT = 0)
13567
--         THEN
13568
--            INSERT INTO release_metrics
13569
--                        (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,
13570
--                         autotested, branches, last_build_time
13571
--                        )
13572
--                 VALUES (rtagid, lv_totalpackages, lv_autobuilt, lv_linesofcode, lv_unittested,
13573
--                         lv_autotested, lv_numOfbranches, lv_lastbuildtime
13574
--                        );
13575
--         END IF;
13576
--      ELSE
13577
--         raise_application_error (-20000, 'RtagId must be supplied.');
13578
      END IF;
1373 dpurdie 13579
   END;
13580
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13581
   FUNCTION return_vcs_tag(pvid IN NUMBER) RETURN VARCHAR2
1373 dpurdie 13582
   IS
3959 dpurdie 13583
      vcstypeid    NUMBER;
13584
      vcstag       VARCHAR2(32);
13585
      label        VARCHAR2(60);
13586
      srcpath      VARCHAR2(2000);
13587
      vcstypeid_cc NUMBER;
13588
      vcstypeid_uc NUMBER;
1373 dpurdie 13589
   BEGIN
3959 dpurdie 13590
      -- Get the VCS_TYPE_ID for the ClearCase version control system. We do this so that we make no assumptions about
13591
      -- what the primary key value is for the ClearCase VCS entry.
13592
      BEGIN
13593
         SELECT vt.vcs_type_id
13594
         INTO vcstypeid_cc
13595
         FROM VCS_TYPE vt
13596
         WHERE vt.tag = 'CC';
13597
         EXCEPTION
13598
            WHEN NO_DATA_FOUND THEN
13599
               raise_application_error (-20000, 'Database is missing compulsory CC version control system tag!');
13600
      END;
1373 dpurdie 13601
 
3959 dpurdie 13602
      -- Get the VCS_TYPE_ID for the Uncontrolled version control system. We do this so that we make no assumptions about
13603
      -- what the primary key value is for the Uncontrolled VCS entry.
13604
      BEGIN
13605
         SELECT vt.vcs_type_id
13606
         INTO vcstypeid_uc
13607
         FROM VCS_TYPE vt
13608
         WHERE vt.tag = 'UC';
13609
         EXCEPTION
13610
            WHEN NO_DATA_FOUND THEN
13611
               raise_application_error (-20000, 'Database is missing compulsory UC version control system tag!');
13612
      END;
13613
 
13614
      -- Get the PKG_LABEL, SRC_PATH, VCS_TYPE_ID for the package version
13615
      -- As additional VCS types are introduced, we may have to extend what this SELECT statement returns
13616
      BEGIN
13617
         SELECT pv.pkg_label, pv.src_path,
13618
           (CASE WHEN pv.pkg_label = 'N/A' AND pv.vcs_type_id IS NULL THEN vcstypeid_uc
13619
                 WHEN pv.vcs_type_id IS NULL THEN vcstypeid_cc
13620
                 ELSE pv.vcs_type_id END) AS vcs_type_id
13621
         INTO label, srcpath, vcstypeid
13622
         FROM PACKAGE_VERSIONS pv
13623
         WHERE pv.pv_id = pvid;
13624
         EXCEPTION
13625
            WHEN NO_DATA_FOUND THEN
13626
               raise_application_error (-20000, 'Package Version Not Found!');
13627
      END;
13628
 
13629
      -- Get the VCS TAG for the VCS_TYPE_ID.
13630
      BEGIN
13631
         SELECT vt.tag
13632
         INTO vcstag
13633
         FROM VCS_TYPE vt
13634
         WHERE vt.vcs_type_id = vcstypeid;
13635
         EXCEPTION
13636
            WHEN NO_DATA_FOUND THEN
13637
               raise_application_error (-20000, 'Could not get VCS Tag for the package version!');
13638
      END;
13639
 
13640
      -- Return value depending upon which VCS Tag is being used.
13641
      -- As additional VCS types are introduced, we have to add additional WHEN clauses
13642
      CASE vcstag
13643
         WHEN 'CC' THEN
13644
            RETURN vcstag || '::' || srcpath || '::' || label;
13645
         WHEN 'SVN' THEN
13646
            RETURN vcstag || '::' || srcpath || '::' || label;
13647
         ELSE
13648
            RETURN vcstag || '::';
13649
      END CASE;
13650
 
1373 dpurdie 13651
   END;
3959 dpurdie 13652
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 13653
 
3959 dpurdie 13654
/*-------------------------------------------------------------------------------------------------------
13655
Name:        update_vcs_details
13656
Description: Updates the Version Control System (vcs) details specified in the vcstag
13657
             parameter for the specified package version.
13658
             The specified package vcstag is parsed and split into 3 fields:
13659
                vcs type, src path, label
13660
             These fields are then stored for the specified pv_id in the package_versions, table.
13661
             An action is recorded in the action log and provides information for tracking and
13662
             for restoring the previous vcs settings if a recovery is required.
13663
Paramters:
13664
             ipv_id:     Package version identifier
13665
             vcstag:     Full version control tag.
13666
                         Examples:
13667
                             "SVN::AUPERASVN01/DPG_SWBase/tools/trunk::daf_tools_25.1.7027.cr@1234"
13668
                            "CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr"
13669
             user_id:    Identifier of the user that is performing this function.
13670
*/
13671
PROCEDURE update_vcs_details(ipv_id IN NUMBER, vcstag IN VARCHAR2, user_id IN NUMBER)
1373 dpurdie 13672
   IS
3959 dpurdie 13673
      ivcs_type_id   NUMBER;
13674
      svcs_type      VARCHAR2(128);
13675
      ssrc_path      VARCHAR2(512);
13676
      spkg_label     VARCHAR2(512);
13677
      spattern       VARCHAR2(64);
13678
      saction_desc   VARCHAR2(2048);
13679
      old_vcs_type   VARCHAR2(128);
13680
      old_src_path   VARCHAR2(512);
13681
      old_pkg_label  VARCHAR2(512);
13682
      old_pkg_vcstag VARCHAR2(1024);
13683
      i              NUMBER;
13684
      vcount         NUMBER;
1373 dpurdie 13685
   BEGIN
3959 dpurdie 13686
     -- Split vcs tag into fields: vcs type, src path, label
13687
     -- Fields are separated by '::'
13688
     -- e.g "CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr"
13689
     -- The below regular expression pattern has groups to achieve this.
1373 dpurdie 13690
 
3959 dpurdie 13691
     spattern:= '^([^:]*)::([^:]*)(::(.*))?$';
13692
 
13693
     --As Oracle 10g does not allow REGEXP_SUBSTR to return a group,
13694
     --REGEXP_REPLACE is used instead (Note: Oracle 11g has this enhancement).
13695
     SELECT REGEXP_REPLACE(vcstag,spattern, '\1') INTO svcs_type  FROM DUAL;
13696
     SELECT REGEXP_REPLACE(vcstag,spattern, '\2') INTO ssrc_path  FROM DUAL;
13697
     SELECT REGEXP_REPLACE(vcstag,spattern, '\4') INTO spkg_label FROM DUAL;
13698
 
13699
     -- Validate vcs type
13700
     BEGIN
13701
       SELECT vc.vcs_type_id INTO ivcs_type_id FROM vcs_type vc WHERE UPPER(svcs_type) = UPPER(vc.tag);
13702
     EXCEPTION
13703
       WHEN NO_DATA_FOUND THEN
13704
         raise_application_error (-20000, 'Invalid vcs type: ' || '"' || svcs_type || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
13705
       --RAISE;
13706
     END;
13707
 
13708
     -- If Clearcase
13709
     IF (ivcs_type_id = 2) THEN
13710
       -- Validate source path
13711
       IF NOT REGEXP_LIKE(ssrc_path,'^(\\|\/)[a-z]+[0-9a-z_\.\-\\\/ -]*$','i') THEN
13712
         raise_application_error (-20000, 'Invalid CC src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
13713
       END IF;
13714
 
13715
       -- Validate label
13716
       -- For clearcase the label must be specified. For subversion it is not required.
13717
       IF NOT REGEXP_LIKE(spkg_label,'^[0-9a-z_\.\-]+$','i') THEN
13718
         raise_application_error (-20000, 'Invalid CC label:' || '"' || spkg_label || '"' || ' for package version:' || ipv_id || ', vcstag:' || '"' || vcstag || '"');
13719
       END IF;
13720
 
13721
     -- if Subversion
13722
     ELSIF (ivcs_type_id = 23) THEN
13723
       -- general validity
13724
       -- Not as picky as the RM Data entry
13725
       IF NOT REGEXP_LIKE(ssrc_path,'^([0-9a-z_\.\-]+)(\/([0-9a-z_\.\-]+))+$','i') THEN
13726
         raise_application_error (-20000, 'Invalid SVN src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
13727
       END IF;
13728
 
13729
       -- Validate Tag
13730
       -- May be a Peg or a Label
13731
       IF NOT REGEXP_LIKE(spkg_label,'^@?[0-9]+$','i') THEN
13732
           IF NOT REGEXP_LIKE(spkg_label,'^[0-9a-z_\.\-]+($|@[0-9]+)','i') THEN
13733
             raise_application_error (-20000, 'Invalid SVN tag:' || '"' || spkg_label || '"' || ' for package version:' || ipv_id || ', vcstag:' || '"' || vcstag || '"');
13734
           END IF;
13735
       END IF;
13736
 
13737
        -- Check for suitable ending
13738
        IF NOT REGEXP_LIKE(ssrc_path,'(\/tags$)|(\/branches\/)|(\/trunk$)','i') THEN
13739
            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 || '"');
13740
        END IF;
13741
 
13742
       -- Check for combined use of tags, branches, trunk or repeats of each
13743
       -- Count occurrences of /tags or /branches/ or /trunk
13744
       vcount:=0;
13745
       i:=1;
13746
       WHILE i > 0 LOOP
13747
         i:=REGEXP_INSTR(ssrc_path,'(\/tags(\/|$))|(\/branches(\/|$))|(\/trunk(\/|$))',i,1,1,'i');
13748
         IF i > 0 THEN
13749
           -- if found then increment count
13750
           vcount:=vcount+1;
13751
           i:=i-1;  -- move index back to "/"
13752
         END IF;
13753
       END LOOP;
13754
 
13755
       IF vcount = 0  THEN
13756
         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 || '"');
13757
       END IF;
13758
 
13759
       IF vcount > 1  THEN
13760
         raise_application_error (-20000, 'Combined use of /trunk, /tags, or /branches/. Invalid SVN src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
13761
       END IF;
13762
 
13763
 
13764
     END IF;
13765
 
13766
     BEGIN
13767
       -- Get current vcs tag for specified package version
13768
       SELECT pv.src_path, pv.pkg_label, vc.tag as vcs_type
13769
       INTO old_src_path, old_pkg_label, old_vcs_type
13770
       FROM package_versions pv, vcs_type vc
13771
       WHERE pv.pv_id = ipv_id
13772
       AND pv.vcs_type_id = vc.vcs_type_id (+);
13773
 
13774
     EXCEPTION
13775
       WHEN NO_DATA_FOUND THEN
13776
         raise_application_error (-20000, 'Package version not found: ' || ipv_id);
13777
     END;
13778
 
13779
     old_pkg_vcstag:= old_vcs_type || '::' || old_src_path;
13780
     IF (old_pkg_label IS NOT NULL) THEN
13781
       old_pkg_vcstag:=old_pkg_vcstag || '::' || old_pkg_label;
13782
     END IF;
13783
 
13784
     -- Create action description
13785
     -- This description will contain the old and new tags.
13786
     -- Its purpose is to provide information for tracking and for restoring previous vcs settings if a recovery is required.
13787
     -- An example of the action description is below:
13788
     --   OldTag:CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr NewTag:SVN::DPG_SWBase/tools/tags/daf_tools_25.1.7027.cr
13789
     saction_desc:='OldTag:' || old_pkg_vcstag || ' ' || 'NewTag:' || vcstag;
13790
 
13791
     -- Store new vcs details
13792
     UPDATE package_versions SET
13793
       src_path = ssrc_path,
13794
       pkg_label = spkg_label,
13795
       vcs_type_id = ivcs_type_id
13796
     WHERE
13797
       pv_id = ipv_id;
13798
 
13799
     -- Store action in action log so that we can back track and also restore vcs settings if required.
13800
     log_action (ipv_id,'VcsConversion',user_id,saction_desc);
13801
 
13802
   END update_vcs_details;
13803
 
13804
/*-------------------------------------------------------------------------------------------------------
13805
Name:        isSVN
13806
Description: Determine if any of the packages versions are controlled under SVN
13807
			 Intended to be used to prevent users from releasing a package
13808
			 that has been migrated to SVN
13809
 
13810
Paramters:	pkgid:     Package ID
13811
 
13812
Returns:	Number of versions under SVN version control
13813
*/
13814
 
13815
FUNCTION isSVN( pkgid IN NUMBER )
13816
    RETURN NUMBER
13817
    IS
13818
    svncount   NUMBER  := 0;
13819
   BEGIN
13820
        SELECT COUNT(*) INTO svncount FROM PACKAGE_VERSIONS pv WHERE pv.PKG_ID = pkgid AND pv.VCS_TYPE_ID = 23;
13821
        RETURN (svncount);
1373 dpurdie 13822
   END;
3959 dpurdie 13823
 
13824
/*-------------------------------------------------------------------------------------------------------
13825
Name:        isSVNbyName
13826
Description: Determine if any of the packages versions are controlled under SVN
13827
			 Intended to be used to prevent users from releasing a package
13828
			 that has been migrated to SVN
13829
 
13830
Paramters:	pkgname:	Package Name
13831
 
13832
Returns:	Number of versions under SVN version control
13833
*/
13834
 
13835
FUNCTION isSVNbyName( pkgname IN VARCHAR2 ) 
13836
    RETURN NUMBER
13837
IS
13838
   svncount   NUMBER  := 0;
13839
   BEGIN
13840
        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;
13841
        RETURN (svncount);
13842
   END;
5172 dpurdie 13843
/*-------------------------------------------------------------------------------------------------------
13844
Name:        new_build_instance
13845
Description: Create a new entry in the BUILD_INSTANCE table
13846
             The BUILD_ID will be allocated.
13847
             The timestamp will be created
13848
 
13849
Paramters:	rtag_id:	Release ID - must exist
13850
            pv_id:    Package ID - must exist
13851
            reason:   Reason code for the build
13852
 
13853
Returns:	BUILD_ID for the new entry
13854
          Returns -1 on error, PV_ID or RTAG_ID do not exist
13855
*/ 
13856
FUNCTION new_build_instance( rtag_id IN NUMBER, pv_id IN NUMBER , reason IN CHAR) 
13857
  RETURN NUMBER   
13858
  IS
13859
    build_id NUMBER := 0;
13860
  BEGIN
13861
    INSERT into BUILD_INSTANCES (RTAG_ID, PV_ID, REASON)
13862
    values( rtag_id, pv_id, reason)
13863
    returning BUILD_ID into build_id;
13864
    return build_id;
13865
  EXCEPTION
13866
    WHEN OTHERS THEN
13867
      return -1;
13868
  END;
13869
 
13870
/*-------------------------------------------------------------------------------------------------------
13871
Name: update_build_instance
13872
Description: Update fields in an existing build instance
13873
Returns: -1 on error
13874
*/
13875
FUNCTION update_build_instance(
13876
    nbuild_id IN NUMBER,
13877
    npv_id    IN NUMBER DEFAULT NULL,
13878
    nstate    IN CHAR DEFAULT NULL )
13879
  RETURN NUMBER
13880
IS
13881
BEGIN
13882
  IF ( npv_id IS NOT NULL AND npv_id > 0 ) THEN
13883
    UPDATE BUILD_INSTANCES SET PV_ID = npv_id WHERE BUILD_ID = nbuild_id;
13884
    IF SQL%NOTFOUND THEN
13885
      RETURN -2;
13886
    END IF;
13887
  END IF;
13888
 
13889
  IF ( nstate        IS NOT NULL ) THEN
13890
    IF (LENGTH(nstate) = 1 ) THEN
13891
      UPDATE BUILD_INSTANCES SET STATE = nstate WHERE BUILD_ID = nbuild_id;
13892
        IF SQL%NOTFOUND THEN
13893
          RETURN -3;
13894
        END IF;
13895
    ELSE
13896
      RETURN -4;
13897
    END IF;
13898
  END IF;
13899
 
13900
  RETURN 1;
13901
  EXCEPTION
13902
    WHEN OTHERS THEN
13903
      RETURN -1;
13904
  END;
13905
 
13906
/*-------------------------------------------------------------------------------------------------------
13907
Name:        insert_test_run
13908
Description: Insert data into the test_run table
13909
 
13910
 
13911
Paramters:	See below
13912
 
13913
Returns:	1 on success
13914
          Returns -1 on error
13915
*/  
13916
  FUNCTION insert_test_run( 
13917
      build_id  IN NUMBER, 
13918
      name      IN VARCHAR2, 
13919
      outcome   IN VARCHAR2, 
13920
      platform  IN VARCHAR2, 
13921
      stype     IN VARCHAR2, 
13922
      duration  IN NUMBER default null, 
13923
      message   IN CLOB default null
13924
      ) return NUMBER
13925
IS
13926
  sName VARCHAR2(1000) := name;
13927
  sNameLen NUMBER;
13928
 
13929
BEGIN
13930
  sNameLen := LENGTH(sName);
5384 dpurdie 13931
  IF sNameLen >= 199 Then
13932
    sName := '...' || SUBSTR(sName, sNameLen - 196); 
5172 dpurdie 13933
  END IF;
13934
 
13935
  INSERT into TEST_RUN
13936
    (BUILD_ID, TEST_NAME, TEST_OUTCOME, TIME_TAKEN,FAIL_MESSAGE,PLATFORM, TYPE)
13937
    VALUES(build_id,sName,outcome, duration, message, platform, stype);
13938
    return 1;
13939
  EXCEPTION
13940
    WHEN OTHERS THEN
13941
      return -1;
13942
 
13943
END;
3959 dpurdie 13944
 
13945
   END;
4040 dpurdie 13946
 
1374 dpurdie 13947
/
5892 dpurdie 13948
 
13949
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "DM_READONLY";
13950
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "MS_READONLY";
13951
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "RM_EXTRACT_PV";
13952
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "RM_READONLY";
4040 dpurdie 13953
--------------------------------------------------------
13954
--  DDL for Package Body PK_WORK_IN_PROGRESS
13955
--------------------------------------------------------
13956
 
5172 dpurdie 13957
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS" IS
1373 dpurdie 13958
 
13959
/*
13960
------------------------------
13961
||  Last Modified:  S.Vukovic
3959 dpurdie 13962
||  Modified Date:  2/May/2005
1373 dpurdie 13963
||  Body Version:   1.0
13964
------------------------------
13965
*/
13966
 
13967
 
13968
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13969
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 13970
 
3959 dpurdie 13971
	oldPvId NUMBER;
13972
	ReleaseLocation VARCHAR2(4000);
13973
	sLocation VARCHAR2(4000) := NULL;
1373 dpurdie 13974
 
3959 dpurdie 13975
 
1373 dpurdie 13976
BEGIN
13977
	/*--------------- Business Rules Here -------------------*/
3959 dpurdie 13978
	/*-------------------------------------------------------*/
1373 dpurdie 13979
 
3959 dpurdie 13980
	BEGIN
5384 dpurdie 13981
		-- Check if Exists in "Work in progress" anywhere in the world in a non-closed Release
3959 dpurdie 13982
		SELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME  INTO sLocation
13983
		  FROM WORK_IN_PROGRESS wip,
13984
		  	   RELEASE_TAGS rt,
13985
			   PROJECTS proj
13986
		 WHERE wip.PV_ID = newPvId
13987
		   AND wip.RTAG_ID = rt.RTAG_ID
5384 dpurdie 13988
		   AND rt.OFFICIAL in ('N','R','C')
3959 dpurdie 13989
		   AND rt.PROJ_ID = proj.PROJ_ID;
1373 dpurdie 13990
 
3959 dpurdie 13991
		EXCEPTION
13992
	    	WHEN NO_DATA_FOUND THEN
13993
	       		sLocation := NULL;
13994
 
13995
	END;	   	   
1373 dpurdie 13996
 
13997
 
13998
 
3959 dpurdie 13999
	IF (sLocation IS NULL)  THEN
1373 dpurdie 14000
 
3959 dpurdie 14001
		-- Add to "Work in progress"
14002
		INSERT INTO WORK_IN_PROGRESS ( RTAG_ID, PV_ID, VIEW_ID )
14003
		VALUES( RtagId, newPvId, ViewId );
14004
 
14005
 
14006
	    /* LOG ACTION */
14007
		SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
14008
		  FROM PROJECTS proj,
14009
		  	   RELEASE_TAGS rt
14010
		 WHERE rt.PROJ_ID = proj.PROJ_ID
14011
		   AND rt.RTAG_ID = RtagId;
14012
 
14013
		Log_Action ( newPvId, 'work_in_progress', UserId, 'Location: '|| ReleaseLocation );
14014
 
14015
	ELSE
14016
 
14017
		RAISE_APPLICATION_ERROR (-20000, 'This version is already in Work-In-Progress Area at '|| sLocation ||'.' );
14018
 
1373 dpurdie 14019
	END IF;
14020
 
3959 dpurdie 14021
END;
14022
/*-------------------------------------------------------------------------------------------------------*/
14023
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 14024
 
3959 dpurdie 14025
	ReleaseLocation VARCHAR2(4000);
1373 dpurdie 14026
 
3959 dpurdie 14027
BEGIN
14028
 
14029
	/*--------------- Business Rules Here -------------------*/
1373 dpurdie 14030
	/*-------------------------------------------------------*/
14031
 
14032
 
3959 dpurdie 14033
	-- Get release location for logging pusposes
14034
	SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
14035
	  FROM PROJECTS proj,
14036
	  	   RELEASE_TAGS rt
14037
	 WHERE rt.PROJ_ID = proj.PROJ_ID
14038
	   AND rt.RTAG_ID = RtagId;
1373 dpurdie 14039
 
14040
 
3959 dpurdie 14041
	-- Delete from Work In Progress
14042
	DELETE
14043
	  FROM WORK_IN_PROGRESS wip
14044
	 WHERE wip.RTAG_ID = RtagId
14045
	   AND wip.PV_ID = PvId;
1373 dpurdie 14046
 
3959 dpurdie 14047
	Log_Action ( PvId, 'delete_from_wip', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 14048
 
3959 dpurdie 14049
 
14050
 
14051
 
1373 dpurdie 14052
END;
14053
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14054
PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 14055
 
3959 dpurdie 14056
	nIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
14057
	ReleaseLocation VARCHAR2(4000);
14058
	PvId NUMBER;
1373 dpurdie 14059
 
14060
BEGIN
3959 dpurdie 14061
 
1373 dpurdie 14062
	/*--------------- Business Rules Here -------------------*/
3959 dpurdie 14063
	IF (PvIdList IS NULL)
14064
	THEN
14065
		RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
14066
	END IF;
1373 dpurdie 14067
	/*-------------------------------------------------------*/
14068
 
14069
 
3959 dpurdie 14070
	nIdCollector := IN_LIST_NUMBER ( PvIdList );
1373 dpurdie 14071
 
14072
 
3959 dpurdie 14073
	-- Get release location for logging pusposes
14074
	SELECT proj.PROJ_NAME  ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
14075
	  FROM PROJECTS proj,
14076
	  	   RELEASE_TAGS rt
14077
	 WHERE rt.PROJ_ID = proj.PROJ_ID
14078
	   AND rt.RTAG_ID = RtagId;
1373 dpurdie 14079
 
3959 dpurdie 14080
 
14081
	FOR i IN 1..nIdCollector.COUNT
14082
	LOOP
14083
		PvId := nIdCollector(i);
14084
 
14085
		-- Delete from Work In Progress
14086
		DELETE
14087
		  FROM WORK_IN_PROGRESS wip
14088
		 WHERE wip.RTAG_ID = RtagId
14089
		   AND wip.PV_ID = PvId;
14090
 
14091
		Log_Action ( PvId, 'remove_from_work_in_progress', UserId, 'Location: '|| ReleaseLocation );
14092
 
14093
	END LOOP;
14094
 
14095
 
1373 dpurdie 14096
END;
14097
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14098
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
14099
 
14100
	ReturnValue NUMBER;
14101
 
1373 dpurdie 14102
BEGIN
3959 dpurdie 14103
	SELECT wip.VIEW_ID INTO ReturnValue
14104
	  FROM WORK_IN_PROGRESS wip
14105
	 WHERE wip.RTAG_ID = RtagId
14106
	   AND wip.PV_ID = PvId;
1373 dpurdie 14107
 
3959 dpurdie 14108
	RETURN ReturnValue;
1373 dpurdie 14109
END;
14110
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14111
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
14112
 
14113
	IsBaseView CHAR(1);
14114
 
1373 dpurdie 14115
BEGIN
14116
 
3959 dpurdie 14117
	-- Check if the view is BASE VIEW
14118
	SELECT vi.BASE_VIEW INTO IsBaseView
14119
	  FROM VIEWS vi
14120
	 WHERE vi.VIEW_ID = ViewId;
14121
 
5172 dpurdie 14122
	IF (IsBaseView IN ('Y', 'S')) THEN 
3959 dpurdie 14123
		-- Get Base view content
14124
		OPEN RecordSet FOR
14125
		SELECT 0 AS PKG_STATE,
14126
			   NULL AS DEPRECATED_STATE,
14127
			   pv.pv_id, 
14128
			   pkg.pkg_name, 
14129
			   pv.pkg_version, 
14130
			   pv.dlocked, 
14131
			   pv.pv_description,
14132
			   pv.BUILD_TYPE
14133
		  FROM WORK_IN_PROGRESS rel,
14134
		       packages pkg,
14135
		       package_versions pv
14136
		 WHERE pv.pkg_id = pkg.pkg_id
14137
		   AND rel.pv_id = pv.pv_id
14138
		   AND rel.VIEW_ID = ViewId
14139
		   AND rel.RTAG_ID = RtagId
14140
		 ORDER BY UPPER(pkg.PKG_NAME);
14141
 
1373 dpurdie 14142
 
3959 dpurdie 14143
	ELSE	 
1373 dpurdie 14144
 
3959 dpurdie 14145
	 	-- Get non base view content
14146
		OPEN RecordSet FOR
14147
		SELECT 0 AS PKG_STATE,
14148
			   NULL AS DEPRECATED_STATE,
14149
			   pv.pv_id, 
14150
			   pkg.pkg_name, 
14151
			   pv.pkg_version, 
14152
			   pv.dlocked, 
14153
			   pv.pv_description,
14154
			   pv.BUILD_TYPE
14155
		  FROM WORK_IN_PROGRESS rel,
14156
		       packages pkg,
14157
		       package_versions pv,
14158
			   VIEW_DEF vd
14159
		 WHERE pv.pkg_id = pkg.pkg_id
14160
		   AND rel.pv_id = pv.pv_id
14161
		   AND vd.VIEW_ID = ViewId
14162
		   AND vd.PKG_ID = pv.PKG_ID
14163
		   AND rel.RTAG_ID = RtagId
14164
		 ORDER BY UPPER(pkg.PKG_NAME);
1373 dpurdie 14165
 
3959 dpurdie 14166
 
14167
	END IF;	 	
14168
 
14169
 
1373 dpurdie 14170
END;
14171
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14172
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
14173
 
1373 dpurdie 14174
BEGIN
14175
 
3959 dpurdie 14176
	UPDATE WORK_IN_PROGRESS wip SET
14177
	wip.VIEW_ID = NewViewId
14178
	WHERE wip.PV_ID = PvId
14179
	  AND wip.RTAG_ID = RtagId;
14180
 
1373 dpurdie 14181
END;
14182
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14183
END PK_WORK_IN_PROGRESS;
4040 dpurdie 14184
 
3959 dpurdie 14185
/
4040 dpurdie 14186
--------------------------------------------------------
14187
--  DDL for Package Body RM_ISSUES
14188
--------------------------------------------------------
14189
 
5172 dpurdie 14190
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."RM_ISSUES" AS
1373 dpurdie 14191
 
3959 dpurdie 14192
-- Private Implementation -----------------------------------------------------
1373 dpurdie 14193
 
14194
 
3959 dpurdie 14195
	FUNCTION VerIsGrtrThanOrEqlToStart( XXstart IN NUMBER, XX IN NUMBER, YYstart IN NUMBER, YY IN NUMBER, ZZstart IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER
14196
	AS
1373 dpurdie 14197
 
3959 dpurdie 14198
	BEGIN
14199
		-- start boundary case
14200
		IF ( XXstart < XX ) THEN
14201
			RETURN 1;
1373 dpurdie 14202
 
3959 dpurdie 14203
		ELSIF ( XXstart = XX ) THEN
1373 dpurdie 14204
 
3959 dpurdie 14205
			-- need to consider YY
14206
			IF ( YYstart < YY ) THEN
14207
				RETURN 1;
1373 dpurdie 14208
 
3959 dpurdie 14209
			ELSIF ( YYstart = YY ) THEN
1373 dpurdie 14210
 
3959 dpurdie 14211
					-- need to consider ZZ
14212
					IF ( ZZstart <= ZZ ) THEN
14213
						RETURN 1;
14214
 
14215
					ELSE
14216
						RETURN 0;
14217
					END IF;
14218
 
14219
			ELSE
14220
				RETURN 0;
14221
			END IF;
14222
		ELSE
14223
			RETURN 0;
14224
		END IF;
14225
	EXCEPTION
14226
		WHEN OTHERS THEN
14227
			RETURN -1;
14228
	END;
14229
 
14230
 
14231
	FUNCTION VerIsLessThanOrEqlToEnd( XXend IN NUMBER, XX IN NUMBER, YYend IN NUMBER, YY IN NUMBER, ZZend IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER
14232
	AS
14233
 
14234
	BEGIN
14235
		-- end boundary case
14236
		IF ( XX < XXend ) THEN
14237
			RETURN 1;
14238
 
14239
		ELSIF ( XX = XXend ) THEN
14240
 
14241
			-- need to consider YY
14242
			IF ( YY < YYend ) THEN
14243
				RETURN 1;
14244
 
14245
			ELSIF ( YY = YYend ) THEN
14246
 
14247
					-- need to consider ZZ
14248
					IF ( ZZ <= ZZend ) THEN
14249
						RETURN 1;
14250
 
14251
					ELSE
14252
						RETURN 0;
14253
					END IF;
14254
			ELSE
14255
 
14256
				RETURN 0;
14257
			END IF;
14258
		ELSE
14259
			RETURN 0;
14260
		END IF;
14261
	EXCEPTION
14262
		WHEN OTHERS THEN
14263
			RETURN -1;
14264
	END;
14265
 
14266
	/*
14267
	-	version format:		XX.YY.ZZ.abc
14268
	*/
14269
	FUNCTION VersionIsBetween( version IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR ) RETURN NUMBER
14270
	AS
14271
		XXstart		NUMBER	:=	0;
14272
		XXend		NUMBER	:=	0;
14273
		XX			NUMBER	:=	0;
14274
		YYstart		NUMBER	:=	0;
14275
		YYend		NUMBER	:=	0;
14276
		YY			NUMBER	:=	0;
14277
		ZZstart		NUMBER	:=	0;
14278
		ZZend		NUMBER	:=	0;
14279
		ZZ			NUMBER	:=	0;
14280
		first_dot	NUMBER	:=	0;
14281
		second_dot	NUMBER	:=	0;
14282
		third_dot	NUMBER	:=	0;
14283
 
14284
		ProjExtstart	VARCHAR2(10);
14285
		ProjExtend		VARCHAR2(10);
14286
		ProjExt			VARCHAR2(10);
14287
 
14288
	BEGIN
14289
		-- strip the version number
14290
		first_dot :=  INSTR(version_start, '.', 1, 1);
14291
		second_dot :=  INSTR(version_start, '.', 1, 2);
14292
		third_dot :=  INSTR(version_start, '.', 1, 3);
14293
 
14294
		XXstart := TO_NUMBER( SUBSTR( version_start, 1, first_dot - 1 ) );
14295
		YYstart := TO_NUMBER( SUBSTR( version_start, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
14296
		ZZstart := TO_NUMBER( SUBSTR( version_start, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
14297
		ProjExtstart := SUBSTR( version_start, third_dot + 1, LENGTH(version_start) - third_dot );
14298
 
14299
		first_dot :=  INSTR(version_end, '.', 1, 1);
14300
		second_dot :=  INSTR(version_end, '.', 1, 2);
14301
		third_dot :=  INSTR(version_end, '.', 1, 3);
14302
 
14303
		XXend := TO_NUMBER( SUBSTR( version_end, 1, first_dot - 1 ) );
14304
		YYend := TO_NUMBER( SUBSTR( version_end, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
14305
		ZZend := TO_NUMBER( SUBSTR( version_end, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
14306
		ProjExtend := SUBSTR( version_end, third_dot + 1, LENGTH(version_end) - third_dot );
14307
 
14308
		first_dot :=  INSTR(version, '.', 1, 1);
14309
		second_dot :=  INSTR(version, '.', 1, 2);
14310
		third_dot :=  INSTR(version, '.', 1, 3);
14311
 
14312
		XX := TO_NUMBER( SUBSTR( version, 1, first_dot - 1 ) );
14313
		YY := TO_NUMBER( SUBSTR( version, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
14314
		ZZ := TO_NUMBER( SUBSTR( version, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
14315
		ProjExt := SUBSTR( version, third_dot + 1, LENGTH(version) - third_dot );
14316
 
14317
		-- only include versions if all project extensions are the same
14318
		IF ( ProjExtstart = ProjExt AND ProjExt = ProjExtend ) THEN
14319
 
14320
			IF ( VerIsGrtrThanOrEqlToStart( XXstart, XX, YYstart, YY, ZZstart, ZZ ) = 1 AND VerIsLessThanOrEqlToEnd( XXend, XX, YYend, YY, ZZend, ZZ ) = 1 ) THEN
14321
				RETURN 1;
14322
			ELSE
14323
				RETURN 0;
14324
			END IF;
14325
		ELSE
14326
			RETURN 0;
14327
		END IF;
14328
 
14329
	EXCEPTION
14330
		WHEN OTHERS THEN
14331
			RETURN -1;
14332
	END;
14333
 
14334
	FUNCTION GetPkgId( pkgName IN VARCHAR2 ) RETURN NUMBER
14335
	AS
14336
	    pkg_id NUMBER;
14337
	BEGIN
14338
		SELECT
14339
			p.PKG_ID
14340
		INTO
14341
			pkg_id
14342
		FROM
14343
			PACKAGES p
14344
		WHERE
14345
			p.PKG_NAME = pkgName;
14346
 
14347
		RETURN pkg_id;
14348
	EXCEPTION
14349
	    WHEN OTHERS THEN
14350
			dbms_output.put_line('GetPkgId exception: ' || SQLERRM );
14351
			RETURN -1;
14352
	END;
14353
 
14354
 
14355
-- Public Implementation ------------------------------------------------------
14356
 
14357
	/*
14358
	-- Proc: AllIssues - Gets all issues for a package from dependent packages one level deep
14359
	--
14360
	-- INPUT PARAMETERS:
14361
	--
14362
	--		pkg_name  	-  	The name of the top level package to get issues for
14363
	--		version_start	-	The start version for the comparison
14364
	--		version_end	-	The end version for the comparison
14365
	*/
14366
	PROCEDURE AllIssues( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 )
14367
	AS
14368
		pkgId	NUMBER;
14369
	BEGIN
14370
		-- get pkg_id of the input package:
14371
		pkgId := GetPkgId( pkg_name );
14372
 
14373
		OPEN vCursor FOR
14374
		SELECT
14375
			  pv.PKG_ID,
14376
			  pv.PKG_VERSION,
14377
			  pv.PV_ID,
14378
			  i_pkg.ISS_ID,
14379
			  ( SELECT pkg_name FROM PACKAGES WHERE pkg_id = pd.DPKG_ID ) AS DPV_NAME,
14380
			  pd.DPKG_ID,
14381
			  ( SELECT pkg_version FROM PACKAGE_VERSIONS WHERE pv_id = pd.DPV_ID ) AS DPV_VER,
14382
			  pd.DPV_ID,
14383
			  i_dpkg.ISS_ID AS ISSUE_ID
14384
		FROM
14385
			 PACKAGE_VERSIONS pv
14386
							  LEFT OUTER JOIN CQ_ISSUES i_pkg ON pv.PV_ID = i_pkg.PV_ID
14387
							  LEFT OUTER JOIN PACKAGE_DEPENDENCIES pd ON pv.PV_ID = pd.PV_ID
14388
							  LEFT OUTER JOIN CQ_ISSUES i_dpkg ON pd.DPV_ID = i_dpkg.PV_ID
14389
		WHERE
14390
   			 pv.PKG_ID = pkgId
14391
		AND
14392
			VersionIsBetween( pv.PKG_VERSION, version_start, version_end ) = 1
14393
		AND
14394
			 ( i_dpkg.ISS_ID IS NOT NULL OR i_pkg.ISS_ID IS NOT NULL )
14395
		ORDER BY
14396
			 pv.PKG_ID,
14397
			 pv.PV_ID,
14398
			 pd.DPKG_ID,
14399
			 pd.DPV_ID;
14400
	EXCEPTION
14401
		WHEN OTHERS THEN
14402
			dbms_output.put_line('AllIssues exception: ' || SQLERRM );
14403
	END;
14404
 
14405
 
14406
	-- NOTE: make RM_PACKAGE_ISSUES a temporary table when tested ok
14407
 
14408
	/*
14409
	-- Proc: LoadIssuesTable
14410
	--
14411
	-- Populates Package_Issues table with details of issues from all dependent packages.
14412
	-- This will be for all package versions of the input pkg_name between the
14413
	-- version_start and version_end.
14414
	--
14415
	-- INPUT PARAMETERS:
14416
	--
14417
	--		pkg_name  	-  	The name of the top level package to get issues for
14418
	--		version_start	-	The start version for the comparison
14419
	--		version_end	-	The end version for the comparison
14420
	*/
14421
	PROCEDURE LoadIssuesTable( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 )
14422
	AS
14423
		pkgId	NUMBER;
14424
 
14425
		CURSOR pack_vers_cur IS
14426
			SELECT
14427
				pv.PV_ID,
14428
				pv.PKG_VERSION,
14429
				pv.PKG_ID,
14430
				p.PKG_NAME
14431
			FROM
14432
				PACKAGE_VERSIONS pv
14433
					JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
14434
			WHERE
14435
   				 pv.PKG_ID = pkgId
14436
			AND
14437
				VersionIsBetween( pv.PKG_VERSION, version_start, version_end ) = 1;
14438
 
14439
	BEGIN
14440
		DELETE FROM RELEASE_MANAGER.RM_PKG_ISSUES; /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
14441
 
14442
		-- get the pkg_id we are finding issues for
14443
		pkgId := GetPkgId( pkg_name );
14444
 
14445
		-- find all the top level packages we are dealing with and recursively process their issues and their dependent package issues.
14446
		FOR pack_ver_rec IN  pack_vers_cur
14447
		LOOP
14448
			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 );
14449
			COMMIT;
14450
		END LOOP;
14451
 
14452
		-- The output cursor - shows the individual versions of the top level package then were reported on
14453
		OPEN vCursor FOR
14454
		SELECT DISTINCT ISS_ID, PKG_VERSION FROM RM_PKG_ISSUES WHERE ISS_ID IS NOT NULL; /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
14455
/*removed
14456
		SELECT
14457
			PKG_VERSION
14458
		FROM
14459
			RELEASE_MANAGER.RM_PACKAGE_ISSUES;
14460
*/
14461
 
14462
 
14463
	EXCEPTION
14464
		WHEN OTHERS THEN
14465
			dbms_output.put_line('LoadIssuesTable exception: ' || SQLERRM );
14466
	END;
14467
 
14468
 
14469
	/*
14470
	-- Proc: InsertIssuesForDepends
14471
	--
14472
	-- Used by LoadIssuesTable to recursively find issues for all dependent packages
14473
	--
14474
	-- INPUT PARAMETERS:
14475
	--
14476
	--		pvID  		-  	The package version id of the package to get issues for
14477
	--		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)
14478
	--		top_pkgName -  	The package name of the top level package
14479
	--		top_pvID  	-  	The package version id of the top level package
14480
	--		top_pkgVer  -  	The package version description of the top level package
14481
	*/
14482
	PROCEDURE InsertIssuesForDepends( pvID IN NUMBER, top_pkgID IN NUMBER, top_pkgName IN VARCHAR2, top_pvID IN NUMBER, top_pkgVer IN VARCHAR2 )
14483
	AS
14484
		pkgId		NUMBER;
14485
		issCnt		NUMBER := 0;
14486
		pkgCheck	NUMBER := 0;
14487
		depCheck	NUMBER := 0;
14488
 
14489
		dpkgName	VARCHAR(50);
14490
		dpkgVersion	VARCHAR(50);
14491
 
14492
		CURSOR dep_packs_cur IS
14493
			SELECT
14494
				DPV_ID
14495
			FROM
14496
				PACKAGE_DEPENDENCIES
14497
			WHERE
14498
				PV_ID = pvID;
14499
 
14500
	BEGIN
14501
 
14502
		-- check to see if the package has been processed previously
14503
		SELECT
14504
			COUNT(*)
14505
		INTO
14506
			pkgCheck
14507
		FROM
14508
			RM_PKG_ISSUES /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
14509
		WHERE
14510
			DPV_ID = pvID;
14511
 
14512
		dbms_output.put_line('pkgCheck: ' || pkgCheck );
14513
 
14514
		-- Package not already processed (no cyclic dependency) - process it
14515
		IF ( pkgCheck = 0 ) THEN
14516
 
14517
			-- check to see if this package version has any issues assigned to it
14518
			SELECT
14519
				COUNT(*)
14520
			INTO
14521
				issCnt
14522
			FROM
14523
				CQ_ISSUES i
14524
			WHERE
14525
				i.PV_ID = pvID;
14526
 
14527
			dbms_output.put_line('issCnt: ' || issCnt );
14528
 
14529
			-- Always enter a marker row into the table even if there are no issues for the package.
14530
			-- This allows us to pick up any cyclic dependencies.
14531
			IF ( issCnt > 0 ) THEN
14532
				-- get issues and insert into RM_PACKAGE_ISSUES
14533
				/*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
14534
 
14535
				INSERT INTO RM_PKG_ISSUES ( PKG_ID, PKG_NAME, PV_ID, PKG_VERSION, DPV_ID, DPKG_NAME, DPKG_VERSION, ISS_DB, ISS_ID )
14536
					SELECT DISTINCT
14537
						top_pkgID		AS PKG_ID,
14538
						top_pkgName		AS PKG_NAME,
14539
						top_pvID		AS PV_ID,
14540
						top_pkgVer		AS PKG_VERSION,
14541
						pv.PV_ID		AS DPV_ID,
14542
						p.PKG_NAME		AS DPKG_NAME,
14543
						pv.PKG_VERSION	AS DPKG_VERSION,
14544
						ci.ISS_DB,
14545
						ci.ISS_ID
14546
					FROM
14547
						PACKAGE_VERSIONS pv
14548
							JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
14549
							JOIN CQ_ISSUES ci ON pv.PV_ID = ci.PV_ID
14550
					WHERE
14551
						pv.PV_ID = pvID;
14552
 
14553
			ELSE
14554
				-- get the dpkg details - there will always be a row returned here
14555
				SELECT
14556
					p.PKG_NAME
14557
				INTO
14558
					dpkgName
14559
				FROM
14560
					PACKAGE_VERSIONS pv
14561
						JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
14562
				WHERE
14563
	   				 pv.PV_ID = pvID;
14564
 
14565
				SELECT
14566
					pv.PKG_VERSION
14567
				INTO
14568
					dpkgVersion
14569
				FROM
14570
					PACKAGE_VERSIONS pv
14571
				WHERE
14572
	   				 pv.PV_ID = pvID;
14573
 
14574
				-- enter a marker row
14575
				/*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
14576
				INSERT INTO RM_PKG_ISSUES ( PKG_ID, PKG_NAME, PV_ID, PKG_VERSION, DPV_ID, DPKG_NAME, DPKG_VERSION, ISS_DB, ISS_ID )
14577
				VALUES (
14578
					top_pkgID,
14579
					top_pkgName,
14580
					top_pvID,
14581
					top_pkgVer,
14582
					pvID,
14583
					dpkgName,
14584
					dpkgVersion,
14585
					NULL,
14586
					NULL );
14587
 
14588
			END IF;
14589
 
14590
			-- If this package version has dependencies then recurse
14591
			SELECT
14592
				COUNT(*)
14593
			INTO
14594
				depCheck
14595
			FROM
14596
				PACKAGE_DEPENDENCIES
14597
			WHERE
14598
				PV_ID = pvID;
14599
 
14600
			IF ( depCheck > 0 ) THEN
14601
				-- get dependencies and call this function recursively for each one
14602
				FOR dep_rec IN  dep_packs_cur
14603
				LOOP
14604
					InsertIssuesForDepends( dep_rec.DPV_ID, top_pkgID, top_pkgName, top_pvID, top_pkgVer );
14605
				END LOOP;
14606
 
14607
			END IF;
14608
 
14609
		END IF;
14610
 
14611
	/*EXCEPTION
14612
		WHEN OTHERS THEN
14613
			no exception handling required
14614
	*/
14615
	END;
14616
 
14617
END Rm_Issues;
4040 dpurdie 14618
 
1374 dpurdie 14619
/
4040 dpurdie 14620
--------------------------------------------------------
14621
--  DDL for Procedure ADD_AUTOBUILD_FAILURE_INFO
14622
--------------------------------------------------------
14623
set define off;
14624
 
5172 dpurdie 14625
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_AUTOBUILD_FAILURE_INFO" (
1373 dpurdie 14626
   nprojid     IN   NUMBER,
14627
   nviewid     IN   NUMBER,
14628
   suserlist   IN   VARCHAR2
14629
)
14630
IS
14631
   groupid   NUMBER;
14632
/******************************************************************************
14633
   NAME:       ADD_AUTOBUILD_FAILURE
14634
   PURPOSE:
14635
 
14636
   REVISIONS:
14637
   Ver        Date        Author           Description
14638
   ---------  ----------  ---------------  ------------------------------------
14639
   1.0        11/04/2006   Rupesh Solanki Created this procedure.
14640
 
14641
   NOTES:
14642
 
14643
   Automatically available Auto Replace Keywords:
14644
      Object Name:     ADD_AUTOBUILD_FAILURE
14645
      Sysdate:         11/04/2006
14646
      Date and Time:   11/04/2006, 9:28:28 AM, and 11/04/2006 9:28:28 AM
14647
      Username:         (set in TOAD Options, Procedure Editor)
14648
      Table Name:       (set in the "New PL/SQL Object" dialog)
14649
 
14650
******************************************************************************/
14651
BEGIN
14652
   BEGIN
14653
      SELECT group_email_id
14654
        INTO groupid
14655
        FROM autobuild_failure
14656
       WHERE proj_id = nprojid AND view_id = nviewid;
14657
   EXCEPTION
14658
      WHEN NO_DATA_FOUND
14659
      THEN
14660
         --  Create Next Sequence Id ---
14661
         SELECT seq_group_email_id.NEXTVAL
14662
           INTO groupid
14663
           FROM DUAL;
14664
 
14665
         INSERT INTO autobuild_failure
14666
                     (group_email_id, proj_id, view_id
14667
                     )
14668
              VALUES (groupid, nprojid, nviewid
14669
                     );
14670
   END;
14671
 
14672
   add_view_members (groupid, suserlist);
14673
END add_autobuild_failure_info;
4040 dpurdie 14674
 
1374 dpurdie 14675
/
4040 dpurdie 14676
--------------------------------------------------------
14677
--  DDL for Procedure ADD_COMPONENT
14678
--------------------------------------------------------
14679
set define off;
14680
 
5172 dpurdie 14681
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_COMPONENT" ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE,
3959 dpurdie 14682
	   	  		  						  	sFileName IN RELEASE_COMPONENTS.FILE_NAME%TYPE,
14683
											sFilePath IN RELEASE_COMPONENTS.FILE_PATH%TYPE DEFAULT NULL,
14684
											nByteSize IN RELEASE_COMPONENTS.BYTE_SIZE%TYPE,
14685
											sCRCcksum IN RELEASE_COMPONENTS.CRC_CKSUM%TYPE DEFAULT NULL,
14686
											sCRCmodcrc IN RELEASE_COMPONENTS.CRC_MODCRC%TYPE DEFAULT NULL
14687
                                           ) IS
14688
/* ---------------------------------------------------------------------------
14689
    Version: 3.0.0
14690
   --------------------------------------------------------------------------- */
1373 dpurdie 14691
 
14692
 
14693
BEGIN
14694
 
3959 dpurdie 14695
	 --- Insert into RELEASE_COMPONENTS
14696
	 INSERT INTO RELEASE_COMPONENTS ( PV_ID, FILE_NAME, FILE_PATH, BYTE_SIZE, CRC_CKSUM, CRC_MODCRC )
14697
	 VALUES ( nPvId, sFileName, sFilePath, nByteSize, sCRCcksum, sCRCmodcrc  );
1373 dpurdie 14698
 
14699
 
3959 dpurdie 14700
 
14701
 
14702
END Add_Component;
4040 dpurdie 14703
 
1374 dpurdie 14704
/
4040 dpurdie 14705
--------------------------------------------------------
14706
--  DDL for Procedure ADD_PACKAGE_INTEREST
14707
--------------------------------------------------------
14708
set define off;
14709
 
5384 dpurdie 14710
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_PACKAGE_INTEREST" (
14711
    nProjId    IN PROJECTS.PROJ_ID%TYPE,
14712
    nPkgIdList IN VARCHAR2,
14713
    nUserId    IN NUMBER )
14714
IS
14715
  npkgidcollector relmgr_number_tab_t := relmgr_number_tab_t ();
14716
  nPkgId        NUMBER;
14717
  alreadyExists NUMBER;
1373 dpurdie 14718
BEGIN
5384 dpurdie 14719
  npkgidcollector := in_list_number2 (nPkgIdList);
14720
  FOR i IN 1..npkgidcollector.COUNT
14721
  LOOP
14722
    nPkgId := npkgidcollector(i);
14723
    --- Ensure it doesn't already exist
14724
    SELECT COUNT(*)
14725
    INTO alreadyExists
14726
    FROM PACKAGE_INTEREST
14727
    WHERE USER_ID      = nUserId
14728
    AND PKG_ID         = nPkgId
14729
    AND PROJ_ID        = nProjId;
14730
 
14731
    IF ( alreadyExists = 0 ) THEN
14732
      --- Insert into PACKAGE_INTEREST TABLE
14733
      INSERT
14734
        INTO PACKAGE_INTEREST (PROJ_ID, PKG_ID, USER_ID )
14735
        VALUES (nProjId, nPkgId, nUserId );
14736
    END IF;
14737
  END LOOP;
3959 dpurdie 14738
END ADD_PACKAGE_INTEREST;
4040 dpurdie 14739
 
3959 dpurdie 14740
/
4040 dpurdie 14741
--------------------------------------------------------
14742
--  DDL for Procedure ADD_RUNTIME_DEPENDENCY
14743
--------------------------------------------------------
14744
set define off;
14745
 
5172 dpurdie 14746
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_RUNTIME_DEPENDENCY" ( NNpv_id IN NUMBER,
3959 dpurdie 14747
                                                     SSrtd_name IN PACKAGES.pkg_name%TYPE,
14748
                                                     SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
14749
                                                     NNuser_id IN NUMBER
14750
                                                    ) IS
1373 dpurdie 14751
/* ---------------------------------------------------------------------------
3959 dpurdie 14752
    Version: 3.1
1373 dpurdie 14753
   --------------------------------------------------------------------------- */
14754
 
3959 dpurdie 14755
    retRTD_ID NUMBER;
14756
 
14757
	CURSOR rtd_cur IS
14758
        SELECT rtd_id FROM runtime_dependencies WHERE pv_id = NNpv_id AND rtd_id = retRTD_ID;
14759
    rtd_rec rtd_cur%ROWTYPE;
14760
 
1373 dpurdie 14761
BEGIN
3959 dpurdie 14762
    --- Seed database with package_name and version if required ---
14763
    Seed_Package_Names_Versions ( SSrtd_name, SSrtd_version, NNuser_id, retRTD_ID );
1373 dpurdie 14764
 
3959 dpurdie 14765
	OPEN rtd_cur;
14766
    FETCH rtd_cur INTO rtd_rec;
1373 dpurdie 14767
 
3959 dpurdie 14768
    IF rtd_cur%NOTFOUND
14769
    THEN
14770
		/* Make sure it does not exists already as runtime dependency */
1373 dpurdie 14771
 
3959 dpurdie 14772
		--- Add new Runtime Dependency ---
14773
	    INSERT INTO runtime_dependencies ( pv_id, rtd_id, mod_date, mod_user )
14774
	    VALUES (  NNpv_id, retRTD_ID, ORA_SYSDATE , NNuser_id );
1373 dpurdie 14775
 
3959 dpurdie 14776
    	/* LOG ACTION */
14777
        Log_Action ( NNpv_id, 'runtime_add', NNuser_id,
14778
    			     'Runtime package: '|| SSrtd_name ||' '|| SSrtd_version );
14779
 
14780
	END IF;
14781
 
14782
 
14783
END Add_Runtime_Dependency;
4040 dpurdie 14784
 
1374 dpurdie 14785
/
4040 dpurdie 14786
--------------------------------------------------------
14787
--  DDL for Procedure ADD_VIEW_MEMBERS
14788
--------------------------------------------------------
14789
set define off;
14790
 
5172 dpurdie 14791
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_VIEW_MEMBERS" (nGroupId IN NUMBER, sUserList IN VARCHAR2) IS
3959 dpurdie 14792
 
14793
/******************************************************************************
14794
   NAME:       ADD_VIEW_MEMBERS
14795
   PURPOSE:    
14796
 
14797
   REVISIONS:
14798
   Ver        Date        Author           Description
14799
   ---------  ----------  ---------------  ------------------------------------
14800
   1.0        11/04/2006          1. Created this procedure.
14801
 
14802
   NOTES:
14803
 
14804
   Automatically available Auto Replace Keywords:
14805
      Object Name:     ADD_VIEW_MEMBERS
14806
      Sysdate:         11/04/2006
14807
      Date and Time:   11/04/2006, 9:52:58 AM, and 11/04/2006 9:52:58 AM
14808
      Username:         (set in TOAD Options, Procedure Editor)
14809
      Table Name:       (set in the "New PL/SQL Object" dialog)
14810
 
14811
******************************************************************************/
14812
CURSOR user_cur IS
14813
	SELECT u.USER_ID
14814
	  FROM USERS u
14815
	 WHERE u.USER_ID IN (
14816
	 	   			   	SELECT * 
14817
						  FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserList ) AS RELMGR_NUMBER_TAB_t ) FROM dual ) 
14818
						);
14819
user_rec user_cur%ROWTYPE;
14820
 
14821
 
14822
BEGIN
14823
 
14824
	 OPEN user_cur;
14825
	 FETCH user_cur INTO user_rec;
14826
 
14827
	 WHILE user_cur%FOUND
14828
	 LOOP
14829
	 	 INSERT INTO MEMBERS_GROUP (GROUP_EMAIL_ID, USER_ID)
14830
	 	 VALUES ( nGroupId, user_rec.USER_ID);
14831
 
14832
	 	 FETCH user_cur INTO user_rec;	 
14833
	 END LOOP;	 
14834
 
14835
 
14836
 
14837
END ADD_VIEW_MEMBERS;
4040 dpurdie 14838
 
1374 dpurdie 14839
/
4040 dpurdie 14840
--------------------------------------------------------
14841
--  DDL for Procedure BASIC_CLONE
14842
--------------------------------------------------------
14843
set define off;
14844
 
5502 dpurdie 14845
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."BASIC_CLONE" ( 
14846
        nFROMpv_id IN NUMBER,
14847
        nTOpv_id IN NUMBER,
14848
        nRtag_id IN NUMBER,
14849
        nUser_id IN NUMBER,
14850
        nTOpkg_id IN NUMBER DEFAULT NULL,
14851
        enumISSUES_STATE_IMPORTED IN NUMBER DEFAULT NULL ) IS
1373 dpurdie 14852
 
14853
   FromVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
14854
   major NUMBER;
14855
   minor NUMBER;
14856
   patch NUMBER;
14857
   buildn NUMBER;
14858
   from_vcs_type_id NUMBER;
14859
BEGIN
14860
------------------------------ Version Control System ------------------------------------------
14861
   SELECT vcs_type_id
14862
      INTO from_vcs_type_id
14863
      FROM package_versions WHERE pv_id = nFROMpv_id;
14864
 
14865
   UPDATE package_versions
14866
      SET vcs_type_id = from_vcs_type_id
14867
      WHERE pv_id = nTOpv_id;
14868
------------------------------------- Limits ---------------------------------------------------
14869
   select major_limit, minor_limit, patch_limit, build_number_limit
14870
   into major, minor, patch, buildn
14871
   from package_versions where pv_id=nFROMpv_id;
14872
    UPDATE package_versions SET
14873
           major_limit = major,
14874
           minor_limit = minor,
14875
           patch_limit = patch,
14876
           build_number_limit = buildn
14877
     WHERE PV_ID = nTOpv_id;
14878
------------------------------------- Clone Dependencies ---------------------------------------------------
14879
   IF NOT nRtag_id IS NULL
14880
   THEN
14881
      -- Auto Update Dependencies --
14882
      INSERT INTO PACKAGE_DEPENDENCIES
14883
           SELECT nTOpv_id AS pv_id,
14884
                  DECODE(nUser_id,
14885
                         frc.modifier_id,
14886
                         frc.pv_id,
14887
                         DECODE(frc.dlocked,
14888
                                'Y',
14889
                                frc.pv_id,
14890
                                dep.dpv_id)
14891
                         ) AS dpv_id,
14892
                  nTOpkg_id AS pkg_id,
14893
                  dep.dpkg_id,
14894
                  dep.build_type,
14895
                  dep.display_order
14896
             FROM PACKAGE_DEPENDENCIES dep,
14897
                  PACKAGE_VERSIONS pv,
14898
                  (
14899
                  /* Full Release Contents used for reference*/
14900
                  SELECT rpv.pv_id, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext, rpv.modifier_id, rpv.dlocked
14901
                  FROM RELEASE_CONTENT rel, PACKAGE_VERSIONS rpv
14902
                  WHERE rel.pv_id = rpv.pv_id AND rtag_id = nRtag_id
14903
                  ) frc
14904
            WHERE dep.pv_id = nFROMpv_id
14905
              AND dep.dpv_id = pv.pv_id
14906
              AND pv.pkg_id = frc.pkg_id(+)
14907
              AND NVL(pv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+);
14908
   ELSE
14909
      -- Clone Dependencies --
14910
      INSERT INTO PACKAGE_DEPENDENCIES
14911
           SELECT nTOpv_id         AS pv_id,
14912
                  dep.dpv_id,
14913
                  nTOpkg_id        AS pkg_id,
14914
                  dep.dpkg_id,
14915
                  dep.build_type,
14916
                  dep.display_order
14917
             FROM PACKAGE_DEPENDENCIES dep
14918
            WHERE dep.pv_id = nFROMpv_id;
14919
 
14920
   END IF;
14921
 
14922
----------------------------------------- Clone Issues -------------------------------------------------------
14923
   IF enumISSUES_STATE_IMPORTED IS NULL
14924
   THEN
14925
        /* All Issues */
14926
       INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
14927
            SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
14928
              FROM CQ_ISSUES
14929
             WHERE pv_id = nFROMpv_id;
14930
   ELSE
14931
       /* Outstanding Issues Only */
14932
       INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
14933
            SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
14934
              FROM CQ_ISSUES
14935
             WHERE pv_id = nFROMpv_id
14936
               AND iss_state = enumISSUES_STATE_IMPORTED;
14937
   END IF;
14938
 
14939
------------------------------------ Clone Runtime Dependencies -----------------------------------------------
14940
   INSERT INTO RUNTIME_DEPENDENCIES (pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user)
14941
       SELECT nTOpv_id AS pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user
14942
       FROM RUNTIME_DEPENDENCIES WHERE pv_id = nFROMpv_id;
14943
 
14944
--------------------------------------- Clone Additional Notes ------------------------------------------------
14945
   INSERT INTO ADDITIONAL_NOTES ( NOTE_ID, PV_ID, NOTE_TITLE, NOTE_BODY, MOD_DATE, MOD_USER )
14946
        SELECT an.NOTE_ID,
14947
               nTOpv_id AS PV_ID,
14948
               an.NOTE_TITLE,
14949
               an.NOTE_BODY,
14950
               an.MOD_DATE,
14951
               an.MOD_USER
14952
          FROM ADDITIONAL_NOTES an
14953
         WHERE an.PV_ID = nFROMpv_id;
14954
 
14955
-------------------------------------------- Clone Unit Tests -------------------------------------------------
5502 dpurdie 14956
-- Only clone 'Auto Unit Test', 'Interactive Unit Test' and 'Autobuild UTF'
14957
-- Only clone the basic information: TEST_SUMMARY
1373 dpurdie 14958
 
14959
    INSERT INTO UNIT_TESTS (
14960
                            TEST_ID,
14961
                            PV_ID,
14962
                            TEST_TYPES_FK,
14963
                            TEST_SUMMARY
14964
                           )
14965
       SELECT ut.TEST_ID,
14966
              nTOpv_id AS PV_ID,
14967
              ut.TEST_TYPES_FK,
14968
              ut.TEST_SUMMARY
14969
         FROM UNIT_TESTS ut
14970
        WHERE ut.PV_ID = nFROMpv_id
5502 dpurdie 14971
          AND ut.TEST_TYPES_FK IN (5,6,7);
1373 dpurdie 14972
 
14973
-------------------------------------------- Clone Package Documents ------------------------------------------
14974
   INSERT INTO PACKAGE_DOCUMENTS ( PV_ID, TEST_ID, DOC_NUM, DOC_ID, IS_LATEST )
14975
        SELECT nTOpv_id AS PV_ID,
14976
               pd.test_id,
14977
               pd.doc_num,
14978
               pd.doc_id,
14979
               pd.IS_LATEST
14980
          FROM PACKAGE_DOCUMENTS pd
14981
         WHERE pd.PV_ID = nFROMpv_id;
14982
 
14983
-------------------------------------------- Clone Build Environments -----------------------------------------
14984
    INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID, BUILD_TYPE )
14985
    SELECT nTOpv_id AS PV_ID,
14986
           pkgbe.BE_ID,
14987
           pkgbe.BUILD_TYPE
14988
      FROM PACKAGE_BUILD_ENV pkgbe
14989
     WHERE pkgbe.PV_ID = nFROMpv_id;
5502 dpurdie 14990
 
1373 dpurdie 14991
---------------------------------------------Clone Package Build Info------------------------------------------
14992
    INSERT INTO PACKAGE_BUILD_INFO (PV_ID, BM_ID, BSA_ID)
14993
    SELECT nTOpv_id AS PV_ID,
14994
           pkgbinfo.BM_ID,
14995
           pkgbinfo.BSA_ID
14996
      FROM PACKAGE_BUILD_INFO pkgbinfo
14997
     WHERE pkgbinfo.PV_ID = nFROMpv_id;
5502 dpurdie 14998
 
1373 dpurdie 14999
---------------------------------------------Clone Package Version Processes-----------------------------------
15000
    INSERT INTO PACKAGE_PROCESSES ( PV_ID, PROC_ID )
15001
    SELECT nTOpv_id AS PV_ID,
15002
           pp.PROC_ID
15003
      FROM PACKAGE_PROCESSES pp
15004
     WHERE pp.PV_ID = nFROMpv_id;
5502 dpurdie 15005
 
1373 dpurdie 15006
---------------------------------------------Clone Licencing Associations-----------------------------------
15007
    PK_LICENCING.CLONE_LICENCING(nFROMpv_id, nTOpv_id, nUser_id);
15008
---------------------------------------------------------------------------------------------------------------
15009
 
15010
    /* LOG ACTION */
15011
    SELECT pv.PKG_VERSION INTO FromVersion
15012
      FROM PACKAGE_VERSIONS pv
15013
     WHERE pv.PV_ID = nFROMpv_id;
15014
 
15015
    Log_Action ( nTOpv_id, 'clone_from', nUser_id,
15016
                 'Details cloned from: '|| FromVersion );
15017
 
15018
---------------------------------------------------------------------------------------------------------------
15019
 
15020
END Basic_Clone;
4040 dpurdie 15021
 
1374 dpurdie 15022
/
4040 dpurdie 15023
--------------------------------------------------------
15024
--  DDL for Procedure BUILD_TREE
15025
--------------------------------------------------------
15026
set define off;
15027
 
5172 dpurdie 15028
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."BUILD_TREE" ( nRtag_id IN NUMBER,
3959 dpurdie 15029
	   	  		  					     retSessionNum OUT NUMBER ) IS
15030
 
1373 dpurdie 15031
/* ---------------------------------------------------------------------------
3959 dpurdie 15032
    Version: 3.0.0
1373 dpurdie 15033
   --------------------------------------------------------------------------- */
3959 dpurdie 15034
    rowCnt 			NUMBER := 0;						-- Iterations counter
15035
    iteration 		NUMBER := 1;                  -- Maximum number of iterations allowed.
15036
    maxIterations 	NUMBER := 50;      	  	-- This will prevent infinite loops if cyrcular dependencies are found
15037
	UP_THE_TREE 	CONSTANT NUMBER DEFAULT 1;
15038
	DOWN_THE_TREE 	CONSTANT NUMBER DEFAULT -1;
15039
    sessionNum 		NUMBER;
15040
	levelNum		NUMBER;
15041
 
15042
BEGIN
15043
    SELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;
15044
 
15045
	/*
15046
	||	   Start UP THE TREE
15047
	*/
15048
 
15049
 
15050
	/* Packages with no dependencies */    
15051
    INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
15052
		SELECT sessionNum AS SESSION_NUM,
15053
			   iteration AS LEVEL_NUM,
15054
			   UP_THE_TREE AS DIRECTION,
15055
			   rc.pv_id, pv.pkg_id, pv.v_ext
15056
		  FROM release_content rc,
15057
		  	   package_versions pv
15058
		 WHERE rc.rtag_id = nRtag_id
15059
		   AND rc.pv_id = pv.pv_id
15060
		 MINUS
15061
		SELECT sessionNum AS SESSION_NUM, 
15062
			   iteration AS LEVEL_NUM,
15063
			   UP_THE_TREE AS DIRECTION,
15064
			   dep.pv_id, pv.pkg_id, pv.v_ext
15065
		  FROM package_dependencies dep,
15066
		  	   package_versions pv
15067
		 WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtag_id )
15068
		   AND dep.pv_id = pv.pv_id;
15069
 
15070
 
15071
	/* Browse UP the build tree */	   
15072
	iteration := iteration + 1;
15073
    LOOP
15074
 
15075
		INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
15076
			SELECT DISTINCT 
15077
			       sessionNum AS SESSION_NUM,
15078
			       iteration AS LEVEL_NUM,
15079
				   UP_THE_TREE AS DIRECTION, 
15080
				   rdep.pv_id, rdep.pkg_id, rdep.v_ext
15081
			  FROM (  
15082
			        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
15083
			          FROM package_dependencies dep,
15084
			               release_content rc,
15085
						   package_versions pv,
15086
						   package_versions dpv
15087
			         WHERE dep.pv_id = rc.pv_id
15088
			           AND rc.rtag_id = nRtag_id
15089
					   AND dep.pv_id = pv.pv_id
15090
					   AND dep.dpv_id = dpv.pv_id
15091
					) rdep,
15092
					temp_tree_browse ttb
15093
			 WHERE rdep.dpkg_id  = ttb.pkg_id
15094
			   AND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext,'|LINK_A_NULL|')
15095
			   AND ttb.SESSION_NUM = sessionNum
15096
			   AND ttb.LEVEL_NUM = iteration - 1	
15097
			MINUS
15098
			/* Packages with all depencencies NOT matched */  
15099
			SELECT DISTINCT 
15100
			       sessionNum AS SESSION_NUM,
15101
			       iteration AS LEVEL_NUM, 
15102
				   UP_THE_TREE AS DIRECTION,
15103
				   rdep.pv_id, rdep.pkg_id, rdep.v_ext
15104
			  FROM (  
15105
			        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
15106
			          FROM package_dependencies dep,
15107
			               release_content rc,
15108
						   package_versions pv,
15109
						   package_versions dpv
15110
			         WHERE dep.pv_id = rc.pv_id
15111
			           AND rc.rtag_id = nRtag_id
15112
					   AND dep.pv_id = pv.pv_id
15113
					   AND dep.dpv_id = dpv.pv_id
15114
					) rdep,
15115
					(
15116
					 SELECT tb.*
15117
					   FROM temp_tree_browse tb
15118
					  WHERE tb.SESSION_NUM = sessionNum
15119
					) ttb
15120
			 WHERE rdep.dpkg_id  = ttb.pkg_id (+)
15121
			   AND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext (+),'|LINK_A_NULL|')
15122
			   AND ttb.SESSION_NUM IS NULL;
15123
 
15124
		rowCnt := SQL%ROWCOUNT;
15125
		IF rowCnt > 0 THEN
15126
           iteration := iteration + 1;
15127
		END IF;
15128
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
15129
    END LOOP;
15130
 
15131
	/*---------------------------------------------------------------------------------------------------------------------*/
15132
 
15133
	/*     Check for unresolved dependencies
15134
	||  
15135
	*/
15136
	/* UNRESOLVED */
15137
	 SELECT COUNT(*) INTO rowCnt
15138
	   FROM (
15139
			 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
15140
			  FROM release_content rc,
15141
			  	   package_versions pv
15142
			 WHERE rc.rtag_id = nRtag_id
15143
			   AND rc.pv_id = pv.pv_id	   
15144
			MINUS
15145
			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
15146
			  FROM temp_tree_browse ttb
15147
			 WHERE ttb.session_num = sessionNum
15148
			);
15149
 
15150
 
15151
 
15152
	 IF rowCnt > 0 
15153
	 THEN
15154
	 	 /*     Circular dependencies detected.
15155
		 ||     Try to resolve build order from the top now.
15156
		 ||		Start DOWN THE TREE
15157
		 */
15158
 
15159
		iteration := 0; 
15160
		 /* Top Level packages */	
15161
		INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )	   
15162
			SELECT sessionNum AS SESSION_NUM,
15163
			       iteration AS LEVEL_NUM,
15164
				   DOWN_THE_TREE AS DIRECTION,
15165
				   pv.pv_id, pv.pkg_id, pv.v_ext
15166
			  FROM (		   
15167
					/* Packages no one depends on ( Top level packages )*/
15168
					( 
15169
					/* All parents*/ 
15170
					SELECT pv.pkg_id, pv.v_ext
15171
			          FROM package_dependencies dep,
15172
			               release_content rc,
15173
						   package_versions pv
15174
			         WHERE dep.pv_id = rc.pv_id
15175
			           AND rc.rtag_id = nRtag_id
15176
					   AND dep.pv_id = pv.pv_id
15177
					 MINUS
15178
					 /* All children */
15179
					SELECT dpv.pkg_id, dpv.v_ext
15180
			          FROM package_dependencies dep,
15181
			               release_content rc,
15182
						   package_versions dpv
15183
			         WHERE dep.pv_id = rc.pv_id
15184
			           AND rc.rtag_id = nRtag_id
15185
					   AND dep.dpv_id = dpv.pv_id
15186
					 ) 
15187
					 MINUS
15188
					/* Packages with resolved dependencies from UP THE TREE */ 
15189
					SELECT ttb.pkg_id, ttb.v_ext
15190
					  FROM temp_tree_browse ttb
15191
					 WHERE ttb.session_num = sessionNum
15192
				  ) tpkg,
15193
				  package_versions pv,
15194
				  release_content rc
15195
			WHERE rc.rtag_id = nRtag_id
15196
			  AND rc.pv_id = pv.pv_id
15197
			  AND tpkg.pkg_id = pv.pkg_id
15198
			  AND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');
15199
 
15200
 
15201
		 /* Keep taking packages which no one depende on */			  
15202
		 iteration := iteration - 1;  
15203
		 LOOP	  
15204
			   INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
15205
					SELECT sessionNum AS SESSION_NUM,
15206
					       iteration AS LEVEL_NUM,
15207
					       DOWN_THE_TREE AS DIRECTION,
15208
					       pv.pv_id, pv.pkg_id, pv.v_ext
15209
					  FROM (		   
15210
					 	/* All Unresolved */
15211
					 	(
15212
					 	SELECT pv.pkg_id, pv.v_ext
15213
					 	  FROM release_content rc,
15214
					 	  	   package_versions pv
15215
					 	 WHERE rc.rtag_id = nRtag_id
15216
					 	   AND rc.pv_id = pv.pv_id	   
15217
					 	MINUS
15218
					 	SELECT ttb.pkg_id, ttb.v_ext
15219
					 	  FROM temp_tree_browse ttb
15220
					 	 WHERE ttb.session_num = sessionNum
15221
					 	)
15222
					 	 MINUS
15223
					 	(  
15224
					 	 /* Children of Unresolved */  
15225
					 	SELECT dpv.pkg_id, dpv.V_EXT
15226
					 	  FROM (
15227
					 			SELECT pv.pv_id, pv.pkg_id, pv.v_ext
15228
					 			  FROM release_content rc,
15229
					 			  	   package_versions pv
15230
					 			 WHERE rc.rtag_id = nRtag_id
15231
					 			   AND rc.pv_id = pv.pv_id	   
15232
					 			MINUS
15233
					 			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
15234
					 			  FROM temp_tree_browse ttb
15235
					 			 WHERE ttb.session_num = sessionNum
15236
					 		   ) unr,
15237
					 		   package_dependencies dep,
15238
					 		   package_versions dpv
15239
					 	 WHERE unr.pv_id = dep.pv_id
15240
					 	   AND dep.dpv_id = dpv.pv_id
15241
					 	 )  
15242
					   ) tpkg,
15243
					   package_versions pv,
15244
					   release_content rc
15245
					WHERE rc.rtag_id = nRtag_id
15246
					  AND rc.pv_id = pv.pv_id
15247
					  AND tpkg.pkg_id = pv.pkg_id
15248
					  AND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');
15249
 
15250
            rowCnt := SQL%ROWCOUNT;
15251
        	IF rowCnt > 0 THEN
15252
	           iteration := iteration - 1;
15253
			END IF;
15254
            EXIT WHEN (rowCnt < 1);
15255
     	END LOOP;
15256
 
15257
	 END IF;
15258
 
15259
 
15260
	/*---------------------------------------------------------------------------------------------------------------------*/
15261
 
15262
	/* 
15263
	|| 	 Save results from temp table
15264
	*/	
15265
	/* Clean up build_order table */
15266
	DELETE FROM BUILD_ORDER WHERE rtag_id = nRtag_id;
15267
 
15268
	/* Save UP THE TREE */
15269
	INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )
15270
		SELECT nRtag_id AS rtag_id,
15271
			   ttb.level_num AS step_num, 
15272
			   ttb.PV_ID
15273
		  FROM temp_tree_browse ttb
15274
		 WHERE ttb.session_num = sessionNum
15275
		   AND ttb.direction = UP_THE_TREE;	
15276
 
15277
	/*Get last step_num */
15278
	SELECT MAX(ttb.level_num) + 1 INTO levelNum
15279
	FROM temp_tree_browse ttb WHERE ttb.session_num = sessionNum AND ttb.DIRECTION = UP_THE_TREE;
15280
 
15281
	/* UNRESOLVED */
15282
	 SELECT COUNT(*) INTO rowCnt
15283
	   FROM (
15284
			 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
15285
			  FROM release_content rc,
15286
			  	   package_versions pv
15287
			 WHERE rc.rtag_id = nRtag_id
15288
			   AND rc.pv_id = pv.pv_id	   
15289
			MINUS
15290
			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
15291
			  FROM temp_tree_browse ttb
15292
			 WHERE ttb.session_num = sessionNum
15293
			);
15294
 
15295
 
15296
	IF rowCnt > 0
15297
	THEN
15298
		/* Save unresolved packages */
15299
 		INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID, UNRESOLVED )
15300
		    SELECT  nRtag_id AS rtag_id,
15301
				    levelNum AS step_num, 
15302
				    upv.PV_ID,
15303
					'Y' AS UNRESOLVED
15304
			   FROM (
15305
					 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
15306
					  FROM release_content rc,
15307
					  	   package_versions pv
15308
					 WHERE rc.rtag_id = nRtag_id
15309
					   AND rc.pv_id = pv.pv_id	   
15310
					MINUS
15311
					SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
15312
					  FROM temp_tree_browse ttb
15313
					 WHERE ttb.session_num = sessionNum
15314
					) upv;
15315
	END IF;	
15316
 
15317
	/* Save DOWN THE TREE */
15318
	levelNum := 1000;
15319
	INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )
15320
		SELECT nRtag_id AS rtag_id,
15321
			   levelNum + ttb.level_num  AS step_num, 
15322
			   ttb.PV_ID
15323
		  FROM temp_tree_browse ttb
15324
		 WHERE ttb.session_num = sessionNum
15325
		   AND ttb.direction = DOWN_THE_TREE;
15326
 
15327
 
15328
	/*---------------------------------------------------------------------------------------------------------------------*/
15329
 
15330
	/* Clean up temp table */
15331
	DELETE FROM TEMP_TREE_BROWSE WHERE session_num = sessionNum;
15332
 
15333
	retSessionNum := sessionNum;
15334
END Build_Tree;
4040 dpurdie 15335
 
3959 dpurdie 15336
/
4040 dpurdie 15337
--------------------------------------------------------
15338
--  DDL for Procedure CHANGE_PACKAGE_STATE
15339
--------------------------------------------------------
15340
set define off;
15341
 
5172 dpurdie 15342
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHANGE_PACKAGE_STATE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 15343
											 nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS
15344
/* ---------------------------------------------------------------------------
15345
    Version: 4.0
15346
   --------------------------------------------------------------------------- */
1373 dpurdie 15347
 
15348
BEGIN
15349
 
3959 dpurdie 15350
    -- Unlock Package
15351
    UPDATE RELEASE_CONTENT rc SET
15352
    	rc.PKG_STATE = 0
15353
    WHERE rc.PV_ID = nPvId
15354
	AND rc.RTAG_ID = nRtagId;
1373 dpurdie 15355
 
3959 dpurdie 15356
    /* LOG ACTION */
15357
   /*	Log_Action ( nPvId, 'unlock_package', nUserId );*/
1373 dpurdie 15358
 
3959 dpurdie 15359
END Change_Package_State;
4040 dpurdie 15360
 
1374 dpurdie 15361
/
4040 dpurdie 15362
--------------------------------------------------------
15363
--  DDL for Procedure CHANGE_RELEASE_MODE
15364
--------------------------------------------------------
15365
set define off;
15366
 
5172 dpurdie 15367
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHANGE_RELEASE_MODE" ( nModeCode IN NUMBER, nRtagId IN NUMBER, UserId IN NUMBER ) IS
3959 dpurdie 15368
/* ---------------------------------------------------------------------------
15369
    Version: 3.0.0
15370
   --------------------------------------------------------------------------- */
1373 dpurdie 15371
 
3959 dpurdie 15372
	cMode CHAR(1) := NULL;  
15373
	nProjId NUMBER; 
1373 dpurdie 15374
 
15375
BEGIN
3959 dpurdie 15376
 
1373 dpurdie 15377
 
3959 dpurdie 15378
	/*
15379
	Author: Rupesh Solanki
15380
	Modified: 24th October 2006
15381
	Reason: Added the archive mode state into Release Manager 
15382
	||	1 - Open Mode
15383
	||	2 - Restrictive Mode
15384
	||	3 - Closed Mode
15385
	||	4 - CCB Mode
15386
	||	5 - Archive Mode
5384 dpurdie 15387
  ||  6 - Preserve Mode
3959 dpurdie 15388
	*/	
15389
	-- Get project Id
15390
	SELECT rt.PROJ_ID INTO nProjId
15391
	  FROM RELEASE_TAGS rt
15392
	 WHERE rt.RTAG_ID = nRtagId; 
15393
 
15394
	IF nModeCode = 1 THEN
15395
		-- Open Mode
15396
		cMode := 'N';
15397
 
15398
		/* LOG ACTION */
15399
   		Log_Project_Action ( nProjId, 'set_to_open_mode', UserId, 'Release is set to Open Mode', nRtagId );
15400
 
15401
	ELSIF nModeCode = 2 THEN
15402
		-- Restrictive Mode
15403
		cMode := 'R';
15404
 
15405
		/* LOG ACTION */
15406
   		Log_Project_Action ( nProjId, 'set_to_restrictive_mode', UserId, 'Release is set to Restrictive Mode', nRtagId );
15407
 
15408
	ELSIF nModeCode = 3 THEN
15409
		-- Closed Mode
15410
		cMode := 'Y';
15411
 
15412
		/* LOG ACTION */
15413
   		Log_Project_Action ( nProjId, 'set_to_closed_mode', UserId, 'Release is set to Closed Mode', nRtagId  );
1373 dpurdie 15414
 
3959 dpurdie 15415
	ELSIF nModeCode = 4 THEN
15416
		-- CCB Mode
15417
		cMode := 'C';
15418
 
15419
		/* LOG ACTION */
15420
   		Log_Project_Action ( nProjId, 'set_to_ccb_mode', UserId, 'Release is set to CCB Mode', nRtagId  );
15421
 
15422
	ELSIF nModeCode = 5 THEN
15423
		-- Archive Mode
15424
		cMode := 'A';
15425
 
15426
		/* LOG ACTION */
15427
   		Log_Project_Action ( nProjId, 'set_to_archive_mode', UserId, 'Release is set to Archive Mode', nRtagId  );	
15428
 
5384 dpurdie 15429
  ELSIF nModeCode = 6 THEN
15430
		-- Archive Mode
15431
		cMode := 'P';
3959 dpurdie 15432
 
5384 dpurdie 15433
		/* LOG ACTION */
15434
   		Log_Project_Action ( nProjId, 'set_to_archive_mode', UserId, 'Release is set to Preserve Mode', nRtagId  );		
3959 dpurdie 15435
	END IF;
15436
 
15437
 
15438
 
15439
	-- Now update table
15440
	IF NOT cMode IS NULL THEN
15441
		UPDATE RELEASE_TAGS rt SET
4211 dpurdie 15442
		rt.OFFICIAL = cMode,
15443
    rt.OFFICIAL_STAMP = ORA_SYSDATETIME,
15444
    rt.OFFICIAL_ID = UserId
3959 dpurdie 15445
		WHERE rt.RTAG_ID = nRtagId;
15446
 
15447
	END IF;
1373 dpurdie 15448
 
15449
 
3959 dpurdie 15450
END CHANGE_RELEASE_MODE;
4040 dpurdie 15451
 
1374 dpurdie 15452
/
4040 dpurdie 15453
--------------------------------------------------------
15454
--  DDL for Procedure CHECK_NEW_PATCHES
15455
--------------------------------------------------------
15456
set define off;
15457
 
5172 dpurdie 15458
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHECK_NEW_PATCHES" (
3959 dpurdie 15459
   nrtagid   IN   release_content.rtag_id%TYPE
1373 dpurdie 15460
)
15461
IS
15462
/* ---------------------------------------------------------------------------
3959 dpurdie 15463
    Version: 3.0
1373 dpurdie 15464
   --------------------------------------------------------------------------- */
15465
BEGIN
3959 dpurdie 15466
   /*--------------- Business Rules Here -------------------*/
15467
   /*IF nRtagId NOT IN (SELECT RTAG_ID FROM RELEASE_TAGS ) THEN
15468
      RAISE_APPLICATION_ERROR (-20000, 'Please contact the person in charge of Release Manager now.' );
15469
   END IF
15470
 
15471
   /*-------------------------------------------------------*/
15472
   UPDATE release_content rc
15473
      SET rc.pkg_state = 5                          -- enumPKG_STATE_NEW_PATCH
15474
    WHERE rc.pv_id IN (
15475
             SELECT prod.pv_id
15476
               FROM (SELECT   pp.pv_id AS orig_parent_id,
15477
                              COUNT (*) AS num_of_patches
15478
                         FROM release_content rc, package_patches pp
15479
                        WHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagid
15480
                     GROUP BY pp.pv_id) orig,
15481
                    (SELECT   prodpp.pv_id, pp.pv_id AS parent_id,
15482
                              COUNT (*) AS num_of_patches
15483
                         FROM release_content rc,
15484
                              package_patches pp,
15485
                              package_dependencies dep,
15486
                              package_versions pv,
15487
                              package_patches prodpp
15488
                        WHERE rc.pv_id = pp.pv_id
15489
                          AND rc.rtag_id = nrtagid
15490
                          AND pp.patch_id = dep.dpv_id
15491
                          AND dep.pv_id = pv.pv_id
15492
                          AND pv.is_patch = 'Y'
15493
                          AND pv.dlocked = 'Y'
15494
                          AND prodpp.patch_id = dep.pv_id
15495
                     GROUP BY prodpp.pv_id, pp.pv_id) prod,
15496
                    release_content rc
15497
              WHERE orig.orig_parent_id = prod.pv_id
15498
                AND orig.num_of_patches != prod.num_of_patches
15499
                AND rc.rtag_id = nrtagid
15500
                AND rc.pv_id = prod.pv_id
15501
                AND rc.pkg_state = 0
15502
             UNION
15503
             SELECT   prodpp.pv_id
15504
                 FROM release_content rc,
15505
                      package_patches pp,
15506
                      package_dependencies dep,
1373 dpurdie 15507
                      package_versions pv,
3959 dpurdie 15508
                      package_patches prodpp
15509
                WHERE rc.pv_id = pp.pv_id
15510
                  AND rc.rtag_id = nrtagid
15511
                  AND pp.patch_id = dep.dpv_id
1373 dpurdie 15512
                  AND dep.pv_id = pv.pv_id
3959 dpurdie 15513
                  AND pv.is_patch = 'Y'
15514
                  AND pv.dlocked = 'Y'
15515
                  AND prodpp.patch_id = dep.pv_id
15516
             GROUP BY prodpp.pv_id, pp.pv_id
15517
             MINUS
15518
             SELECT   pp.pv_id
15519
                 FROM release_content rc, package_patches pp
15520
                WHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagid
15521
             GROUP BY pp.pv_id);
15522
END check_new_patches;
4040 dpurdie 15523
 
1374 dpurdie 15524
/
4040 dpurdie 15525
--------------------------------------------------------
15526
--  DDL for Procedure CLEAN_ADVISORY_RIPPLE
15527
--------------------------------------------------------
15528
set define off;
15529
 
5172 dpurdie 15530
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAN_ADVISORY_RIPPLE" (nrtagid IN NUMBER)
3959 dpurdie 15531
IS
15532
/******************************************************************************
15533
   NAME:       clean_advisory_ripple
1373 dpurdie 15534
 
3959 dpurdie 15535
   PURPOSE:    To delete entries from the advisory_ripple table based upon
15536
               an RTAG_ID only
1373 dpurdie 15537
 
3959 dpurdie 15538
               This is a tidy-up operation performed against the advisory_ripple
15539
               table, ensuring that the table does not have rtag_id/pv_id
15540
               combinations that cannot be found in the release's wip/pending/release
15541
               tabs.
15542
 
15543
******************************************************************************/
1373 dpurdie 15544
BEGIN
3959 dpurdie 15545
   -- Delete any invalid rtag_id/pv_id combination from the advisory_ripple table.
15546
   -- An invalid rtag_id/pv_id combination is one that cannot be found in the
15547
   -- work_in_progress, planned, or release_content table.
15548
   -- NOTE: Planned operations that represent pending additive/subtractive merge
15549
   -- operations are ignored because they have not been approved yet and so
15550
   -- cannot be said to be "in the release".
15551
   DELETE FROM advisory_ripple
15552
         WHERE rtag_id = nrtagid
15553
           AND pv_id not in
15554
               ((SELECT pv_id FROM release_content WHERE rtag_id = nrtagid)
15555
                 UNION
15556
                (SELECT pv_id FROM work_in_progress WHERE rtag_id = nrtagid)
15557
                 UNION
15558
                (SELECT pv_id FROM planned WHERE rtag_id = nrtagid AND (operation is null OR operation = 'R'))
15559
               );
15560
END clean_advisory_ripple;
4040 dpurdie 15561
 
3959 dpurdie 15562
/
4040 dpurdie 15563
--------------------------------------------------------
15564
--  DDL for Procedure CLEAN_DO_NOT_RIPPLE
15565
--------------------------------------------------------
15566
set define off;
15567
 
5172 dpurdie 15568
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAN_DO_NOT_RIPPLE" (nrtagid IN NUMBER)
3959 dpurdie 15569
IS
15570
/******************************************************************************
15571
   NAME:       clean_do_not_ripple
1373 dpurdie 15572
 
3959 dpurdie 15573
   PURPOSE:    To delete entries from the do_not_ripple table based upon
15574
               an RTAG_ID only
15575
 
15576
               This is a tidy-up operation performed against the do_not_ripple
15577
               table, ensuring that the table does not have rtag_id/pv_id
15578
               combinations that cannot be found in the release's wip/pending/release
15579
               tabs.
15580
 
15581
******************************************************************************/
15582
BEGIN
15583
   -- Delete any invalid rtag_id/pv_id combination from the do_not_ripple table.
15584
   -- An invalid rtag_id/pv_id combination is one that cannot be found in the
15585
   -- work_in_progress, planned, or release_content table.
15586
   -- NOTE: Planned operations that represent pending additive/subtractive merge
15587
   -- operations are ignored because they have not been approved yet and so
15588
   -- cannot be said to be "in the release".
15589
   DELETE FROM do_not_ripple
15590
         WHERE rtag_id = nrtagid
15591
           AND pv_id not in
15592
               ((SELECT pv_id FROM release_content WHERE rtag_id = nrtagid)
15593
                 UNION
15594
                (SELECT pv_id FROM work_in_progress WHERE rtag_id = nrtagid)
15595
                 UNION
15596
                (SELECT pv_id FROM planned WHERE rtag_id = nrtagid AND (operation is null OR operation = 'R'))
15597
               );
15598
END clean_do_not_ripple;
4040 dpurdie 15599
 
1374 dpurdie 15600
/
4040 dpurdie 15601
--------------------------------------------------------
15602
--  DDL for Procedure CLEAR_ADVISORY_RIPPLE
15603
--------------------------------------------------------
15604
set define off;
15605
 
5172 dpurdie 15606
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAR_ADVISORY_RIPPLE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 15607
	   	  		  							   nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
15608
											 nUserId IN NUMBER ) IS
1373 dpurdie 15609
/* ---------------------------------------------------------------------------
3959 dpurdie 15610
    Version: 4.0
1373 dpurdie 15611
   --------------------------------------------------------------------------- */
15612
 
15613
BEGIN
15614
 
3959 dpurdie 15615
    -- Clear Advisory Ripple Package
15616
    DELETE FROM ADVISORY_RIPPLE
15617
	WHERE PV_ID = nPvId
15618
	AND RTAG_ID = nRtagId;
1373 dpurdie 15619
 
3959 dpurdie 15620
    /* LOG ACTION */
15621
   	Log_Action ( nPvId, 'clear_advisory_ripple', nUserId );
15622
 
15623
	/*Rebuild_Environment(nRtagId);*/
1373 dpurdie 15624
 
3959 dpurdie 15625
END Clear_Advisory_Ripple;
4040 dpurdie 15626
 
1374 dpurdie 15627
/
4040 dpurdie 15628
--------------------------------------------------------
15629
--  DDL for Procedure CLONED_PACKAGE_PROCESSES
15630
--------------------------------------------------------
15631
set define off;
15632
 
5172 dpurdie 15633
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLONED_PACKAGE_PROCESSES" 
3959 dpurdie 15634
IS
1373 dpurdie 15635
 
3959 dpurdie 15636
proc_id NUMBER;
1373 dpurdie 15637
/******************************************************************************
3959 dpurdie 15638
   NAME:       DELETE_DO_NOT_RIPPLE
15639
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
15640
               IS RELEASED
1373 dpurdie 15641
 
15642
   REVISIONS:
15643
   Ver        Date        Author           Description
15644
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 15645
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
1373 dpurdie 15646
 
15647
   NOTES:
15648
 
15649
   Automatically available Auto Replace Keywords:
3959 dpurdie 15650
      Object Name:     DELETE_DO_NOT_RIPPLE
15651
      Sysdate:         21/04/2006
15652
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
1373 dpurdie 15653
      Username:         (set in TOAD Options, Procedure Editor)
15654
      Table Name:       (set in the "New PL/SQL Object" dialog)
15655
 
15656
******************************************************************************/
3959 dpurdie 15657
   CURSOR ripple_cur
15658
   IS
15659
      select distinct proc_id, prod_id from deployment_manager.processes_config;
15660
 
15661
   ripple_rec   ripple_cur%ROWTYPE;
1373 dpurdie 15662
BEGIN
3959 dpurdie 15663
   OPEN ripple_cur;
1373 dpurdie 15664
 
3959 dpurdie 15665
   FETCH ripple_cur
15666
    INTO ripple_rec;
1373 dpurdie 15667
 
3959 dpurdie 15668
   WHILE ripple_cur%FOUND
15669
   LOOP
15670
 
1373 dpurdie 15671
 
3959 dpurdie 15672
 
15673
insert into package_processes (PROC_ID, PV_ID) 
15674
values( ripple_rec.proc_id, ripple_rec.prod_id);
15675
 
15676
      FETCH ripple_cur
15677
       INTO ripple_rec;
15678
   END LOOP;
15679
END CLONED_PACKAGE_PROCESSES;
4040 dpurdie 15680
 
1374 dpurdie 15681
/
4040 dpurdie 15682
--------------------------------------------------------
15683
--  DDL for Procedure CLONED_PROCESSES
15684
--------------------------------------------------------
15685
set define off;
15686
 
5172 dpurdie 15687
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLONED_PROCESSES" 
3959 dpurdie 15688
IS
15689
 
15690
proc_id NUMBER;
15691
/******************************************************************************
15692
   NAME:       DELETE_DO_NOT_RIPPLE
15693
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
15694
               IS RELEASED
15695
 
15696
   REVISIONS:
15697
   Ver        Date        Author           Description
15698
   ---------  ----------  ---------------  ------------------------------------
15699
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
15700
 
15701
   NOTES:
15702
 
15703
   Automatically available Auto Replace Keywords:
15704
      Object Name:     DELETE_DO_NOT_RIPPLE
15705
      Sysdate:         21/04/2006
15706
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
15707
      Username:         (set in TOAD Options, Procedure Editor)
15708
      Table Name:       (set in the "New PL/SQL Object" dialog)
15709
 
15710
******************************************************************************/
15711
   CURSOR ripple_cur
15712
   IS
15713
      select distinct pkg_health_tag, cmd_interface, pkg_owner, is_interface from deployment_manager.processes_config;
15714
 
15715
   ripple_rec   ripple_cur%ROWTYPE;
1373 dpurdie 15716
BEGIN
3959 dpurdie 15717
   OPEN ripple_cur;
1373 dpurdie 15718
 
3959 dpurdie 15719
   FETCH ripple_cur
15720
    INTO ripple_rec;
1373 dpurdie 15721
 
3959 dpurdie 15722
   WHILE ripple_cur%FOUND
15723
   LOOP
15724
 
15725
   select deployment_manager.seq_proc_id.nextval into proc_id from dual;
15726
 
15727
insert into processes (PROC_ID, PROC_NAME, RUN_AS, PKG_OWNER, IS_INTERFACE) 
15728
values(proc_id, ripple_rec.pkg_health_tag, ripple_rec.cmd_interface, ripple_rec.pkg_owner, ripple_rec.is_interface);
1373 dpurdie 15729
 
3959 dpurdie 15730
      FETCH ripple_cur
15731
       INTO ripple_rec;
15732
   END LOOP;
15733
END CLONED_PROCESSES;
4040 dpurdie 15734
 
1374 dpurdie 15735
/
4040 dpurdie 15736
--------------------------------------------------------
15737
--  DDL for Procedure DELETE_AUTOBUILD_FAILURE_INFO
15738
--------------------------------------------------------
15739
set define off;
15740
 
5172 dpurdie 15741
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DELETE_AUTOBUILD_FAILURE_INFO" 
3959 dpurdie 15742
IS
1373 dpurdie 15743
/******************************************************************************
3959 dpurdie 15744
   NAME:       DELETE_AUTOBUILD_FAILURE_INFO
15745
   PURPOSE:
1373 dpurdie 15746
 
15747
   REVISIONS:
3959 dpurdie 15748
   Ver        Date        Author           Description
1373 dpurdie 15749
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 15750
   1.0        2/06/2006    Rupesh Solanki      1. Created this procedure.
1373 dpurdie 15751
 
15752
   NOTES:
15753
 
15754
   Automatically available Auto Replace Keywords:
3959 dpurdie 15755
      Object Name:     DELETE_AUTOBUILD_FAILURE_INFO
15756
      Sysdate:         2/06/2006
15757
      Date and Time:   2/06/2006, 8:44:25 AM, and 2/06/2006 8:44:25 AM
1373 dpurdie 15758
      Username:         (set in TOAD Options, Procedure Editor)
15759
      Table Name:       (set in the "New PL/SQL Object" dialog)
15760
 
15761
******************************************************************************/
15762
BEGIN
3959 dpurdie 15763
   DELETE FROM autobuild_failure
15764
         WHERE group_email_id NOT IN (SELECT group_email_id
15765
                                        FROM members_group);
15766
END delete_autobuild_failure_info;
4040 dpurdie 15767
 
1374 dpurdie 15768
/
4040 dpurdie 15769
--------------------------------------------------------
15770
--  DDL for Procedure DEPLOY_TO_RELEASE
15771
--------------------------------------------------------
15772
set define off;
15773
 
5172 dpurdie 15774
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DEPLOY_TO_RELEASE" IS
1373 dpurdie 15775
 
15776
/******************************************************************************
15777
 
15778
 
15779
******************************************************************************/
15780
 
15781
	CURSOR curInfo IS
15782
    SELECT DISTINCT
15783
        qry.DPV_ID
15784
     FROM (
15785
             SELECT dep.*,
15786
                    LEVEL AS LEVEL_NUM
15787
               FROM PACKAGE_DEPENDENCIES dep
15788
             START WITH dep.PV_ID IN ( 
15789
 
4308 dpurdie 15790
                        69124,63479,60048,49566,49562,54351,63560,54360,46053,59753,97060,97061,100883,78236,75241,92371,92372,105682,135506,127204,135615,136498,137571,61534,76540,96787,133102,96770,96771,116692,133768,61537,88935,110216,96797,69469,98123,111626,96802,100289,97233,97623,135801,69700,77808,43026,77809,43027,100825,126854,105589,96405,102105,133770,134408,91177,91179,96822,96824,48031,78965,78936,78935,79114,76620,125164,61804,96826,61977,67592,72594,134415,135804,65097,64850,64851,64879,64881,64882,64884,67612,67613,67614,67615,68501,68502,68503,68516,68518,68519,68521,71974,68659,69764,68662,68661,68757,69765,69766,69767,71975,71976,71977,71978,71979,71980,75149,71982,71983,75153,75158,71986,75160,75161,75162,72418,72419,71987,71988,71990,75164,72420,72421,72423,72424,72425,75165,75181,75182,83285,75184,75201,75220,75240,75260,75280,75242,76320,75320,76340,76321,82031,76341,76342,76344,76345,76806,76350,76810,76811,76360,76361,76362,76380,76637,76638,76639,76647,76649,76812,76650,78261,76815,77603,76818,76846,76847,76848,76849,77604,77606,77016,77607,77608,77609,78518,77671,77610,78519,78520,78205,78206,77795,78262,78263,78666,78521,78669,78767,78768,78770,78771,82032,79471,78772,82033,80856,80210,80898,82449,80211,80212,80214,80215,80216,80611,80217,82034,82035,80749,80750,82036,94266,82037,82038,82039,82040,82041,82042,82043,82044,82045,82046,82450,82296,82297,82451,82047,82298,82299,82300,82452,82453,82454,82455,82456,82457,82769,82458,82459,82770,82460,82461,82771,83286,85069,83543,83544,83287,85070,84959,85071,85072,84960,85073,85074,84975,85194,85075,85195,85196,85197,85198,85199,94267,85231,85237,94268,94269,94270,94271,94273,94274,94275,94276,94277,94278,94279,94280,94281,94282,94283,94284,94285,94286,94287,94288,94289,94290,94291,94292,94293,94294,94295,94296,94297,94298,94299,94300,94301,94302,94303,94304,94305,94306,94307,94308,94309,94310,94311,94312,94313,94314,94315,94316,94634,94317,94635,97035,94319,94320,94636,94637,94322,96536,96552,96554,96555,96556,96568,96569,96570,96571,96572,96573,96574,96575,96576,96577,96578,96579,96580,96581,96582,96583,96584,96585,96586,96818,97435,96819,96820,97599,97436,97437,97438,97439,97440,97434,97723,97640,97641,97642,97724,97725,97729,97743,97825,98097,98098,98099,98100,97999,98049,98101,98102,98103,99506,98268,98207,99507,99508,99509,99159,99510,99511,99512,102883,99513,99514,100243,99515,99880,99562,99563,99676,99677,99678,99881,99882,99883,99884,100244,100245,100623,100247,100624,100625,100626,100885,100719,100886,100887,100888,100889,100890,100990,100991,101301,101603,110065,101605,102180,102627,102181,102182,102183,102184,102185,102186,102187,102188,102189,102190,102191,104378,102192,104379,102193,102379,102380,102381,102884,102410,102411,102628,102465,102629,102630,102885,102886,102887,104380,104381,104382,104383,104384,104385,104387,110063,104389,106409,104561,104594,104660,105088,105089,105090,105091,105093,105097,105673,105768,106410,109314,106173,110064,137890,106433,106960,109080,111665,122015,110954,116763,110066,116764,110123,111867,110713,116765,111666,116869,111667,111668,116766,116767,115142,115143,121477,113924,114594,116768,115144,116769,115170,115172,115171,115644,120042,120043,116092,116870,116871,118382,116872,116876,120044,118026,119364,121485,120045,120416,121478,120417,122016,124577,129495,123602,123600,124578,124579,124580,124581,124784,125238,127096,127097,129496,129497,128036,128415,129498,129499,129914,130063,130064,130680,130681,131333,131488,133886,132219,132477,132478,133887,136537,136552,136538,136539,136540,136553,136554,136555,137869,85076,80857,62418,64889,64890,64891,64893,68666,68667,68668,68670,68671,68672,68673,72019,72020,72023,72024,72227,77745,77746,77747,77748,77749,77750,77751,77798,78773,80751,82464,82465,83288,92874,92875,92876,92877,92878,94122,94123,96290,96882,96883,97554,97514,97726,98008,98009,98051,99193,100248,99608,100249,100250,100670,100671,100672,101059,101061,101607,102194,102195,102412,102413,102633,104390,104391,106421,104560,104595,105767,106174,106426,109081,122017,137851,110712,116873,115145,115146,114597,115645,116095,120046,123551,122018,124584,124585,129500,129501,129502,128417,129503,129915,130066,131487,133897,133882,133883,136559,85078,100673,63475,78264,78265,78266,78267,78775,80753,94118,94119,94120,94121,96888,100251,100252,102631,102590,102632,65229,43366,69139,132551,59764,127129,101196,96830,61535,105433,96833,96835,96839,83795,77723,126868,99146,70188,117523,117524,117525,99237,100854,100855,137314,137315,96868,138232,138233,69709,96907,130854,119208,69520,124772,96878,60049,47875,70354,59371,54558,59849,33893,43087,43134,33894,60054,24345,49563,49558,97474,84982,31770,30950,49926,60050,52670,59846,59891,30966,59744,61988,59745,59881,59746,59741,47449,59747,64101,63480,63562,105382,105383,60052,48955,49561,49556,47401,65896,65906,65909,65985,108670,68697,68698,59754,59752,59751,62526,59805,59799,66981,46050,59756,46044,59806,46051,59807,82290,66980,59808,46046,61536,88834,70260,111081,105409,66093,66095,66094,47440,65778,59750,56748,99152,78409
1373 dpurdie 15791
 
15792
                        ) 
15793
 			CONNECT BY PRIOR dep.DPV_ID = dep.PV_ID
15794
 		) qry,
15795
 		PACKAGES pkg,
15796
		PACKAGE_VERSIONS pv
15797
 	 WHERE qry.PV_ID = pv.PV_ID AND pv.PKG_ID = pkg.PKG_ID
15798
         and (pv.is_patch is null or pv.is_patch = 'N');
15799
    recInfo curInfo%ROWTYPE;
15800
 
15801
 
15802
BEGIN
15803
 
15804
	OPEN curInfo;
15805
    FETCH curInfo INTO recInfo;
15806
 
15807
	WHILE curInfo%FOUND
15808
	LOOP
15809
 
15810
	insert into release_content(RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE)
15811
    VALUES(8027, recInfo.dpv_id, 7, ora_sysdatetime, 0, 0);
15812
 
15813
    FETCH curInfo INTO recInfo;
15814
 
15815
	END LOOP;
15816
 
15817
	CLOSE curInfo;
15818
 
15819
 
15820
 
15821
 
15822
END DEPLOY_TO_RELEASE; 
4040 dpurdie 15823
 
1374 dpurdie 15824
/
4040 dpurdie 15825
--------------------------------------------------------
15826
--  DDL for Procedure DEPRECATE_PACKAGE
15827
--------------------------------------------------------
15828
set define off;
15829
 
5384 dpurdie 15830
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DEPRECATE_PACKAGE" (
15831
    nPvId     IN PACKAGE_VERSIONS.PV_ID%TYPE,
15832
    nRtagId   IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,
15833
    nPkgId    IN DEPRECATED_PACKAGES.PKG_ID%TYPE,
15834
    sComments IN DEPRECATED_PACKAGES.COMMENTS%TYPE,
15835
    nUserId   IN NUMBER)
15836
IS
15837
  ext VARCHAR2(50);
1373 dpurdie 15838
BEGIN
5384 dpurdie 15839
  --Extract the package version extension
15840
  SELECT V_EXT INTO ext
15841
  FROM PACKAGE_VERSIONS
15842
  WHERE PV_ID = nPvId;
15843
 
15844
  -- Deprecate Package
15845
  INSERT INTO DEPRECATED_PACKAGES
15846
    ( RTAG_ID, PKG_ID, COMMENTS, V_EXT )
15847
    VALUES ( nRtagId, nPkgId, sComments, ext );
15848
 
15849
  -- Update Release Contents entry
15850
  -- Process PackageName.ext for the package. ie: Allow multiple
15851
  -- versions of the package to be in the release.
15852
    UPDATE RELEASE_CONTENT
15853
    SET 
15854
      DEPRECATED_STATE = 6
15855
    WHERE RTAG_ID      = nRtagId
15856
    AND PV_ID IN (
15857
      SELECT PV.PV_ID
15858
      FROM PACKAGE_VERSIONS PV
15859
      WHERE PV.PKG_ID   = nPkgId
15860
      AND NVL(PV.V_EXT, '.NULL') = NVL(ext,'.NULL')
15861
      );
1373 dpurdie 15862
 
5384 dpurdie 15863
  -- Update consumers of the package
15864
  --  Update ALL packages in the Release
15865
 
15866
  REBUILD_DEPRECATE_STATE(nRtagId);
1373 dpurdie 15867
 
5384 dpurdie 15868
  /* LOG ACTION */
15869
  /*Log_Action ( nPkgId, 'deprecated_package', nUserId );*/
3959 dpurdie 15870
END Deprecate_Package;
4040 dpurdie 15871
 
1374 dpurdie 15872
/
4040 dpurdie 15873
--------------------------------------------------------
15874
--  DDL for Procedure DT_DROPUSEROBJECTBYID
15875
--------------------------------------------------------
15876
set define off;
15877
 
5172 dpurdie 15878
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DT_DROPUSEROBJECTBYID" ( PARAM_ID IN NUMBER ) AS BEGIN DELETE FROM MICROSOFTDTPROPERTIES WHERE OBJECTID = PARAM_ID; END DT_DROPUSEROBJECTBYID;
4040 dpurdie 15879
 
1374 dpurdie 15880
/
4040 dpurdie 15881
--------------------------------------------------------
15882
--  DDL for Procedure DT_SETPROPERTYBYID
15883
--------------------------------------------------------
15884
set define off;
15885
 
5384 dpurdie 15886
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DT_SETPROPERTYBYID" (
15887
    PARAM_ID       IN NUMBER,
15888
    PARAM_PROPERTY IN VARCHAR2,
15889
    PARAM_VALUE    IN VARCHAR2,
15890
    PARAM_LVALUE   IN LONG RAW )
15891
AS
15892
BEGIN
15893
  DECLARE
15894
    X NUMBER(38);
15895
  BEGIN
15896
    SELECT COUNT(*)
15897
    INTO X
15898
    FROM MICROSOFTDTPROPERTIES
15899
    WHERE OBJECTID=PARAM_ID
15900
    AND PROPERTY  =PARAM_PROPERTY;
15901
    IF X          = 0 THEN
15902
      INSERT
15903
      INTO MICROSOFTDTPROPERTIES
15904
        (
15905
          ID,
15906
          PROPERTY,
15907
          OBJECTID,
15908
          VALUE,
15909
          LVALUE,
15910
          VERSION
15911
        )
15912
        VALUES
15913
        (
15914
          MICROSOFTSEQDTPROPERTIES.NEXTVAL,
15915
          PARAM_PROPERTY,
15916
          PARAM_ID,
15917
          PARAM_VALUE,
15918
          PARAM_LVALUE,
15919
 
15920
        );
15921
    ELSE
15922
      UPDATE MICROSOFTDTPROPERTIES
15923
      SET VALUE     =PARAM_VALUE,
15924
        LVALUE      =PARAM_LVALUE,
15925
        VERSION     =VERSION+1
15926
      WHERE OBJECTID=PARAM_ID
15927
      AND PROPERTY  =PARAM_PROPERTY;
15928
    END IF;
15929
  END;
15930
END DT_SETPROPERTYBYID;
4040 dpurdie 15931
 
3959 dpurdie 15932
/
4040 dpurdie 15933
--------------------------------------------------------
15934
--  DDL for Procedure IGNORE_DEPENDENCY_WARNINGS
15935
--------------------------------------------------------
15936
set define off;
15937
 
5172 dpurdie 15938
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."IGNORE_DEPENDENCY_WARNINGS" ( nRtagId IN IGNORE_WARNINGS.RTAG_ID%TYPE,
3959 dpurdie 15939
                                                         nPvId IN IGNORE_WARNINGS.PV_ID%TYPE,
15940
                                                         sIgnoreIdList IN VARCHAR2,
15941
                                                         bDoPatchIgnore IN BOOLEAN DEFAULT FALSE,
15942
                                                         nUserId IN NUMBER DEFAULT NULL ) IS
15943
/* ---------------------------------------------------------------------------
15944
    Updates the ignore warnings table - this is really two functions in one.
15945
 
15946
    1) One function updates the table based on a list of dependent PV_IDs and a parent PV_ID
15947
       and is called from the RM website's SetIgnoreWarnings() function after a user changes
15948
       the ignore warnings checkboxes and submits the form.
15949
       This can (at time of writing this) only be done within releases that are not build
15950
       daemon enabled. The ignore warnings feature is a feature we would like to see the end
15951
       of in an ideal world.
15952
       The SetIgnoreWarnings() website function now calls Touch_Release so there is no need to
15953
       do so in this stored procedure, thereby making this stored procedure much more precise in
15954
       that it only updates the ignore_warnings table (action log table too although that is just
15955
       a log and doesn't affect any subsequent business rules behaviour) and it cares nothing
15956
       about website presentation layer states, etc.
15957
 
15958
    2) The other function updates the table for out of sync dependencies that have in fact
15959
       been satisfied by patches made to some other product in the release.
15960
       This seems to be a seldom used feature in current projects.
15961
       It is probably the most often taken path through this function given that it occurs when
15962
       this function is called from Rebuild_Environment, and that is called in many circumstances
15963
       from the RM website whenever the seems to be a possibility that the state of a package
15964
       in a release might have changed and therefore affects the state of other packages in
15965
       that same release.
15966
 
15967
    Parameter Usage:
15968
                        when called from    | when called from
15969
                        Rebuild_Environment | SetIgnoreWarnings()
15970
                        stored procedure.   | in the Website
15971
      --------------------------------------+----------------------------
15972
      nRtagId           RTAG_ID             | RTAG_ID
15973
      nPvId             NULL                | PV_ID
15974
      sIgnoreIdList     NULL                | list of dependent PV_ID's
15975
      bDoPatchIgnore    TRUE                | FALSE
15976
      nUserId           NULL                | current user ID
15977
   --------------------------------------------------------------------------- */
15978
 
15979
oIgnoreIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
15980
ReleaseLocation VARCHAR2(4000);
15981
ActionTypeId NUMBER;
15982
 
1373 dpurdie 15983
BEGIN
15984
 
3959 dpurdie 15985
   IF (NOT bDoPatchIgnore) THEN
15986
      /* Manual Ignore Warnings - this execution path is the one taken when called from SetIgnoreWarnings() in the Website
15987
      */
15988
      oIgnoreIdCollector := IN_LIST_NUMBER ( sIgnoreIdList );
1373 dpurdie 15989
 
15990
 
3959 dpurdie 15991
      /* Log Action */
15992
      -- Get Release Location
15993
      SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
15994
        FROM PROJECTS proj,
15995
             RELEASE_TAGS rt
15996
       WHERE rt.PROJ_ID = proj.PROJ_ID
15997
         AND rt.RTAG_ID = nRtagId;
1373 dpurdie 15998
 
3959 dpurdie 15999
      -- Get Action Type Id for IGNORE_ON
16000
      SELECT act.ACTTYPE_ID INTO ActionTypeId
16001
        FROM ACTION_TYPE act
16002
       WHERE act.NAME = 'ignore_on';
16003
 
16004
      -- Get Ignored (Current MINUS Old)
5172 dpurdie 16005
      INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
16006
      SELECT nUserId, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeId
3959 dpurdie 16007
        FROM (
16008
              SELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_ID
16009
                FROM PACKAGE_VERSIONS pv
16010
               WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
16011
              MINUS
16012
              SELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_ID
16013
                FROM IGNORE_WARNINGS igw
16014
               WHERE igw.RTAG_ID = nRtagId
16015
                 AND igw.PV_ID = nPvId
16016
             ) qry,
16017
             PACKAGE_VERSIONS pv,
16018
             PACKAGES pkg,
16019
             RELEASE_CONTENT rc,
16020
             PACKAGE_VERSIONS rpv
16021
       WHERE pv.PKG_ID = pkg.PKG_ID
16022
         AND rc.RTAG_ID = nRtagId
16023
         AND rc.PV_ID = rpv.PV_ID
16024
         AND rpv.PKG_ID = pv.PKG_ID
16025
         AND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )
16026
         AND qry.DPV_ID = pv.PV_ID;
16027
 
16028
 
16029
      -- Get Action Type Id for IGNORE_OFF
16030
      SELECT act.ACTTYPE_ID INTO ActionTypeId
16031
        FROM ACTION_TYPE act
16032
       WHERE act.NAME = 'ignore_off';
16033
 
16034
      -- Get UnIgnored (Old MINUS Current)
5172 dpurdie 16035
      INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
16036
      SELECT nUserId, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeId
3959 dpurdie 16037
        FROM (
16038
              SELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_ID
16039
                FROM IGNORE_WARNINGS igw
16040
               WHERE igw.RTAG_ID = nRtagId
16041
                 AND igw.PV_ID = nPvId
16042
              MINUS
16043
              SELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_ID
16044
                FROM PACKAGE_VERSIONS pv
16045
               WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
16046
             ) qry,
16047
             PACKAGE_VERSIONS pv,
16048
             PACKAGES pkg,
16049
             RELEASE_CONTENT rc,
16050
             PACKAGE_VERSIONS rpv
16051
       WHERE pv.PKG_ID = pkg.PKG_ID
16052
         AND rc.RTAG_ID = nRtagId
16053
         AND rc.PV_ID = rpv.PV_ID
16054
         AND rpv.PKG_ID = pv.PKG_ID
16055
         AND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )
16056
         AND qry.DPV_ID = pv.PV_ID;
16057
 
16058
 
16059
      -- Delete Current Ignore Warnings
16060
      DELETE
16061
        FROM IGNORE_WARNINGS igw
16062
       WHERE igw.RTAG_ID = nRtagId
16063
         AND igw.PV_ID = nPvId
16064
         AND igw.IS_PATCH_IGNORE IS NULL;
16065
 
16066
 
16067
      IF (oIgnoreIdCollector.COUNT > 0) THEN
16068
         -- Insert Ignore Warnings
16069
         INSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID )
16070
         SELECT nRtagId,
16071
                nPvId,
16072
                pv.PV_ID AS DPV_ID
16073
           FROM PACKAGE_VERSIONS pv
16074
          WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
16075
      END IF;
16076
 
16077
   ELSE
16078
      /* Patch Ignore Warnings - this execution path is the one taken when called from the Rebuild_Environment stored procedure */
16079
 
16080
      -- Delete Current Patch Ignore Warnings
16081
      DELETE
16082
        FROM IGNORE_WARNINGS igw
16083
       WHERE igw.RTAG_ID = nRtagId
16084
         AND igw.IS_PATCH_IGNORE = 'Y';
16085
 
16086
 
16087
      -- Delete Manual Ignores that need to be Patch Ignores
16088
      DELETE
16089
        FROM IGNORE_WARNINGS igw
16090
       WHERE ( RTAG_ID, PV_ID, DPV_ID ) IN
16091
             (
16092
              SELECT DISTINCT
16093
                     nRtagId,
16094
                     err.PV_ID,
16095
                     err.ERR_DPV AS DPV_ID
16096
               FROM  (
16097
                      /* Full Release Contents used for reference*/
16098
                      SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext
16099
                        FROM release_content rel, package_versions rpv
16100
                       WHERE rel.pv_id = rpv.pv_id
16101
                         AND rtag_id = nRtagId
16102
                     ) frc,
16103
                     (
16104
                      /* DPV_IDs not fount in release*/
16105
                      SELECT dep.pv_id, dep.dpv_id AS err_dpv
16106
                        FROM package_dependencies dep
16107
                       WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
16108
                         AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
16109
                     ) err,
16110
                     (
16111
                      SELECT DISTINCT pp.PV_ID, dep.DPV_ID
16112
                        FROM PACKAGE_PATCHES pp,
16113
                             PACKAGE_DEPENDENCIES dep,
16114
                             RELEASE_CONTENT rc
16115
                       WHERE rc.RTAG_ID = nRtagId
16116
                         AND rc.PV_ID = pp.PV_ID
16117
                         AND dep.PV_ID = pp.PATCH_ID
16118
                     ) pp,
16119
                     package_versions errpkg,
16120
                     package_versions errpv
16121
               WHERE err.err_dpv = errpv.pv_id
16122
                 AND errpv.pkg_id = frc.pkg_id(+)
16123
                 AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
16124
                 AND err.pv_id = errpkg.pv_id
16125
                 AND err.PV_ID = pp.PV_ID
16126
                 AND frc.PV_ID = pp.DPV_ID
16127
             );
16128
 
16129
      /*
16130
      ---------------------------------------------------
16131
      --  Make sure that select statement above and below are same
16132
      ---------------------------------------------------
16133
      */
16134
 
16135
      -- Insert Patch Ignores
16136
      INSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE )
16137
      SELECT DISTINCT
16138
             nRtagId,
16139
             err.PV_ID,
16140
             err.ERR_DPV AS DPV_ID,
16141
             'Y'
16142
        FROM (
16143
              /* Full Release Contents used for reference*/
16144
              SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext
16145
                FROM release_content rel, package_versions rpv
16146
               WHERE rel.pv_id = rpv.pv_id
16147
                 AND rtag_id = nRtagId
16148
             ) frc,
16149
             (
16150
               /* DPV_IDs not fount in release*/
16151
               SELECT dep.pv_id, dep.dpv_id AS err_dpv
16152
                 FROM package_dependencies dep
16153
                WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
16154
                  AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
16155
             ) err,
16156
             (
16157
              SELECT DISTINCT pp.PV_ID, dep.DPV_ID
16158
                FROM PACKAGE_PATCHES pp,
16159
                     PACKAGE_DEPENDENCIES dep,
16160
                     RELEASE_CONTENT rc
16161
               WHERE rc.RTAG_ID = nRtagId
16162
                 AND rc.PV_ID = pp.PV_ID
16163
                 AND dep.PV_ID = pp.PATCH_ID
16164
             ) pp,
16165
             package_versions errpkg,
16166
             package_versions errpv
16167
       WHERE err.err_dpv = errpv.pv_id
16168
         AND errpv.pkg_id = frc.pkg_id(+)
16169
         AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
16170
         AND err.pv_id = errpkg.pv_id
16171
         AND err.PV_ID = pp.PV_ID
16172
         AND frc.PV_ID = pp.DPV_ID;
16173
 
16174
    END IF;
16175
 
16176
END Ignore_Dependency_Warnings;
4040 dpurdie 16177
 
1374 dpurdie 16178
/
4040 dpurdie 16179
--------------------------------------------------------
16180
--  DDL for Procedure INSERT_INTO_PACKAGE_BUILD_INFO
16181
--------------------------------------------------------
16182
set define off;
16183
 
5172 dpurdie 16184
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."INSERT_INTO_PACKAGE_BUILD_INFO" IS
1373 dpurdie 16185
 
16186
/******************************************************************************
3959 dpurdie 16187
   NAME:       INSERT_INTO_PACKAGE_BUILD_INFO
1373 dpurdie 16188
   PURPOSE:    
16189
 
16190
   REVISIONS:
16191
   Ver        Date        Author           Description
16192
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 16193
   1.0        6/12/2006          1. Created this procedure.
1373 dpurdie 16194
 
16195
   NOTES:
16196
 
16197
   Automatically available Auto Replace Keywords:
3959 dpurdie 16198
      Object Name:     INSERT_INTO_PACKAGE_BUILD_INFO
16199
      Sysdate:         6/12/2006
16200
      Date and Time:   6/12/2006, 1:53:40 PM, and 6/12/2006 1:53:40 PM
1373 dpurdie 16201
      Username:         (set in TOAD Options, Procedure Editor)
16202
      Table Name:       (set in the "New PL/SQL Object" dialog)
16203
 
16204
******************************************************************************/
16205
 
16206
	CURSOR curInfo IS
3959 dpurdie 16207
    SELECT PV_ID
16208
	FROM PACKAGE_BUILD_ENV
16209
	WHERE BE_ID IN (11, 12);
1373 dpurdie 16210
    recInfo curInfo%ROWTYPE;
16211
 
16212
 
16213
BEGIN
16214
 
16215
	OPEN curInfo;
16216
    FETCH curInfo INTO recInfo;
16217
 
16218
	WHILE curInfo%FOUND
16219
	LOOP
16220
 
3959 dpurdie 16221
		INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID, BSA_ID )
16222
		VALUES( recInfo.PV_ID, 2, 5);
16223
 
16224
		UPDATE PACKAGE_VERSIONS SET BS_ID = 2 WHERE PV_ID = recInfo.PV_ID;
16225
 
1373 dpurdie 16226
		FETCH curInfo INTO recInfo;
3959 dpurdie 16227
 
1373 dpurdie 16228
	END LOOP;
16229
 
16230
	CLOSE curInfo;
16231
 
16232
 
16233
 
16234
 
3959 dpurdie 16235
END INSERT_INTO_PACKAGE_BUILD_INFO;
4040 dpurdie 16236
 
1374 dpurdie 16237
/
4040 dpurdie 16238
--------------------------------------------------------
16239
--  DDL for Procedure INSERT_MULTIPLE_STICKY_NOTES
16240
--------------------------------------------------------
16241
set define off;
16242
 
5172 dpurdie 16243
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."INSERT_MULTIPLE_STICKY_NOTES" IS
1373 dpurdie 16244
 
3959 dpurdie 16245
/******************************************************************************
16246
   NAME:       INSERT_MULTIPLE_STICKY_NOTES
16247
   PURPOSE:    
1373 dpurdie 16248
 
3959 dpurdie 16249
   REVISIONS:
16250
   Ver        Date        Author           Description
16251
   ---------  ----------  ---------------  ------------------------------------
16252
   1.0        6/12/2006          1. Created this procedure.
1373 dpurdie 16253
 
3959 dpurdie 16254
   NOTES:
1373 dpurdie 16255
 
3959 dpurdie 16256
   Automatically available Auto Replace Keywords:
16257
      Object Name:     INSERT_MULTIPLE_STICKY_NOTES
16258
      Sysdate:         6/12/2006
16259
      Date and Time:   6/12/2006, 1:53:40 PM, and 6/12/2006 1:53:40 PM
16260
      Username:         (set in TOAD Options, Procedure Editor)
16261
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 16262
 
3959 dpurdie 16263
******************************************************************************/
1373 dpurdie 16264
 
3959 dpurdie 16265
	CURSOR curInfo IS
16266
    SELECT PV_ID
16267
	FROM PACKAGE_BUILD_ENV
16268
	WHERE BE_ID IN (11, 12);
16269
    recInfo curInfo%ROWTYPE;
16270
 
16271
 
1373 dpurdie 16272
BEGIN
16273
 
3959 dpurdie 16274
	OPEN curInfo;
16275
    FETCH curInfo INTO recInfo;
16276
 
16277
	WHILE curInfo%FOUND
16278
	LOOP
1373 dpurdie 16279
 
3959 dpurdie 16280
		INSERT INTO NOTE_MANAGER ( NID, LAST_USER, LAST_DATE, DESCRIPTION )
16281
		VALUES( recInfo.PV_ID, 'awehalle', ORA_SYSDATETIME, '' );
16282
 
16283
		FETCH curInfo INTO recInfo;
16284
 
16285
	END LOOP;
1373 dpurdie 16286
 
3959 dpurdie 16287
	CLOSE curInfo;
1373 dpurdie 16288
 
16289
 
16290
 
16291
 
3959 dpurdie 16292
END INSERT_MULTIPLE_STICKY_NOTES;
4040 dpurdie 16293
 
1374 dpurdie 16294
/
4040 dpurdie 16295
--------------------------------------------------------
16296
--  DDL for Procedure LEVEL_N_CONFLICTS
16297
--------------------------------------------------------
16298
set define off;
16299
 
5172 dpurdie 16300
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LEVEL_N_CONFLICTS" (
3959 dpurdie 16301
   nnrtag_id       IN       NUMBER,
16302
   nnsession_num   IN       NUMBER,
16303
   nnrowcnt        OUT      NUMBER,
16304
   nniteration     IN       NUMBER
16305
)
16306
IS
1373 dpurdie 16307
/* ---------------------------------------------------------------------------
3959 dpurdie 16308
    Version: 3.0.1
1373 dpurdie 16309
   --------------------------------------------------------------------------- */
3959 dpurdie 16310
   previteration   NUMBER := nniteration - 1;
1373 dpurdie 16311
BEGIN
5384 dpurdie 16312
  -- Map broken dependency information from a package into a consumer
16313
  -- package. ie: Ripple need-to-build info up the dependency tree.
16314
 
3959 dpurdie 16315
   /* ---------  LEVEL 1 CONFILCTS -----------
16316
   || Following states are used:
16317
   || 0 -> NOT FOUND
16318
   || 1 -> MAJOR
16319
   || 2 -> MINOR MINOR
16320
   */
16321
   INSERT INTO temp_env_states
5384 dpurdie 16322
               SELECT DISTINCT nnsession_num AS session_num, nniteration AS level_num,
16323
                      dpv.pv_id, dpv.pkg_id, dpv.v_ext,
3959 dpurdie 16324
                      DECODE (tes.tes_state, 2, 2, 1) AS MESSAGE
5384 dpurdie 16325
                 FROM TEMP_ENV_DEPS dpv,
3959 dpurdie 16326
                      temp_env_states tes
5384 dpurdie 16327
                WHERE dpv.SESSION_NUM = nnsession_num
16328
                  AND dpv.dpkg_id = tes.pkg_id
16329
                  AND NVL (dpv.dv_ext, '|LINK_A_NULL|') = NVL (tes.v_ext, '|LINK_A_NULL|')
3959 dpurdie 16330
                  AND tes.session_num = nnsession_num
5384 dpurdie 16331
                  AND tes.level_num = previteration;
1373 dpurdie 16332
 
3959 dpurdie 16333
   nnrowcnt := SQL%ROWCOUNT;
16334
END level_n_conflicts;
4040 dpurdie 16335
 
1374 dpurdie 16336
/
4040 dpurdie 16337
--------------------------------------------------------
16338
--  DDL for Procedure LEVEL_ONE_CONFLICTS
16339
--------------------------------------------------------
16340
set define off;
16341
 
5172 dpurdie 16342
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LEVEL_ONE_CONFLICTS" (
1373 dpurdie 16343
   nnrtag_id       IN   NUMBER,
16344
   nnsession_num   IN   NUMBER
16345
)
16346
IS
16347
BEGIN
5384 dpurdie 16348
  --  Prepare the TEMP_ENV_DEPS table
16349
  --  This table maps package-versions to their dependencies and is
16350
  --  used to walk up the dependency tree.
16351
  --  This table consists of PV_ID -> DPV_ID in the release in which we are interested
16352
  --  ie: Those that ARE NOT a part of:
16353
  --    Pegged Package
16354
  --    SDK imported package
16355
  --    Marked with an ignore warnings
16356
  --    Marked as an advisory ripple
16357
  --
16358
  --  This table speeds up the process by a huge (really huge) amount
16359
  --
16360
      INSERT into TEMP_ENV_DEPS
16361
      (
16362
      SELECT DISTINCT nnsession_num AS session_num,
16363
                      pv.pv_id, pv.pkg_id, pv.v_ext,
16364
                      dpv.pv_id as dpv_id, dpv.pkg_id as dpkg_id, dpv.v_ext as dv_ext
16365
 
16366
                 FROM release_content rel,
16367
                      package_dependencies dep,
16368
                      package_versions dpv,
16369
                      package_versions pv
16370
 
16371
                WHERE rel.pv_id = dep.pv_id
16372
                  AND rel.rtag_id = nnrtag_id
16373
                  AND dep.pv_id = pv.pv_id
16374
                  AND dep.dpv_id = dpv.pv_id
16375
                  --AND rel.SDKTAG_ID is null
16376
                  --AND NOT dep.pv_id IN (SELECT pegv.pv_id FROM PEGGED_VERSIONS pegv WHERE pegv.rtag_id = nnrtag_id)
16377
                  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)
16378
                  );
16379
 
1373 dpurdie 16380
   /* ---------  LEVEL 1 CONFILCTS -----------
16381
   || Following states are used:
16382
   || 0 -> NOT FOUND
16383
   || 1 -> MAJOR
16384
   || 2 -> MINOR MINOR
16385
   */
16386
   INSERT INTO temp_env_states
16387
      SELECT DISTINCT nnsession_num AS session_num, 1 AS level_num,
16388
                      err.pv_id, errpkg.pkg_id, errpkg.v_ext,
16389
                      DECODE (frc.v_nmm,
16390
                              NULL, 0,
16391
                              errpv.v_nmm, DECODE (frc.v_mm,
16392
                                                   errpv.v_mm, NULL,
16393
                                                   2
16394
                                                  ),
16395
                              1
16396
                             ) AS MESSAGE
16397
                 FROM (
16398
                       /* Full Release Contents used for reference*/
16399
                        SELECT rel.rtag_id, rpv.pv_id, rpv.pkg_id,
16400
                                NVL (rpv.v_ext, '|LINK_A_NULL|') AS v_ext,
16401
                                rpv.pkg_version, rpv.v_nmm, rpv.v_mm,
5384 dpurdie 16402
                                (SELECT COUNT(*) FROM ADVISORY_RIPPLE avr WHERE avr.rtag_id = rel.rtag_id AND avr.pv_id = rel.pv_id ) AS IsAvr
1373 dpurdie 16403
                          FROM release_content rel,
16404
                                package_versions rpv
16405
                          WHERE rel.pv_id = rpv.pv_id
16406
                             AND rtag_id = nnrtag_id
16407
                      ) frc,
16408
 
16409
                      (
5384 dpurdie 16410
                       /* DPV_IDs not found in release. Excluding:
16411
                              Those from pegged versions
16412
                              Those from packages imported via an SDK
16413
                              */
1373 dpurdie 16414
                       SELECT dep.pv_id, dep.dpv_id AS err_dpv
5384 dpurdie 16415
                         FROM package_dependencies dep
16416
                        WHERE dep.pv_id IN (SELECT pv_id FROM release_content WHERE rtag_id = nnrtag_id AND release_content.SDKTAG_ID is NULL)
1373 dpurdie 16417
                          AND NOT dep.pv_id IN (SELECT pegv.pv_id FROM PEGGED_VERSIONS pegv WHERE pegv.rtag_id = nnrtag_id)
16418
                          AND NOT dep.dpv_id IN (SELECT pv_id FROM release_content WHERE rtag_id = nnrtag_id)
5384 dpurdie 16419
 
1373 dpurdie 16420
                       MINUS
16421
                       /* MINUS Dependencies to be ignored */
16422
                       SELECT igw.pv_id, igw.dpv_id AS err_dpv
5384 dpurdie 16423
                         FROM ignore_warnings igw
16424
                        WHERE igw.rtag_id = nnrtag_id
16425
 
1373 dpurdie 16426
                      ) err,
16427
                      package_versions errpkg,
16428
                      package_versions errpv
16429
                WHERE err.err_dpv = errpv.pv_id
16430
                  AND errpv.pkg_id = frc.pkg_id(+)
16431
                  AND NVL (errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
16432
                  AND err.pv_id = errpkg.pv_id
5384 dpurdie 16433
                  AND NVL(frc.IsAvr,0) = 0;
1373 dpurdie 16434
END level_one_conflicts;
4040 dpurdie 16435
 
1374 dpurdie 16436
/
4040 dpurdie 16437
--------------------------------------------------------
16438
--  DDL for Procedure LOCK_PACKAGE
16439
--------------------------------------------------------
16440
set define off;
16441
 
5172 dpurdie 16442
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOCK_PACKAGE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
1373 dpurdie 16443
											 nUserId IN NUMBER ) IS
16444
/* ---------------------------------------------------------------------------
16445
    Version: 4.0
16446
   --------------------------------------------------------------------------- */
16447
 
16448
BEGIN
16449
 
16450
    -- Lock Package
16451
    UPDATE PACKAGE_VERSIONS pv SET
16452
    	pv.DLOCKED = 'Y'
16453
    WHERE pv.PV_ID = nPvId;
16454
 
16455
    /* LOG ACTION */
16456
   	Log_Action ( nPvId, 'lock_package', nUserId );
16457
 
16458
END Lock_Package;
4040 dpurdie 16459
 
1374 dpurdie 16460
/
4040 dpurdie 16461
--------------------------------------------------------
16462
--  DDL for Procedure LOG_ACTION
16463
--------------------------------------------------------
16464
set define off;
16465
 
5172 dpurdie 16466
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_ACTION" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 16467
										 enumActionTypeName IN ACTION_TYPE.NAME%TYPE,
16468
                                         nUserId IN ACTION_LOG.USER_ID%TYPE,
16469
										 sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL  ) IS
1373 dpurdie 16470
/* ---------------------------------------------------------------------------
16471
    Version: 3.0
16472
   --------------------------------------------------------------------------- */
16473
 
3959 dpurdie 16474
    ActionTypeId NUMBER;
1373 dpurdie 16475
 
16476
BEGIN
16477
 
3959 dpurdie 16478
    -- Get Action Type FK
16479
    SELECT act.ACTTYPE_ID INTO ActionTypeId
16480
      FROM ACTION_TYPE act
16481
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 16482
 
16483
 
5172 dpurdie 16484
    INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
16485
    VALUES ( nUserId, nPvId, sAdditionalComments, ActionTypeId );
1373 dpurdie 16486
 
16487
 
3959 dpurdie 16488
END Log_Action;
4040 dpurdie 16489
 
1374 dpurdie 16490
/
4040 dpurdie 16491
--------------------------------------------------------
16492
--  DDL for Procedure LOG_ACTION_BULK
16493
--------------------------------------------------------
16494
set define off;
16495
 
5172 dpurdie 16496
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_ACTION_BULK" ( nPvIdList IN VARCHAR2,
3959 dpurdie 16497
										 	  enumActionTypeName IN ACTION_TYPE.NAME%TYPE,
16498
                                         	  nUserId IN ACTION_LOG.USER_ID%TYPE,
16499
										 	  sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL  ) IS
1373 dpurdie 16500
/* ---------------------------------------------------------------------------
3959 dpurdie 16501
    Version: 3.0
1373 dpurdie 16502
   --------------------------------------------------------------------------- */
16503
 
3959 dpurdie 16504
    ActionTypeId NUMBER;
16505
    oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
1373 dpurdie 16506
 
16507
BEGIN
16508
 
3959 dpurdie 16509
    oPvIdCollector := IN_LIST_NUMBER ( nPvIdList );
1373 dpurdie 16510
 
3959 dpurdie 16511
    -- Get Action Type FK
16512
    SELECT act.ACTTYPE_ID INTO ActionTypeId
16513
      FROM ACTION_TYPE act
16514
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 16515
 
3959 dpurdie 16516
    -- Log Action
5172 dpurdie 16517
    INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
3959 dpurdie 16518
    SELECT nUserId,
5172 dpurdie 16519
    	     pv.PV_ID,
3959 dpurdie 16520
           sAdditionalComments,
16521
           ActionTypeId
16522
      FROM PACKAGE_VERSIONS pv
16523
     WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
1373 dpurdie 16524
 
16525
 
3959 dpurdie 16526
END Log_Action_Bulk;
4040 dpurdie 16527
 
1374 dpurdie 16528
/
4040 dpurdie 16529
--------------------------------------------------------
16530
--  DDL for Procedure LOG_DAEMON_ACTION
16531
--------------------------------------------------------
16532
set define off;
16533
 
5172 dpurdie 16534
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_DAEMON_ACTION" ( nRconId IN NUMBER,
3959 dpurdie 16535
												 enumActionTypeName IN VARCHAR2,
16536
		                                         nUserId IN NUMBER,
16537
												 sAdditionalComments IN VARCHAR2 DEFAULT NULL  ) IS
16538
/* ---------------------------------------------------------------------------
16539
    Version: 3.0
16540
   --------------------------------------------------------------------------- */
1373 dpurdie 16541
 
3959 dpurdie 16542
    ActionTypeId NUMBER;
1373 dpurdie 16543
 
16544
BEGIN
16545
 
3959 dpurdie 16546
    -- Get Action Type FK
16547
    SELECT act.ACTTYPE_ID INTO ActionTypeId
16548
      FROM ACTION_TYPE act
16549
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 16550
 
16551
 
3959 dpurdie 16552
    INSERT INTO DAEMON_ACTION_LOG
16553
    VALUES ( nUserId, ORA_SYSDATETIME, nRconId, sAdditionalComments, ActionTypeId );
1373 dpurdie 16554
 
16555
 
3959 dpurdie 16556
END Log_Daemon_Action;
4040 dpurdie 16557
 
1374 dpurdie 16558
/
4040 dpurdie 16559
--------------------------------------------------------
16560
--  DDL for Procedure LOG_PROJECT_ACTION
16561
--------------------------------------------------------
16562
set define off;
16563
 
5172 dpurdie 16564
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_PROJECT_ACTION" ( nProjId IN NUMBER,
3959 dpurdie 16565
												 enumActionTypeName IN VARCHAR2,
16566
		                                         nUserId IN NUMBER,
16567
												 sAdditionalComments IN VARCHAR2 DEFAULT NULL,
16568
												 nRtagId IN NUMBER  ) IS
1373 dpurdie 16569
/* ---------------------------------------------------------------------------
3959 dpurdie 16570
    Version: 3.0
1373 dpurdie 16571
   --------------------------------------------------------------------------- */
16572
 
3959 dpurdie 16573
    ActionTypeId NUMBER;
1373 dpurdie 16574
 
16575
BEGIN
16576
 
3959 dpurdie 16577
    -- Get Action Type FK
16578
    SELECT act.ACTTYPE_ID INTO ActionTypeId
16579
      FROM ACTION_TYPE act
16580
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 16581
 
16582
 
3959 dpurdie 16583
    INSERT INTO PROJECT_ACTION_LOG ( USER_ID, ACTION_DATETIME, PROJ_ID, DESCRIPTION, ACTTYPE_ID, RTAG_ID)
16584
    VALUES ( nUserId, ORA_SYSDATETIME, nProjId, sAdditionalComments, ActionTypeId, nRtagId);
1373 dpurdie 16585
 
16586
 
3959 dpurdie 16587
END Log_Project_Action;
4040 dpurdie 16588
 
1374 dpurdie 16589
/
4040 dpurdie 16590
--------------------------------------------------------
16591
--  DDL for Procedure NEW_ADDITIONAL_NOTE
16592
--------------------------------------------------------
16593
set define off;
16594
 
5172 dpurdie 16595
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_ADDITIONAL_NOTE" ( pnPv_id IN NUMBER,
3959 dpurdie 16596
                                                  psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,
16597
                                                  psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,
16598
                                                  pnUser_id IN NUMBER,
16599
                                                  outErrCode OUT NUMBER
16600
                                                 ) IS
1373 dpurdie 16601
/* ---------------------------------------------------------------------------
3959 dpurdie 16602
    Version: 3.0.0
1373 dpurdie 16603
   --------------------------------------------------------------------------- */
16604
 
16605
    newID NUMBER;
16606
 
16607
	CURSOR an_duplicate_cur IS
3959 dpurdie 16608
        SELECT note_id
1373 dpurdie 16609
          FROM ADDITIONAL_NOTES
16610
         WHERE pv_id = pnPv_id
16611
           AND note_title = psNote_title;
16612
    an_duplicate_rec an_duplicate_cur%ROWTYPE;
16613
 
16614
BEGIN
16615
	outErrCode := -1;		-- Set default return error code to ERROR state
16616
 
16617
	OPEN an_duplicate_cur;
16618
    FETCH an_duplicate_cur INTO an_duplicate_rec;
16619
 
3959 dpurdie 16620
    IF an_duplicate_cur%NOTFOUND
1373 dpurdie 16621
    THEN
3959 dpurdie 16622
		/* No duplicate titles */
16623
		-- Get new ID --
16624
    	SELECT SEQ_ADDITIONAL_NOTES.NEXTVAL INTO newID FROM DUAL;
16625
 
16626
		--- Add Additional Note ---
16627
	    INSERT INTO ADDITIONAL_NOTES ( note_id, pv_id, note_title, note_body, mod_date, mod_user  )
16628
	    VALUES (  newID, pnPv_id, psNote_title, psNote_body, Ora_Sysdate, pnUser_id );
1373 dpurdie 16629
		outErrCode := 0;		-- Set return to SUCCESS
16630
	END IF;
16631
 
16632
	CLOSE an_duplicate_cur;
3959 dpurdie 16633
END New_Additional_Note;
4040 dpurdie 16634
 
1374 dpurdie 16635
/
4040 dpurdie 16636
--------------------------------------------------------
16637
--  DDL for Procedure NEW_PACKAGE_NAME
16638
--------------------------------------------------------
16639
set define off;
16640
 
5172 dpurdie 16641
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_PACKAGE_NAME" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,
3959 dpurdie 16642
                                               retPKG_ID OUT NUMBER ) IS
1373 dpurdie 16643
/* ---------------------------------------------------------------------------
3959 dpurdie 16644
    Version: 3.0.0
1373 dpurdie 16645
   --------------------------------------------------------------------------- */
16646
 
3959 dpurdie 16647
    CURSOR packages_cur IS
16648
        SELECT pkg.pkg_id
16649
          FROM packages pkg
16650
         WHERE pkg.pkg_name = SSpkg_name;
16651
    packages_rec packages_cur%ROWTYPE;
1373 dpurdie 16652
 
16653
 
16654
BEGIN
16655
 
3959 dpurdie 16656
    /* ---------------------------------------------------- */
16657
    /* Find if package name exists                          */
16658
    /* ---------------------------------------------------- */
1373 dpurdie 16659
 
3959 dpurdie 16660
    OPEN packages_cur;
16661
    FETCH packages_cur INTO packages_rec;
1373 dpurdie 16662
 
3959 dpurdie 16663
    IF packages_cur%NOTFOUND
16664
    THEN
16665
        -- Create new pkg_name --
16666
        SELECT SEQ_PKG_ID.nextval INTO retPKG_ID FROM DUAL;
1373 dpurdie 16667
 
3959 dpurdie 16668
        INSERT INTO packages ( pkg_id, pkg_name )
16669
        VALUES ( retPKG_ID, SSpkg_name );
1373 dpurdie 16670
 
3959 dpurdie 16671
    ELSE
16672
        retPKG_ID := packages_rec.pkg_id;
1373 dpurdie 16673
 
3959 dpurdie 16674
    END IF;
1373 dpurdie 16675
 
16676
 
3959 dpurdie 16677
    CLOSE packages_cur;
1373 dpurdie 16678
 
3959 dpurdie 16679
END New_Package_Name;
4040 dpurdie 16680
 
1374 dpurdie 16681
/
4040 dpurdie 16682
--------------------------------------------------------
16683
--  DDL for Procedure NEW_PATCH
16684
--------------------------------------------------------
16685
set define off;
16686
 
5172 dpurdie 16687
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_PATCH" ( SSpatch_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
1373 dpurdie 16688
 	   	  		  					  	NNparent_id IN NUMBER,
16689
                                        sPatchIdList IN VARCHAR2,
16690
										NNuser_id IN NUMBER ) IS
16691
/* ---------------------------------------------------------------------------
16692
    Version: 3.5
16693
   --------------------------------------------------------------------------- */
16694
 
16695
    patchPv_id    NUMBER;
16696
	parPkg_id	  NUMBER;
16697
    LastInstallOrder NUMBER;
16698
    isPatchDlocked PACKAGE_VERSIONS.DLOCKED%TYPE;
16699
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
16700
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
16701
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
16702
	oPatchDepCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
16703
 
16704
	CURSOR parent_cur IS
16705
        SELECT pv.*, pkg.pkg_name
16706
          FROM package_versions pv,
16707
		       packages pkg
16708
         WHERE pv.pv_id = NNparent_id
16709
		   AND pv.pkg_id = pkg.pkg_id;
16710
    parent_rec parent_cur%ROWTYPE;
16711
 
16712
    CURSOR patch_cur IS
16713
        SELECT pv.*, pg.pkg_name
16714
          FROM package_versions pv,
16715
		       packages pg
16716
         WHERE pv.pkg_id = parPkg_id
16717
		   AND pv.pkg_version = SSpatch_version
16718
		   AND pv.pkg_id = pg.pkg_id;
16719
    patch_rec patch_cur%ROWTYPE;
16720
 
16721
	CURSOR releases_cur IS
16722
        SELECT rc.pv_id
16723
		  FROM release_content rc
16724
		 WHERE rc.pv_id = patch_rec.pv_id;
16725
    releases_rec releases_cur%ROWTYPE;
16726
 
16727
 
16728
BEGIN
16729
 
16730
	-- Get Last Install Order
16731
    SELECT Count(*) INTO LastInstallOrder
16732
	  FROM PACKAGE_PATCHES pp
16733
	 WHERE pp.PV_ID = NNparent_id;
16734
 
16735
 
16736
    -- Get parent details
16737
	OPEN parent_cur;
16738
    FETCH parent_cur INTO parent_rec;
16739
	parPkg_id := parent_rec.pkg_id;
16740
 
16741
 
16742
	-- Find if patch exists in database
16743
    OPEN patch_cur;
16744
    FETCH patch_cur INTO patch_rec;
16745
 
16746
 
16747
    -- Parent must be official
16748
    IF parent_rec.dlocked = 'Y' THEN
16749
 
16750
	    IF patch_cur%NOTFOUND
16751
	    THEN
16752
        	isPatchDlocked := 'N';
16753
 
16754
	        -- Create new patch version --
16755
	        SELECT SEQ_PV_ID.nextval INTO patchPv_id FROM DUAL;
16756
 
16757
 
16758
	        Split_version ( SSpatch_version, SSV_MM, SSV_NMM, SSV_EXT );
16759
 
16760
	        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 )
16761
				   VALUES (
16762
						   patchPv_id,
16763
	                       parPkg_id,
16764
	                       SSpatch_version,
16765
	                       isPatchDlocked,
16766
	                       ORA_SYSDATE,
16767
	                       NNuser_id,
16768
	                       ORA_SYSDATETIME,
16769
	                       NNuser_id,
16770
	                       SSV_MM,
16771
	                       SSV_NMM,
16772
	                       SSV_EXT,
16773
	                       parent_rec.src_path,
16774
	                       'This is a patch to ' || parent_rec.pkg_name || ' ' || parent_rec.pkg_version,
16775
	                       NNuser_id,
16776
						   'Y',
16777
                           patchPv_id,
16778
						   parent_rec.bs_id,
16779
						   parent_rec.is_autobuildable,
16780
						   parent_rec.ripple_field
16781
 
16782
						   );
16783
 
16784
			INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )
16785
		    	   ( SELECT NNparent_id AS pv_id,
16786
				            pv.pv_id AS patch_id,
16787
	                        LastInstallOrder + 1 AS INSTALL_ORDER
16788
				       FROM package_versions pv
16789
					  WHERE pv.pv_id = patchPv_id
16790
					    AND pv.is_patch = 'Y' );
16791
 
16792
	        /* LOG ACTION */
16793
            Log_Action ( patchPv_id, 'new_version', NNuser_id,
16794
        			     'Patch version created: '|| SSpatch_version );
16795
 
16796
        	Log_Action ( NNparent_id, 'patch_add', NNuser_id,
16797
        			     'New patch created and attached: '|| SSpatch_version );
16798
 
16799
 
16800
	    ELSE
16801
 
16802
		    patchPv_id := patch_rec.pv_id;
16803
	    	isPatchDlocked := patch_rec.dlocked;
16804
 
16805
			-- Find if pv_id exists in release content (i.e. it cannot be a patch)
16806
		    OPEN releases_cur;
16807
		    FETCH releases_cur INTO releases_rec;
16808
 
16809
			IF releases_cur%NOTFOUND
16810
	   		THEN
16811
				-- This pv_id is trully a patch, hence add Y to column IS_PATCH
16812
				UPDATE package_versions SET
16813
					   is_patch = 'Y'
16814
					   WHERE pv_id = patchPv_id;
16815
 
16816
				INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )
16817
			    	   ( SELECT NNparent_id AS pv_id,
16818
					            pv.pv_id AS patch_id,
16819
	                            LastInstallOrder + 1 AS INSTALL_ORDER
16820
					       FROM package_versions pv
16821
						  WHERE pv.pv_id = patchPv_id
16822
						    AND pv.is_patch = 'Y' );
16823
 
16824
			END IF;
16825
 
16826
			CLOSE releases_cur;
16827
 
16828
            /* LOG ACTION */
16829
        	Log_Action ( NNparent_id, 'patch_add', NNuser_id,
16830
        			     'Patch version was found and attached: '|| SSpatch_version );
16831
 
16832
	    END IF;
16833
 
16834
 
16835
 
16836
 
16837
    END IF;
16838
 
16839
 
16840
 
16841
    /* Create Patch Dependencies */
16842
    oPatchDepCollector := IN_LIST_NUMBER ( sPatchIdList );
16843
 
16844
 
16845
    -- Make sure patch is unofficial before altering its dependencies
16846
    IF (oPatchDepCollector.COUNT > 0) AND (isPatchDlocked = 'N') THEN
16847
    	-- Delete Existing Dependencies
16848
        DELETE
16849
          FROM PACKAGE_DEPENDENCIES dep
16850
         WHERE dep.PV_ID = patchPv_id;
16851
 
16852
 
16853
        -- Insert new dependencies
16854
        INSERT INTO PACKAGE_DEPENDENCIES ( PV_ID, DPV_ID, PKG_ID, DPKG_ID, BUILD_TYPE )
16855
        SELECT patchPv_id AS PV_ID,
16856
        	   pv.PV_ID AS DPV_ID,
16857
               parPkg_id AS PKG_ID,
16858
               pv.PKG_ID AS DPKG_ID,
16859
               'L' AS BUILD_TYPE
16860
          FROM PACKAGE_VERSIONS pv
16861
         WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPatchDepCollector AS RELMGR_NUMBER_TAB_t ) ) );
16862
 
16863
 
16864
    END IF;
16865
 
16866
 
16867
    CLOSE parent_cur;
16868
    CLOSE patch_cur;
16869
END New_Patch;
4040 dpurdie 16870
 
1374 dpurdie 16871
/
4040 dpurdie 16872
--------------------------------------------------------
16873
--  DDL for Procedure NEW_UNIT_TEST
16874
--------------------------------------------------------
16875
set define off;
16876
 
5172 dpurdie 16877
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_UNIT_TEST" ( nPv_id IN NUMBER,
3959 dpurdie 16878
                                            nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,
16879
                                            sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,
16880
                                            sNumOfTest IN UNIT_TESTS.NUMOF_TEST%TYPE,
16881
                                            sDpkg_path IN VARCHAR2,
16882
                                            sResults IN VARCHAR2,
16883
                                            sCompletion_date IN VARCHAR2,
16884
                                            nCompleted_by IN NUMBER,
16885
											enumTEST_TYPE_AUTOMATIC IN NUMBER,
16886
											enumTEST_TYPE_NOT_DONE IN NUMBER,
16887
											outFileName OUT VARCHAR2
16888
                                           ) IS
16889
/* ---------------------------------------------------------------------------
16890
    Version: 3.2.0
16891
   --------------------------------------------------------------------------- */
1373 dpurdie 16892
 
3959 dpurdie 16893
   	FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';
1373 dpurdie 16894
 
3959 dpurdie 16895
    newID NUMBER;
16896
    ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;
16897
    ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;
1373 dpurdie 16898
 
3959 dpurdie 16899
BEGIN
1373 dpurdie 16900
 
3959 dpurdie 16901
	-- Get new ID --
16902
   	SELECT SEQ_UNIT_TESTS.NEXTVAL INTO newID FROM DUAL;
1373 dpurdie 16903
 
3959 dpurdie 16904
       IF nTestTypeId = enumTEST_TYPE_AUTOMATIC THEN
16905
       	ResultsURL := sResults;
16906
       ELSE
16907
       	IF (sResults <> '') OR ( NOT sResults IS NULL ) THEN
16908
        	outFileName := FILENAME_PREFIX || newID ||'_'|| sResults;
16909
    		ResultsAttachment := sDpkg_path || '/' || outFileName;
16910
           END IF;
16911
       END IF;
1373 dpurdie 16912
 
3959 dpurdie 16913
	-- Remove NOT_DONE entry if exists
16914
	DELETE FROM UNIT_TESTS
16915
	 WHERE pv_id = nPv_id
16916
	   AND test_types_fk = enumTEST_TYPE_NOT_DONE;
1373 dpurdie 16917
 
3959 dpurdie 16918
	--- Add Additional Note ---
16919
    INSERT INTO UNIT_TESTS ( TEST_ID,
16920
								PV_ID,
16921
								TEST_TYPES_FK,
16922
								TEST_SUMMARY,
16923
								COMPLETION_DATE,
16924
								COMPLETED_BY,
16925
								RESULTS_URL,
16926
								RESULTS_ATTACHMENT_NAME,
16927
								NUMOF_TEST )
16928
    VALUES (
16929
       	newID,
16930
           nPv_id,
16931
           nTestTypeId,
16932
           sTest_summary,
16933
           TO_DATE( sCompletion_date,'DD/MM/YYYY' ),
16934
           nCompleted_by,
16935
           ResultsURL,
16936
           ResultsAttachment,
16937
		   sNumOfTest );
1373 dpurdie 16938
 
3959 dpurdie 16939
END New_Unit_Test;
4040 dpurdie 16940
 
1374 dpurdie 16941
/
4040 dpurdie 16942
--------------------------------------------------------
16943
--  DDL for Procedure PAOLO_BUILD_TREE
16944
--------------------------------------------------------
16945
set define off;
16946
 
5172 dpurdie 16947
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."PAOLO_BUILD_TREE" ( nRtag_id IN NUMBER ) IS
1373 dpurdie 16948
 
3959 dpurdie 16949
    sessionNumber NUMBER := 0;
16950
    iteration NUMBER := 1; 
16951
    rowCnt NUMBER := 0;
16952
    maxIterations 	NUMBER := 50;
16953
 
1373 dpurdie 16954
BEGIN
3959 dpurdie 16955
 
16956
 
16957
    INSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )
16958
    SELECT sessionNumber, iteration, rc.PV_ID
16959
      FROM RELEASE_CONTENT rc
16960
     WHERE rc.RTAG_ID = nRtag_id;
16961
 
16962
    iteration := iteration + 1;
16963
    LOOP
16964
 
16965
        INSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )
16966
		SELECT sessionNumber,     
16967
               iteration,
16968
               dep.DPV_ID
16969
          FROM TEMP_TREE_BROWSE ttb,
16970
               PACKAGE_DEPENDENCIES dep
16971
         WHERE dep.PV_ID = ttb.PV_ID 
16972
           AND ttb.LEVEL_NUM = iteration - 1 
16973
 
16974
         MINUS  
16975
 
16976
        SELECT sessionNumber, iteration, ttb.PV_ID
16977
          FROM TEMP_TREE_BROWSE ttb;   
16978
 
16979
 
16980
 
16981
 
16982
		rowCnt := SQL%ROWCOUNT;
16983
		IF rowCnt > 0 THEN
16984
           iteration := iteration + 1;
16985
		END IF;
16986
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
16987
    END LOOP; 
16988
 
16989
END PAOLO_Build_Tree;
4040 dpurdie 16990
 
1374 dpurdie 16991
/
4040 dpurdie 16992
--------------------------------------------------------
5384 dpurdie 16993
--  DDL for Procedure REBUILD_DEPRECATE_STATE
16994
--------------------------------------------------------
16995
set define off;
16996
 
16997
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REBUILD_DEPRECATE_STATE" ( nRtagId IN INT ) AS 
16998
BEGIN
16999
 
17000
  --  Clear the 'calculated' values from the Release Conetnts
17001
  --
17002
  UPDATE RELEASE_CONTENT
17003
      SET DEPRECATED_STATE = NULL
17004
  WHERE RTAG_ID =  nRtagId
17005
  AND DEPRECATED_STATE != 6 
17006
  AND DEPRECATED_STATE is NOT NULL;
17007
 
17008
  --
17009
  --  Insert new calculated values into the table
17010
  --  Use of 'AAA' speeds up the CONNECT BY PRIOR query (lots)
17011
  UPDATE RELEASE_CONTENT
17012
      SET DEPRECATED_STATE = 7
17013
  WHERE RTAG_ID =  nRtagId
17014
  AND DEPRECATED_STATE is null
17015
  AND PV_ID in (
17016
        WITH AAA AS
17017
          (SELECT pd.*
17018
          FROM PACKAGE_DEPENDENCIES pd,
17019
            RELEASE_CONTENT RC1
17020
          WHERE rc1.rtag_id = nRtagId
17021
          AND RC1.PV_ID     = pd.PV_ID
17022
          )
17023
      SELECT DISTINCT qry.PV_ID
17024
      FROM
17025
        (SELECT dep.*,
17026
          LEVEL AS LEVEL_NUM
17027
        FROM AAA dep
17028
          START WITH dep.DPV_ID IN ( 
17029
                SELECT rc.pv_id as pv_id
17030
                FROM RELEASE_CONTENT rc
17031
                WHERE rc.rtag_id  = nRtagId
17032
                AND rc.DEPRECATED_STATE = 6 )
17033
          CONNECT BY PRIOR dep.PV_ID = dep.DPV_ID
17034
        ) qry,
17035
        PACKAGES pkg,
17036
        PACKAGE_VERSIONS pv,
17037
        RELEASE_CONTENT rc
17038
      WHERE qry.PV_ID          = pv.PV_ID
17039
      AND pv.PKG_ID            = pkg.PKG_ID
17040
      AND rc.RTAG_ID           = nRtagId
17041
      AND rc.PV_ID             = qry.PV_ID
17042
      );
17043
END REBUILD_DEPRECATE_STATE;
17044
 
17045
/
17046
--------------------------------------------------------
4040 dpurdie 17047
--  DDL for Procedure REBUILD_ENVIRONMENT
17048
--------------------------------------------------------
17049
set define off;
17050
 
5172 dpurdie 17051
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REBUILD_ENVIRONMENT" ( NNrtag_id IN NUMBER ) IS
5384 dpurdie 17052
  --
17053
  --  Recalculate the package_state
17054
  --  Triggered by the Web Interface
17055
  --
1373 dpurdie 17056
    rowCnt NUMBER := 0;
17057
    iteration NUMBER := 2;          -- Iterations counter
5384 dpurdie 17058
    maxIterations NUMBER := 30;     -- Maximum number of iterations allowed.
1373 dpurdie 17059
                                    -- This will prevent infinite loops if cyrcular dependencies are found
17060
    sessionNum NUMBER;
17061
BEGIN
17062
    SELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;
17063
 
17064
 
17065
    -- Redo Patch Ignore warnings
17066
    Ignore_Dependency_Warnings ( NNrtag_id, NULL, NULL, TRUE );
17067
 
5384 dpurdie 17068
    Level_One_Conflicts ( NNrtag_id, sessionNum );
17069
    --commit;
1373 dpurdie 17070
 
17071
    LOOP
17072
        Level_N_Conflicts ( NNrtag_id, sessionNum, rowCnt, iteration );
5384 dpurdie 17073
        --commit;
1373 dpurdie 17074
        iteration := iteration + 1;
17075
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
17076
    END LOOP;
5172 dpurdie 17077
 
1373 dpurdie 17078
    Update_Package_States ( NNrtag_id, sessionNum );
17079
 
5384 dpurdie 17080
    DELETE FROM temp_env_states WHERE session_num = sessionNum;
17081
    DELETE FROM TEMP_ENV_DEPS WHERE session_num = sessionNum;
1373 dpurdie 17082
 
17083
    -- Flag Packages with New Patches Available
17084
    Check_New_Patches ( NNrtag_id );
17085
 
17086
	Clean_Do_Not_Ripple( NNrtag_id );
17087
 
17088
 
17089
	/* Circular Dependency Flag */
17090
    /*
17091
	IF iteration > maxIterations
17092
	THEN
17093
		UPDATE release_tags SET
17094
		   	   circular_dependency = 'Y'
17095
		 WHERE rtag_id = NNrtag_id;
17096
	ELSE
17097
		UPDATE release_tags SET
17098
		   	   circular_dependency = NULL
17099
		 WHERE rtag_id = NNrtag_id;
17100
	END IF;
17101
    */
17102
END Rebuild_Environment;
4040 dpurdie 17103
 
1374 dpurdie 17104
/
4040 dpurdie 17105
--------------------------------------------------------
17106
--  DDL for Procedure REMOVE_COMPONENTS
17107
--------------------------------------------------------
17108
set define off;
17109
 
5172 dpurdie 17110
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_COMPONENTS" ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE ) IS
3959 dpurdie 17111
/* ---------------------------------------------------------------------------
17112
    Version: 3.0.0
17113
   --------------------------------------------------------------------------- */
17114
 
17115
 
17116
BEGIN
17117
 
17118
	 --- Delete From RELEASE_COMPONENTS
17119
	 DELETE FROM RELEASE_COMPONENTS
17120
	 WHERE PV_ID = nPvId;
17121
 
17122
END Remove_Components;
4040 dpurdie 17123
 
3959 dpurdie 17124
/
4040 dpurdie 17125
--------------------------------------------------------
17126
--  DDL for Procedure REMOVE_DOCUMENT
17127
--------------------------------------------------------
17128
set define off;
17129
 
5172 dpurdie 17130
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_DOCUMENT" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 17131
											  nDocId IN PACKAGE_DOCUMENTS.DOC_ID%TYPE,
17132
                                              nUserId IN NUMBER ) IS
17133
/* ---------------------------------------------------------------------------
17134
    Version: 3.0
17135
   --------------------------------------------------------------------------- */
17136
 
17137
   DocNumber PACKAGE_DOCUMENTS.DOC_NUM%TYPE;
17138
 
17139
BEGIN
17140
 
17141
	-- Get Doc Num
17142
    SELECT pd.DOC_NUM INTO DocNumber
17143
      FROM PACKAGE_DOCUMENTS pd
17144
     WHERE pd.PV_ID = nPvId
17145
       AND pd.DOC_ID = nDocId;
17146
 
17147
 
17148
	-- Delete Document
17149
    DELETE
17150
      FROM PACKAGE_DOCUMENTS pd
17151
     WHERE pd.PV_ID = nPvId
17152
       AND pd.DOC_ID = nDocId;
17153
 
17154
 
17155
    /* LOG ACTION */
17156
   	Log_Action ( nPvId, 'document_remove', nUserId,
17157
   			     'Document number: '|| DocNumber );
17158
 
17159
 
17160
END Remove_Document;
4040 dpurdie 17161
 
3959 dpurdie 17162
/
4040 dpurdie 17163
--------------------------------------------------------
17164
--  DDL for Procedure REMOVE_PACKAGE_INTEREST
17165
--------------------------------------------------------
17166
set define off;
17167
 
5172 dpurdie 17168
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PACKAGE_INTEREST" (nProjId IN PROJECTS.PROJ_ID%TYPE,
3959 dpurdie 17169
	   	  		  								  	nPkgId IN PACKAGES.PKG_ID%TYPE,
17170
												  	nUserId IN NUMBER
17171
	   	  		  									) IS
17172
 
1373 dpurdie 17173
/******************************************************************************
3959 dpurdie 17174
   NAME:       REMOVE_PACKAGE_INTEREST
17175
   PURPOSE:    To remove interest in a given package per project
1373 dpurdie 17176
 
17177
   REVISIONS:
17178
   Ver        Date        Author           Description
17179
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 17180
   1.0        12/05/2006  Rupesh Solanki      1. Created this procedure.
1373 dpurdie 17181
 
17182
   NOTES:
17183
 
17184
   Automatically available Auto Replace Keywords:
3959 dpurdie 17185
      Object Name:     REMOVE_PACKAGE_INTEREST
17186
      Sysdate:         12/05/2006
17187
      Date and Time:   12/05/2006, 11:28:50 AM, and 12/05/2006 11:28:50 AM
1373 dpurdie 17188
      Username:         (set in TOAD Options, Procedure Editor)
17189
      Table Name:       (set in the "New PL/SQL Object" dialog)
17190
 
17191
******************************************************************************/
17192
BEGIN
17193
 
3959 dpurdie 17194
	 --Delete from PACKAGE_INTEREST
17195
	 DELETE FROM PACKAGE_INTEREST
17196
	 WHERE PROJ_ID = nProjId
17197
	 AND PKG_ID = nPkgId
17198
	 AND USER_ID = nUserId;
17199
 
17200
END REMOVE_PACKAGE_INTEREST;
4040 dpurdie 17201
 
1374 dpurdie 17202
/
4040 dpurdie 17203
--------------------------------------------------------
17204
--  DDL for Procedure REMOVE_PATCH
17205
--------------------------------------------------------
17206
set define off;
17207
 
5172 dpurdie 17208
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PATCH" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,
3959 dpurdie 17209
										   nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,
17210
                                           nUserId IN NUMBER ) IS
1373 dpurdie 17211
/* ---------------------------------------------------------------------------
3959 dpurdie 17212
    Version: 4.0
1373 dpurdie 17213
   --------------------------------------------------------------------------- */
17214
 
3959 dpurdie 17215
PatchVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
1373 dpurdie 17216
 
3959 dpurdie 17217
CURSOR curPatch IS
17218
	SELECT pp.PV_ID,
17219
		   pp.PATCH_ID,
17220
	       ROWNUM AS NEW_INSTALL_ORDER
17221
	  FROM PACKAGE_PATCHES pp
17222
	 WHERE pp.PV_ID = nPvId
17223
	ORDER BY pp.INSTALL_ORDER;
17224
recPatch curPatch%ROWTYPE;
17225
 
1373 dpurdie 17226
BEGIN
17227
 
3959 dpurdie 17228
	 -- Delete Patch
17229
     DELETE
17230
       FROM PACKAGE_PATCHES pp
17231
      WHERE pp.PV_ID = nPvId
17232
        AND pp.PATCH_ID = nPatchId;
1373 dpurdie 17233
 
17234
 
3959 dpurdie 17235
	-- Redo Install Order
17236
    OPEN curPatch;
17237
	FETCH curPatch INTO recPatch;
17238
 
17239
	WHILE curPatch%FOUND
17240
	LOOP
17241
 
17242
		UPDATE PACKAGE_PATCHES pp SET
17243
			pp.INSTALL_ORDER = recPatch.NEW_INSTALL_ORDER
17244
		WHERE pp.PV_ID = nPvId
17245
		  AND pp.PATCH_ID = recPatch.PATCH_ID;
17246
 
17247
		FETCH curPatch INTO recPatch;
17248
	END LOOP;
17249
 
17250
	CLOSE curPatch;
17251
 
17252
 
17253
 
17254
 
17255
    /* LOG ACTION */
17256
    SELECT pv.PKG_VERSION INTO PatchVersion
1373 dpurdie 17257
      FROM PACKAGE_VERSIONS pv
3959 dpurdie 17258
     WHERE pv.PV_ID = nPatchId;
1373 dpurdie 17259
 
3959 dpurdie 17260
   	Log_Action ( nPvId, 'patch_remove', nUserId,
17261
   			     'Version: '|| PatchVersion );
1373 dpurdie 17262
 
3959 dpurdie 17263
END Remove_Patch;
4040 dpurdie 17264
 
1374 dpurdie 17265
/
4040 dpurdie 17266
--------------------------------------------------------
17267
--  DDL for Procedure REMOVE_PROJECT_VIEW_OWNER
17268
--------------------------------------------------------
17269
set define off;
17270
 
5172 dpurdie 17271
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PROJECT_VIEW_OWNER" (nProjId IN NUMBER,
3959 dpurdie 17272
	   	  		  						 			  nViewId IN NUMBER,
17273
										 			  sUserIdList IN VARCHAR2,
17274
										 			  nUserId IN NUMBER ) IS
1373 dpurdie 17275
 
3959 dpurdie 17276
GroupId NUMBER;													  
17277
 
17278
 
17279
 
1373 dpurdie 17280
/******************************************************************************
3959 dpurdie 17281
   NAME:       UPDATE_VIEW
17282
   PURPOSE:    
1373 dpurdie 17283
 
17284
   REVISIONS:
3959 dpurdie 17285
   Ver        Date        Author           		Description
1373 dpurdie 17286
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 17287
   1.0        10/04/2006     Rupesh Solanki     1. Created this procedure.
1373 dpurdie 17288
 
17289
   NOTES:
17290
 
17291
   Automatically available Auto Replace Keywords:
3959 dpurdie 17292
      Object Name:     UPDATE_VIEW
17293
      Sysdate:         10/04/2006
17294
      Date and Time:   10/04/2006, 1:55:19 PM, and 10/04/2006 1:55:19 PM
1373 dpurdie 17295
      Username:         (set in TOAD Options, Procedure Editor)
17296
      Table Name:       (set in the "New PL/SQL Object" dialog)
17297
 
17298
******************************************************************************/
17299
 
17300
BEGIN
3959 dpurdie 17301
	 SELECT GROUP_EMAIL_ID into GroupId
17302
	 FROM AUTOBUILD_FAILURE
17303
	 WHERE PROJ_ID = nProjId
17304
	 AND VIEW_ID = nViewId;
17305
 
17306
	 DELETE FROM MEMBERS_GROUP
17307
	 WHERE GROUP_EMAIL_ID = GroupId
17308
	 AND USER_ID IN (
17309
	 SELECT * FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual ) 
17310
	 );
17311
 
1373 dpurdie 17312
 
3959 dpurdie 17313
 
17314
END REMOVE_PROJECT_VIEW_OWNER;
4040 dpurdie 17315
 
3959 dpurdie 17316
/
4040 dpurdie 17317
--------------------------------------------------------
17318
--  DDL for Procedure REMOVE_RELEASE_CONTENT
17319
--------------------------------------------------------
17320
set define off;
17321
 
5172 dpurdie 17322
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_RELEASE_CONTENT" ( sPvIdList IN VARCHAR2,
3959 dpurdie 17323
													 sNotPvIdList IN VARCHAR2,
17324
                                                     nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS
17325
/* ---------------------------------------------------------------------------
17326
    Version: 3.0
17327
   --------------------------------------------------------------------------- */
1373 dpurdie 17328
 
3959 dpurdie 17329
oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
17330
oNotPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
1373 dpurdie 17331
 
3959 dpurdie 17332
BEGIN
17333
	oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
17334
    oNotPvIdCollector := IN_LIST_NUMBER ( sNotPvIdList );
17335
 
17336
    -- Delete From Release Content
17337
    DELETE
17338
      FROM RELEASE_CONTENT
17339
	 WHERE rtag_id = nRTagId
17340
	   AND pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
17341
	   AND NOT pv_id IN ( SELECT * FROM TABLE ( CAST ( oNotPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
17342
 
17343
 
17344
 
17345
END Remove_Release_Content;
4040 dpurdie 17346
 
1374 dpurdie 17347
/
4040 dpurdie 17348
--------------------------------------------------------
17349
--  DDL for Procedure REMOVE_RUNTIME
17350
--------------------------------------------------------
17351
set define off;
17352
 
5172 dpurdie 17353
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_RUNTIME" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 17354
											 nRuntimeId IN RUNTIME_DEPENDENCIES.RTD_ID%TYPE,
17355
                                             nUserId IN NUMBER ) IS
17356
/* ---------------------------------------------------------------------------
17357
    Version: 3.0
17358
   --------------------------------------------------------------------------- */
17359
 
17360
   RuntimeDependency VARCHAR2(4000);
17361
 
17362
BEGIN
17363
 
17364
	-- Get Runtime dependency
17365
    SELECT pkg.PKG_NAME ||' '|| pv.PKG_VERSION  INTO RuntimeDependency
17366
	  FROM RUNTIME_DEPENDENCIES rtd,
17367
	  	   PACKAGES pkg,
17368
	       PACKAGE_VERSIONS pv
17369
	 WHERE rtd.PV_ID = nPvId
17370
	   AND pv.PKG_ID = pkg.PKG_ID
17371
	   AND rtd.RTD_ID = pv.PV_ID
17372
	   AND rtd.RTD_ID = nRuntimeId;
17373
 
17374
 
17375
	-- Delete Document
17376
    DELETE
17377
      FROM RUNTIME_DEPENDENCIES rtd
17378
     WHERE rtd.PV_ID = nPvId
17379
       AND rtd.RTD_ID = nRuntimeId;
17380
 
17381
 
17382
    /* LOG ACTION */
17383
   	Log_Action ( nPvId, 'runtime_remove', nUserId,
17384
   			     'Runtime package: '|| RuntimeDependency );
17385
 
17386
 
17387
END Remove_Runtime;
4040 dpurdie 17388
 
3959 dpurdie 17389
/
4040 dpurdie 17390
--------------------------------------------------------
17391
--  DDL for Procedure RENAME_PACKAGE_VERSION
17392
--------------------------------------------------------
17393
set define off;
17394
 
5172 dpurdie 17395
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RENAME_PACKAGE_VERSION" ( NNpv_id IN NUMBER,
4211 dpurdie 17396
                                  SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
17397
                                  cBuildType IN CHAR,
17398
                                  cChangeType IN CHAR,
17399
                                  NNuser_id IN NUMBER,
17400
                                  errMessage OUT VARCHAR2 ) IS
3959 dpurdie 17401
/* ---------------------------------------------------------------------------
17402
    Version: 3.2
17403
   --------------------------------------------------------------------------- */
17404
 
17405
    sPackageVersion VARCHAR2(4000);
4211 dpurdie 17406
    sLabel VARCHAR2(4000) := NULL;
17407
    sChangeType VARCHAR2(100) := NULL;
17408
    uChangeType CHAR := cChangeType;
3959 dpurdie 17409
    OldPkgVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
17410
 
17411
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
17412
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
17413
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
17414
 
17415
    CURSOR package_versions_cur IS
17416
        SELECT pv_id
4211 dpurdie 17417
          FROM package_versions
17418
         WHERE pkg_id IN ( SELECT pkg_id FROM package_versions WHERE pv_id = NNpv_id )
17419
           AND pkg_version = SSpkg_version;
3959 dpurdie 17420
    package_versions_rec package_versions_cur%ROWTYPE;
17421
 
17422
 
17423
BEGIN
17424
 
17425
    /* ---------------------------------------------------- */
17426
    /* Find if package_version exists                       */
17427
    /* ---------------------------------------------------- */
17428
 
4211 dpurdie 17429
    errMessage := NULL;
3959 dpurdie 17430
 
4211 dpurdie 17431
    -- Get previous version
17432
    SELECT pv.PKG_VERSION INTO OldPkgVersion
3959 dpurdie 17433
      FROM PACKAGE_VERSIONS pv
17434
     WHERE pv.PV_ID = NNpv_id;
17435
 
4211 dpurdie 17436
    sPackageVersion := SSpkg_version;
3959 dpurdie 17437
 
4211 dpurdie 17438
    IF OldPkgVersion != sPackageVersion THEN
3959 dpurdie 17439
 
4211 dpurdie 17440
        OPEN package_versions_cur;
17441
        FETCH package_versions_cur INTO package_versions_rec;
3959 dpurdie 17442
 
4211 dpurdie 17443
        IF package_versions_cur%NOTFOUND
17444
        THEN
3959 dpurdie 17445
 
4211 dpurdie 17446
            -- Split current version in parts
17447
            Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
3959 dpurdie 17448
 
17449
 
4211 dpurdie 17450
                -- Automated built config
17451
                IF ( cBuildType = 'M' ) THEN
17452
                    uChangeType := 'F';
17453
                END IF;  
17454
 
17455
                -- Automated version numbering
17456
                -- Make sure that version is still unique
17457
                IF (uChangeType != 'F') THEN
17458
                    sPackageVersion := '('|| NNpv_id ||')'|| SSV_EXT;
17459
                END IF;
3959 dpurdie 17460
 
4211 dpurdie 17461
                -- Packge version not found, hence rename it.
17462
                UPDATE package_versions
17463
                   SET pkg_version = sPackageVersion,
17464
                       v_mm = SSV_MM,
17465
                       v_nmm = SSV_NMM,
17466
                       v_ext = SSV_EXT,
17467
                       modified_stamp = ORA_SYSDATETIME,
17468
                       modifier_id = NNuser_id,
17469
                       build_type = cBuildType,
17470
                       change_type = uChangeType,
17471
                       pkg_label = NULL
17472
                 WHERE pv_id = NNpv_id;
17473
 
17474
                sLabel := GET_AUTOMATED_LABEL( NNpv_id );
17475
                UPDATE PACKAGE_VERSIONS pv SET
17476
                    pv.PKG_LABEL = sLabel
17477
                WHERE pv_id = NNpv_id;
3959 dpurdie 17478
 
17479
 
4211 dpurdie 17480
              /* LOG ACTION */
17481
              IF (cChangeType = 'F') THEN
17482
                  Log_Action ( NNpv_id, 'rename', NNuser_id, 'From '|| OldPkgVersion ||' to '|| sPackageVersion );
17483
              ELSE 
17484
 
17485
                  IF cChangeType = 'M' THEN
17486
                    sChangeType := 'Major Change';
17487
                  ELSIF cChangeType = 'N' THEN 
17488
                    sChangeType := 'Minor Change';
17489
                  ELSIF cChangeType = 'P' THEN 
17490
                    sChangeType := 'Patch Change';
17491
                  ELSE
17492
                    sChangeType := 'Unknown Change';
17493
                  END IF;
3959 dpurdie 17494
 
4211 dpurdie 17495
                  Log_Action ( NNpv_id, 'rename', NNuser_id, 'From '|| OldPkgVersion ||' to '|| sPackageVersion || ',' || sChangeType );
17496
              END IF;
3959 dpurdie 17497
 
4211 dpurdie 17498
        ELSE
17499
            -- Package version exists. Cannot proceed.
17500
            errMessage := 'enum_MSG_VERSION_EXISTS';
3959 dpurdie 17501
 
4211 dpurdie 17502
        END IF;
3959 dpurdie 17503
 
4211 dpurdie 17504
        CLOSE package_versions_cur;
3959 dpurdie 17505
 
4211 dpurdie 17506
    END IF;
3959 dpurdie 17507
 
17508
END Rename_Package_Version;
4040 dpurdie 17509
 
3959 dpurdie 17510
/
4040 dpurdie 17511
--------------------------------------------------------
17512
--  DDL for Procedure RESET_IGNORE_WARNINGS
17513
--------------------------------------------------------
17514
set define off;
17515
 
5172 dpurdie 17516
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RESET_IGNORE_WARNINGS" ( sPvIdList IN VARCHAR2,
3959 dpurdie 17517
                                                    nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS
17518
/* ---------------------------------------------------------------------------
17519
    Version: 5.0
17520
   --------------------------------------------------------------------------- */
17521
 
17522
oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
17523
 
17524
BEGIN
17525
	oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
17526
 
17527
    -- Remove Ignore Warnings
17528
     DELETE
17529
       FROM ignore_warnings
17530
	  WHERE (rtag_id, pv_id, dpv_id) IN
17531
	     (
17532
	      SELECT igw.rtag_id, igw.pv_id, igw.dpv_id
17533
	        FROM ignore_warnings igw,
17534
	             package_versions dpv,
17535
	             package_versions pv
17536
	       WHERE igw.dpv_id = dpv.pv_id
17537
	         AND igw.rtag_id = nRTagId
17538
	         AND dpv.pkg_id = pv.pkg_id
17539
	         AND NVL(dpv.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|')
17540
	         AND pv.pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
17541
         );
17542
 
17543
END Reset_Ignore_Warnings;
4040 dpurdie 17544
 
3959 dpurdie 17545
/
4040 dpurdie 17546
--------------------------------------------------------
17547
--  DDL for Procedure RIPPLE_PACKAGE
17548
--------------------------------------------------------
17549
set define off;
17550
 
5172 dpurdie 17551
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RIPPLE_PACKAGE" (
3959 dpurdie 17552
        sPvIdList IN VARCHAR2,
17553
        nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
17554
        nUserId IN NUMBER
17555
    ) IS
17556
/* ---------------------------------------------------------------------------
17557
    Version: 4.1
17558
   --------------------------------------------------------------------------- */
17559
 
17560
BEGIN
17561
 
17562
    IF (sPvIdList IS NULL) THEN
17563
        RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
17564
    END IF;
17565
 
17566
    -- Ripple Package
17567
    DELETE FROM DO_NOT_RIPPLE
17568
    WHERE RTAG_ID = nRtagId
17569
    AND PV_ID IN (
17570
        SELECT *
17571
        FROM THE (
17572
            SELECT CAST( IN_LIST_NUMBER( sPvIdList )
17573
            AS RELMGR_NUMBER_TAB_t )
17574
            FROM DUAL
17575
        )
17576
    );
17577
 
5172 dpurdie 17578
    -- Mark Release Changed for build
17579
    PK_RELEASE.SET_RELEASE_MODIFIED(nRtagId);
17580
 
3959 dpurdie 17581
    /* LOG ACTION */
17582
    Log_Action_Bulk ( sPvIdList, 'ripple_package', nUserId );
17583
 
17584
END Ripple_Package;
4040 dpurdie 17585
 
3959 dpurdie 17586
/
4040 dpurdie 17587
--------------------------------------------------------
17588
--  DDL for Procedure SEED_PACKAGE_NAMES_VERSIONS
17589
--------------------------------------------------------
17590
set define off;
17591
 
5172 dpurdie 17592
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,
4585 dpurdie 17593
                                          SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
17594
                                          NNuser_id IN NUMBER,
17595
                                          retPV_ID OUT NUMBER,
17596
                                          nCloneFromPvId IN NUMBER DEFAULT NULL,
17597
                                          nBuildType IN CHAR DEFAULT 'M',
17598
                                          nChangeType IN CHAR DEFAULT 'F') IS
3959 dpurdie 17599
/* ---------------------------------------------------------------------------
5172 dpurdie 17600
    Version: 5.0
3959 dpurdie 17601
   --------------------------------------------------------------------------- */
17602
 
17603
    parPkg_id   NUMBER;
17604
    parPv_id    NUMBER;
17605
    cloneFrom_pv_id NUMBER;
17606
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
17607
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
17608
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
17609
    spackageversion VARCHAR2 (4000);
4211 dpurdie 17610
    slabel VARCHAR2 (4000) := NULL;
3959 dpurdie 17611
 
17612
    CURSOR packages_cur IS
17613
        SELECT pkg_id FROM PACKAGES
17614
        WHERE pkg_name = SSpkg_name;
17615
    packages_rec packages_cur%ROWTYPE;
17616
 
17617
    CURSOR package_versions_cur IS
17618
        SELECT pv_id FROM PACKAGE_VERSIONS
17619
        WHERE pkg_id = parPkg_id
17620
        AND pkg_version = SSpkg_version;
17621
    package_versions_rec package_versions_cur%ROWTYPE;
17622
 
17623
    CURSOR clone_package_versions_cur IS
17624
        SELECT MAX(pv_id) AS pv_id
17625
          FROM PACKAGE_VERSIONS
17626
         WHERE pkg_id = parPkg_id
17627
           AND NVL(v_ext,'LINK_A_NULL') = NVL(SSV_EXT,'LINK_A_NULL');
17628
    clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
17629
 
17630
BEGIN
17631
    /* -------------------------------------------- */
17632
    /* Find if pkg_name exists and seed if required */
17633
    /* -------------------------------------------- */
17634
    OPEN packages_cur;
17635
    FETCH packages_cur INTO packages_rec;
17636
 
17637
    IF packages_cur%NOTFOUND
17638
    THEN
17639
        /* INSERT into packages table */
17640
        SELECT SEQ_PKG_ID.NEXTVAL INTO parPkg_id FROM DUAL;
17641
        INSERT INTO PACKAGES ( pkg_id, pkg_name ) VALUES ( parPkg_id, SSpkg_name );
17642
 
17643
    ELSE
17644
        parPkg_id := packages_rec.pkg_id;
17645
 
17646
    END IF;
17647
 
17648
    CLOSE packages_cur;
17649
 
17650
 
17651
    /* ---------------------------------------------------- */
17652
    /* Find if package_version exists and seed if required  */
17653
    /* ---------------------------------------------------- */
17654
    OPEN package_versions_cur;
17655
    FETCH package_versions_cur INTO package_versions_rec;
17656
 
17657
    IF package_versions_cur%NOTFOUND
17658
    THEN
17659
        SELECT SEQ_PV_ID.NEXTVAL INTO parPv_id FROM DUAL;
17660
 
17661
        /* Generate automated version Number */
17662
        Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
17663
        spackageversion := SSpkg_version;
17664
 
4211 dpurdie 17665
        IF ( nChangeType <> 'F' )
3959 dpurdie 17666
        THEN
17667
            spackageversion := '(' || parPv_id || ')' || SSV_EXT;
17668
        END If;
17669
 
17670
        /* LOG ACTION */
17671
        Log_Action ( parPv_id, 'new_version', NNuser_id,
17672
                     'New package version: '|| spackageversion );
17673
 
17674
 
4585 dpurdie 17675
        /*  Determine clone source for new package-version
17676
            Use nCloneFromPvId - iff provided
17677
            Use most recently created pkgName/pkgExtension - if it exists
17678
            Else create a brand new package-version
17679
        */
3959 dpurdie 17680
 
4585 dpurdie 17681
        IF ( NOT nCloneFromPvId IS NULL) THEN
17682
            cloneFrom_pv_id := nCloneFromPvId;
17683
        ELSE
17684
            /* Find similar pkg_name + ext to clone from */
17685
            OPEN clone_package_versions_cur;
17686
            FETCH clone_package_versions_cur INTO clone_package_versions_rec;
17687
            CLOSE clone_package_versions_cur;
3959 dpurdie 17688
 
4585 dpurdie 17689
            IF ( NOT clone_package_versions_rec.pv_id IS NULL) THEN
17690
                cloneFrom_pv_id := clone_package_versions_rec.pv_id;
3959 dpurdie 17691
            ELSE
4585 dpurdie 17692
                cloneFrom_pv_id := NULL;
3959 dpurdie 17693
            END IF;
17694
 
4585 dpurdie 17695
        END IF;
17696
 
17697
        IF NOT cloneFrom_pv_id IS NULL
17698
        THEN
3959 dpurdie 17699
            -- Clone Package Version Details --
17700
            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,
17701
                                           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  )
17702
                SELECT parPv_id         AS pv_id,
17703
                       parPkg_id        AS pkg_id,
17704
                       spackageversion  AS pkg_version,
17705
                       'N'              AS dlocked,
17706
                       Ora_Sysdate      AS created_stamp,
17707
                       NNuser_id        AS creator_id,
17708
                       Ora_Sysdatetime  AS modified_stamp,
17709
                       NNuser_id        AS modifier_id,
17710
                       SSV_MM           AS V_MM,
17711
                       SSV_NMM          AS V_NMM,
17712
                       SSV_EXT          AS V_EXT,
17713
                       pv.src_path,
17714
                       pv.pv_description,
17715
                       pv.PV_OVERVIEW,
17716
                       cloneFrom_pv_id  AS LAST_PV_ID,
17717
                       pv.owner_id,
17718
                       nBuildType       AS BUILD_TYPE,
17719
                       pv.IS_BUILD_ENV_REQUIRED,
17720
                       pv.BS_ID,
17721
                       pv.is_autobuildable,
17722
                       pv.IS_DEPLOYABLE, 
17723
                       pv.ripple_field,
17724
                       nChangeType       AS change_type
17725
                  FROM PACKAGE_VERSIONS pv
17726
                 WHERE pv.pv_id = cloneFrom_pv_id;
17727
 
17728
            Basic_Clone ( cloneFrom_pv_id, parPv_id, NULL, NNuser_id, parPkg_id, 0 );
17729
 
17730
        ELSE
17731
            /* BRAND NEW version + ext */
17732
            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 )
17733
            VALUES (
17734
                    parPv_id,
17735
                    parPkg_id,
17736
                    spackageversion,
17737
                    'N',
17738
                    Ora_Sysdate,
17739
                    NNuser_id,
17740
                    Ora_Sysdatetime,
17741
                    NNuser_id,
17742
                    SSV_MM,
17743
                    SSV_NMM,
17744
                    SSV_EXT,
17745
                    NNuser_id,
17746
                    parPv_id,
17747
                    nBuildType,
17748
                    'b',
17749
                    nChangeType
17750
                   );
17751
        END IF;
17752
 
4211 dpurdie 17753
        /* Insert initial package label */
17754
        slabel := get_automated_label (parPv_id);
17755
        UPDATE package_versions pv
17756
        SET pv.pkg_label = slabel
17757
        WHERE pv.pv_id = parPv_id;
17758
 
3959 dpurdie 17759
        retPV_ID := parPv_id;
17760
 
17761
    ELSE
17762
        retPV_ID := package_versions_rec.pv_id;
17763
 
17764
    END IF;
17765
 
17766
    CLOSE package_versions_cur;
17767
 
17768
END Seed_Package_Names_Versions;
4040 dpurdie 17769
 
3959 dpurdie 17770
/
5892 dpurdie 17771
 
17772
  GRANT EXECUTE ON "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS" TO "DEPLOYMENT_MANAGER";
17773
  GRANT EXECUTE ON "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS" TO "CODE_INSPECTION";
4040 dpurdie 17774
--------------------------------------------------------
17775
--  DDL for Procedure SET_ADVISORY_RIPPLE
17776
--------------------------------------------------------
17777
set define off;
17778
 
5172 dpurdie 17779
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_ADVISORY_RIPPLE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
1373 dpurdie 17780
	   	  		  							   nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
17781
											 nUserId IN NUMBER ) IS
17782
/* ---------------------------------------------------------------------------
17783
    Version: 4.0
17784
   --------------------------------------------------------------------------- */
17785
 
17786
BEGIN
17787
 
3959 dpurdie 17788
    -- Set Advisory Ripple Package
17789
    INSERT INTO ADVISORY_RIPPLE (RTAG_ID, PV_ID)
17790
	VALUES (nRtagId, nPvId);
1373 dpurdie 17791
 
17792
    /* LOG ACTION */
3959 dpurdie 17793
   	Log_Action ( nPvId, 'set_advisory_ripple', nUserId );
1373 dpurdie 17794
 
17795
	/*Rebuild_Environment(nRtagId);*/
17796
 
3959 dpurdie 17797
END Set_Advisory_Ripple;
4040 dpurdie 17798
 
1374 dpurdie 17799
/
4040 dpurdie 17800
--------------------------------------------------------
17801
--  DDL for Procedure SET_PACKAGE_BUILD_ENV
17802
--------------------------------------------------------
17803
set define off;
17804
 
5172 dpurdie 17805
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV" ( nPvId IN PACKAGE_BUILD_ENV.PV_ID%TYPE,
3959 dpurdie 17806
	   	  		  								  	sBuildEnvIdList IN VARCHAR2 ) IS
1373 dpurdie 17807
/* ---------------------------------------------------------------------------
3959 dpurdie 17808
    Last Modified: Rupesh Solanki
17809
	Version: 3.0.1
1373 dpurdie 17810
   --------------------------------------------------------------------------- */
17811
 
17812
 
17813
BEGIN
17814
 
3959 dpurdie 17815
   -- Delete Current Build Env settings
17816
   DELETE FROM PACKAGE_BUILD_ENV
17817
   WHERE pv_id = nPvId;
17818
 
17819
   -- Delet Current Package Build Info Settings
17820
   DELETE FROM PACKAGE_BUILD_INFO
17821
   WHERE pv_id = nPvId;
1373 dpurdie 17822
 
3959 dpurdie 17823
   -- Reset flag to N
17824
   UPDATE PACKAGE_VERSIONS SET
17825
	   IS_BUILD_ENV_REQUIRED = 'N'
17826
   WHERE PV_ID = nPvId;
1373 dpurdie 17827
 
17828
 
3959 dpurdie 17829
   -- Set new Build Env
17830
   IF NOT sBuildEnvIdList IS NULL THEN
17831
   	  -- Insert into PACKAGE_BUILD_ENV
17832
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
17833
	  SELECT nPvId AS PV_ID,
17834
	  		 be.BE_ID
17835
	    FROM BUILD_ENVIRONMENTS be
17836
	   WHERE be.BE_ID IN (
17837
	   		 		  	   SELECT *
17838
					   	     FROM THE ( SELECT CAST( IN_LIST_NUMBER( sBuildEnvIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
17839
	   		 		  	 );
17840
 
17841
   	  -- Insert into PACKAGE_BUILD_INFO
17842
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
17843
	  SELECT nPvId AS PV_ID,
17844
	  		 be.BM_ID
17845
	    FROM BUILD_MACHINES be
17846
	   WHERE be.BM_ID IN (
17847
	   		 		  	   SELECT *
17848
					   	     FROM THE ( SELECT CAST( IN_LIST_NUMBER( sBuildEnvIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
17849
	   		 		  	 );						 
1373 dpurdie 17850
 
3959 dpurdie 17851
	   -- Set flag to Y
17852
	   UPDATE PACKAGE_VERSIONS SET
17853
		   IS_BUILD_ENV_REQUIRED = 'Y'
17854
	   WHERE PV_ID = nPvId;
1373 dpurdie 17855
 
3959 dpurdie 17856
   END IF;
1373 dpurdie 17857
 
17858
 
3959 dpurdie 17859
END Set_Package_Build_Env;
4040 dpurdie 17860
 
1374 dpurdie 17861
/
4040 dpurdie 17862
--------------------------------------------------------
17863
--  DDL for Procedure SET_PACKAGE_BUILD_ENV_TEMP
17864
--------------------------------------------------------
17865
set define off;
17866
 
5172 dpurdie 17867
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV_TEMP" ( nPvId IN PACKAGE_BUILD_ENV.PV_ID%TYPE,
1373 dpurdie 17868
	   	  		  								  	   	 sBuildEnvIdList IN VARCHAR2,
17869
														 nBuildStandard IN PACKAGE_VERSIONS.BS_ID%TYPE 
17870
														 ) IS
17871
/* ---------------------------------------------------------------------------
17872
    Last Modified: Rupesh Solanki
17873
	Version: 3.0.1
17874
   --------------------------------------------------------------------------- */
17875
 
17876
   nBsCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();   
17877
   BsId NUMBER;
17878
   HackBsId NUMBER;
17879
 
17880
 
17881
BEGIN
17882
 
17883
   nBsCollector := IN_LIST_NUMBER ( sBuildEnvIdList );
17884
 
17885
   -- Delete Current Build Env settings
17886
   DELETE FROM PACKAGE_BUILD_ENV
17887
   WHERE pv_id = nPvId;
17888
 
17889
   -- Delet Current Package Build Info Settings
17890
   DELETE FROM PACKAGE_BUILD_INFO
17891
   WHERE pv_id = nPvId;
17892
 
17893
   -- Reset flag to N
17894
   UPDATE PACKAGE_VERSIONS SET
17895
	   IS_BUILD_ENV_REQUIRED = 'N'
17896
   WHERE PV_ID = nPvId;
17897
 
17898
 
17899
   -- Set new Build Env
17900
   IF NOT sBuildEnvIdList IS NULL THEN
17901
	FOR i IN 1..nBsCollector.COUNT
17902
	LOOP   
17903
 
17904
	BsId := nBsCollector(i);
17905
 
17906
	IF nBuildStandard = 2 THEN
17907
	   IF BsId = 1 THEN
17908
	   	  HackBsId := 11;
17909
	   ELSE
17910
	   	  HackBsId := 12;
17911
	   END IF;
17912
 
17913
   	  -- Insert into PACKAGE_BUILD_ENV
17914
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
17915
	  SELECT nPvId AS PV_ID,
17916
	  		 be.BE_ID
17917
	    FROM BUILD_ENVIRONMENTS be
17918
	   WHERE be.BE_ID IN ( HackBsId );
17919
 
17920
   	  -- Insert into PACKAGE_BUILD_INFO
17921
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
17922
	  SELECT nPvId AS PV_ID,
17923
	  		 be.BM_ID
17924
	    FROM BUILD_MACHINES be
17925
	   WHERE be.BM_ID IN ( BsId );						 
17926
 
17927
	   -- Set flag to Y
17928
	   UPDATE PACKAGE_VERSIONS SET
17929
		   IS_BUILD_ENV_REQUIRED = 'Y'
17930
	   WHERE PV_ID = nPvId;	
17931
 
17932
 
17933
	ELSE
17934
 
17935
   	  -- Insert into PACKAGE_BUILD_ENV
17936
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
17937
	  SELECT nPvId AS PV_ID,
17938
	  		 be.BE_ID
17939
	    FROM BUILD_ENVIRONMENTS be
17940
	   WHERE be.BE_ID IN ( BsId );
17941
 
17942
   	  -- Insert into PACKAGE_BUILD_INFO
17943
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
17944
	  SELECT nPvId AS PV_ID,
17945
	  		 be.BM_ID
17946
	    FROM BUILD_MACHINES be
17947
	   WHERE be.BM_ID IN ( BsId );						 
17948
 
17949
	   -- Set flag to Y
17950
	   UPDATE PACKAGE_VERSIONS SET
17951
		   IS_BUILD_ENV_REQUIRED = 'Y'
17952
	   WHERE PV_ID = nPvId;
17953
 
17954
	END IF;  
17955
 
17956
 
17957
	END LOOP;	   
17958
 
17959
   END IF;
17960
 
17961
 
17962
END Set_Package_Build_Env_Temp;
4040 dpurdie 17963
 
1374 dpurdie 17964
/
4040 dpurdie 17965
--------------------------------------------------------
17966
--  DDL for Procedure SET_TO_AUTOBUILDABLE
17967
--------------------------------------------------------
17968
set define off;
17969
 
5172 dpurdie 17970
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_TO_AUTOBUILDABLE" (
3959 dpurdie 17971
   nrtagid     IN   NUMBER,
17972
   spvidlist   IN   VARCHAR2
17973
)
17974
IS
17975
/******************************************************************************
17976
   NAME:       SET_TO_AUTOBUILDABLE
17977
   PURPOSE:
1373 dpurdie 17978
 
3959 dpurdie 17979
   REVISIONS:
17980
   Ver        Date        Author           Description
17981
   ---------  ----------  ---------------  ------------------------------------
17982
   1.0        15/12/2006   Rupesh Solanki       1. Created this procedure.
1373 dpurdie 17983
 
3959 dpurdie 17984
   NOTES:
1373 dpurdie 17985
 
3959 dpurdie 17986
   Automatically available Auto Replace Keywords:
17987
      Object Name:     SET_TO_AUTOBUILDABLE
17988
      Sysdate:         15/12/2006
17989
      Date and Time:   15/12/2006, 11:42:29 AM, and 15/12/2006 11:42:29 AM
17990
      Username:         (set in TOAD Options, Procedure Editor)
17991
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 17992
 
3959 dpurdie 17993
******************************************************************************/
17994
   npvidcollector   relmgr_number_tab_t := relmgr_number_tab_t ();
17995
   PvId NUMBER;
1373 dpurdie 17996
BEGIN
17997
 
3959 dpurdie 17998
   npvidcollector := in_list_number2 (spvidlist);
17999
 
18000
   UPDATE package_versions
18001
      SET is_autobuildable = 'N'
18002
    WHERE pv_id IN (SELECT pv_id
18003
                      FROM release_content
18004
                     WHERE rtag_id = nrtagid);
1373 dpurdie 18005
 
3959 dpurdie 18006
 
18007
 
18008
   	FOR i IN 1..npvidcollector.COUNT
18009
	LOOP
18010
		PvId := npvidcollector(i);
1373 dpurdie 18011
 
3959 dpurdie 18012
		UPDATE package_versions
18013
		set is_autobuildable = 'Y'
18014
		where pv_id = PvId;
1373 dpurdie 18015
 
3959 dpurdie 18016
	END LOOP;
18017
 
18018
 
18019
END set_to_autobuildable;
4040 dpurdie 18020
 
3959 dpurdie 18021
/
4040 dpurdie 18022
--------------------------------------------------------
18023
--  DDL for Procedure SHIFT_INSTALL_ORDER
18024
--------------------------------------------------------
18025
set define off;
18026
 
5172 dpurdie 18027
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SHIFT_INSTALL_ORDER" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,
3959 dpurdie 18028
												  nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,
18029
                                                  nToInstallOrder IN PACKAGE_PATCHES.INSTALL_ORDER%TYPE ) IS
18030
/* ---------------------------------------------------------------------------
18031
    Version: 3.0
18032
   --------------------------------------------------------------------------- */
1373 dpurdie 18033
 
3959 dpurdie 18034
currInstallOrder NUMBER;
18035
FromInstallOrder NUMBER;
1373 dpurdie 18036
 
3959 dpurdie 18037
BEGIN
1373 dpurdie 18038
 
3959 dpurdie 18039
	 -- Get Current Install Order
18040
     SELECT pp.INSTALL_ORDER INTO currInstallOrder
18041
       FROM PACKAGE_PATCHES pp
18042
      WHERE pp.PV_ID = nPvId
18043
        AND pp.PATCH_ID = nPatchId;
1373 dpurdie 18044
 
18045
 
3959 dpurdie 18046
	 IF currInstallOrder > nToInstallOrder
18047
	 THEN
1373 dpurdie 18048
 
3959 dpurdie 18049
		FromInstallOrder := nToInstallOrder;
1373 dpurdie 18050
 
3959 dpurdie 18051
	    -- Shift others Up
18052
		UPDATE PACKAGE_PATCHES pp SET
18053
			   pp.INSTALL_ORDER = pp.INSTALL_ORDER + 1
18054
		 WHERE pp.PV_ID = nPvId
18055
           AND pp.PATCH_ID != nPatchId
18056
		   AND pp.INSTALL_ORDER BETWEEN  FromInstallOrder  AND  currInstallOrder - 1;
1373 dpurdie 18057
 
18058
 
3959 dpurdie 18059
	 ELSIF currInstallOrder < nToInstallOrder
18060
	 THEN
1373 dpurdie 18061
 
3959 dpurdie 18062
		FromInstallOrder := currInstallOrder + 1;
1373 dpurdie 18063
 
3959 dpurdie 18064
		-- Shift others Down
18065
        UPDATE PACKAGE_PATCHES pp SET
18066
			   pp.INSTALL_ORDER = pp.INSTALL_ORDER - 1
18067
		 WHERE pp.PV_ID = nPvId
18068
           AND pp.PATCH_ID != nPatchId
18069
		   AND pp.INSTALL_ORDER BETWEEN  FromInstallOrder  AND  nToInstallOrder;
1373 dpurdie 18070
 
3959 dpurdie 18071
	 END IF;
1373 dpurdie 18072
 
18073
 
3959 dpurdie 18074
	 -- Move Patch to new install order
18075
     UPDATE PACKAGE_PATCHES pp SET
18076
		    pp.INSTALL_ORDER = nToInstallOrder
18077
	  WHERE pp.PV_ID = nPvId
18078
	    AND pp.PATCH_ID = nPatchId;
1373 dpurdie 18079
 
18080
 
3959 dpurdie 18081
END Shift_Install_Order;
4040 dpurdie 18082
 
1374 dpurdie 18083
/
4040 dpurdie 18084
--------------------------------------------------------
18085
--  DDL for Procedure SPLIT_VERSION
18086
--------------------------------------------------------
18087
set define off;
18088
 
5172 dpurdie 18089
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SPLIT_VERSION" ( SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
3959 dpurdie 18090
                                            SSV_MM OUT PACKAGE_VERSIONS.V_MM%TYPE,
18091
                                            SSV_NMM OUT PACKAGE_VERSIONS.V_NMM%TYPE,
18092
                                            SSV_EXT OUT PACKAGE_VERSIONS.V_EXT%TYPE  ) IS
1373 dpurdie 18093
/* ---------------------------------------------------------------------------
3959 dpurdie 18094
    Version: 3.0.0
1373 dpurdie 18095
   --------------------------------------------------------------------------- */
18096
 
3959 dpurdie 18097
    TYPE VERSION_COMPONENTS_TYPE IS TABLE OF VARCHAR2(50)
18098
        INDEX BY BINARY_INTEGER;
1373 dpurdie 18099
 
3959 dpurdie 18100
    version_components VERSION_COMPONENTS_TYPE;
18101
    lastDot NUMBER := 0;
18102
    currDot NUMBER := 0;
1373 dpurdie 18103
 
18104
BEGIN
3959 dpurdie 18105
    currDot := INSTR ( SSpkg_version, '.', -1 );      -- Find 1st dot from the right
1373 dpurdie 18106
 
3959 dpurdie 18107
    IF ( currDot > 0 )
1373 dpurdie 18108
    THEN
3959 dpurdie 18109
        -- YES dot separator found --
18110
        SSV_EXT := GET_V_EXT( SSpkg_version );
1373 dpurdie 18111
 
3959 dpurdie 18112
        IF NOT SSV_EXT IS NULL
1373 dpurdie 18113
        THEN
3959 dpurdie 18114
            lastDot := currDot;
18115
            currDot := INSTR ( SSpkg_version, '.', -1, 2 );   -- Find 2nd dot from the right
1373 dpurdie 18116
 
3959 dpurdie 18117
            IF ( currDot > 0 )
18118
            THEN
18119
                -- XXXX.M.E
18120
                SSV_MM := SUBSTR ( SSpkg_version, currDot + 1, lastDot - currDot - 1);
18121
                SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot ) || SSV_EXT;
18122
            ELSE
18123
                -- XXXX.E
18124
                SSV_MM := NULL;
18125
                SSV_NMM := SSpkg_version;
18126
            END IF;
1373 dpurdie 18127
 
18128
        ELSE
3959 dpurdie 18129
            -- XXXX.M
18130
            SSV_MM := SUBSTR ( SSpkg_version, currDot + 1, LENGTH(SSpkg_version) - currDot );
18131
            SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot );
1373 dpurdie 18132
 
18133
        END IF;
18134
 
18135
    ELSE
3959 dpurdie 18136
        -- NO dot separator found --
18137
        -- XXXXXX
18138
        SSV_MM  := NULL;
18139
        SSV_NMM := SSpkg_version;
18140
        SSV_EXT := NULL;
1373 dpurdie 18141
 
18142
    END IF;
18143
 
3959 dpurdie 18144
END Split_Version;
4040 dpurdie 18145
 
1374 dpurdie 18146
/
4040 dpurdie 18147
--------------------------------------------------------
18148
--  DDL for Procedure SWITCH_REPRODUCIBLE_PACKAGE
18149
--------------------------------------------------------
18150
set define off;
18151
 
5172 dpurdie 18152
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SWITCH_REPRODUCIBLE_PACKAGE" (nPvId IN NUMBER, nUserId IN NUMBER)IS
3959 dpurdie 18153
Auto CHAR;
18154
/******************************************************************************
18155
   NAME:       SWITCH_REPRODUCIBLE_PACKAGE
18156
   PURPOSE:    
1373 dpurdie 18157
 
3959 dpurdie 18158
   REVISIONS:
18159
   Ver        Date        Author           Description
18160
   ---------  ----------  ---------------  ------------------------------------
18161
   1.0        14/12/2006   Rupesh Solanki       1. Created this procedure.
1373 dpurdie 18162
 
3959 dpurdie 18163
   NOTES:
1373 dpurdie 18164
 
3959 dpurdie 18165
   Automatically available Auto Replace Keywords:
18166
      Object Name:     SWITCH_REPRODUCIBLE_PACKAGE
18167
      Sysdate:         14/12/2006
18168
      Date and Time:   14/12/2006, 11:35:15 AM, and 14/12/2006 11:35:15 AM
18169
      Username:         (set in TOAD Options, Procedure Editor)
18170
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 18171
 
3959 dpurdie 18172
******************************************************************************/
1373 dpurdie 18173
BEGIN
18174
 
3959 dpurdie 18175
	 SELECT IS_AUTOBUILDABLE into Auto
18176
	 FROM PACKAGE_VERSIONS 
18177
	 WHERE PV_ID = nPvId;
1373 dpurdie 18178
 
3959 dpurdie 18179
	 IF Auto = 'N' Then
18180
 
18181
	 	UPDATE PACKAGE_VERSIONS
18182
	 	SET IS_AUTOBUILDABLE = 'Y'
18183
	 	WHERE PV_ID = nPvId;
18184
 
18185
 
18186
	 	/* LOG ACTION */
18187
   		Log_Action ( nPvId, 'reproducible_package', nUserId );	 
18188
 
18189
	 Else
18190
 
18191
		 UPDATE PACKAGE_VERSIONS
18192
		 SET IS_AUTOBUILDABLE = 'N'
18193
		 WHERE PV_ID = nPvId;
18194
 
18195
 
18196
	 	 /* LOG ACTION */
18197
   	 	 Log_Action ( nPvId, 'unreproducible_package', nUserId );	 
18198
 
18199
	 End If;
18200
 
18201
 
1373 dpurdie 18202
 
3959 dpurdie 18203
 
1373 dpurdie 18204
 
18205
 
18206
 
18207
 
3959 dpurdie 18208
END SWITCH_REPRODUCIBLE_PACKAGE;
4040 dpurdie 18209
 
1374 dpurdie 18210
/
4040 dpurdie 18211
--------------------------------------------------------
18212
--  DDL for Procedure SYNC_PROJECTS_NEW_VERSION
18213
--------------------------------------------------------
18214
set define off;
18215
 
5172 dpurdie 18216
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SYNC_PROJECTS_NEW_VERSION" ( nPv_id 				IN NUMBER,
3959 dpurdie 18217
														  sSyncRtagsInList		IN VARCHAR2,
18218
				                                          nUser_id 				IN NUMBER ) IS
1373 dpurdie 18219
/* ---------------------------------------------------------------------------
18220
    Version: 3.0.0
18221
   --------------------------------------------------------------------------- */
18222
 
3959 dpurdie 18223
	CURSOR sync_rtags_cur IS
18224
        SELECT rc.RTAG_ID, rc.BASE_VIEW_ID, pv.pv_id
18225
		  FROM release_content rc,
18226
		  	   package_versions pv,
18227
		       package_versions opv
18228
		 WHERE rc.pv_id = pv.pv_id
18229
		   AND opv.pkg_id = pv.pkg_id
18230
		   AND NVL(opv.v_ext, '|LINK_A_NULL|') = NVL(pv.v_ext, '|LINK_A_NULL|')
18231
		   AND opv.pv_id = nPv_id
18232
		   AND rtag_id IN ( SELECT *
18233
		   	   		   	      FROM THE (
18234
					   	   		   	    SELECT CAST( IN_LIST_NUMBER( sSyncRtagsInList ) AS RELMGR_NUMBER_TAB_t )
18235
					       		   	    FROM dual
18236
									   )
18237
						  );
18238
    sync_rtags_rec sync_rtags_cur%ROWTYPE;
1373 dpurdie 18239
 
18240
BEGIN
18241
 
3959 dpurdie 18242
	OPEN sync_rtags_cur;
18243
	FETCH sync_rtags_cur INTO sync_rtags_rec;
1373 dpurdie 18244
 
3959 dpurdie 18245
	WHILE sync_rtags_cur%FOUND
18246
	LOOP
18247
		DELETE FROM RELEASE_CONTENT
18248
		 WHERE rtag_id = sync_rtags_rec.rtag_id
18249
	       AND pv_id = sync_rtags_rec.pv_id;
1373 dpurdie 18250
 
3959 dpurdie 18251
		INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )
18252
	   		   VALUES ( sync_rtags_rec.rtag_id,
18253
		       		  	nPv_id,
18254
						sync_rtags_rec.BASE_VIEW_ID,
18255
	           			Ora_Sysdate,
18256
	           			nUser_id,
18257
 
18258
	      	   		   );
1373 dpurdie 18259
 
3959 dpurdie 18260
-- 		UPDATE RELEASE_CONTENT
18261
-- 	       SET pv_id = nPv_id,
18262
-- 	           insert_stamp = Ora_Sysdate,
18263
-- 	           insertor_id = nUser_id
18264
-- 	     WHERE rtag_id = sync_rtags_rec.rtag_id
18265
-- 	       AND pv_id = sync_rtags_rec.pv_id;
1373 dpurdie 18266
 
3959 dpurdie 18267
		FETCH sync_rtags_cur INTO sync_rtags_rec;
18268
	END LOOP;
1373 dpurdie 18269
 
3959 dpurdie 18270
	CLOSE sync_rtags_cur;
18271
 
18272
END Sync_Projects_New_Version;
4040 dpurdie 18273
 
1374 dpurdie 18274
/
4040 dpurdie 18275
--------------------------------------------------------
18276
--  DDL for Procedure TOUCH_RELEASE
18277
--------------------------------------------------------
18278
set define off;
18279
 
5172 dpurdie 18280
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE" ( nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS
3959 dpurdie 18281
/* ---------------------------------------------------------------------------
18282
    The purpose of this procedure is to flag in the database that the specified
18283
    release has changed to an extent that the procedure Rebuild_Environment
18284
    should be called at the next opportunity in order that the package state
18285
    icons are all re-evaluated.
18286
    The package state icons are controlled using the pkg_state column in the
18287
    release_content table, and Rebuild_Environment updates that column.
18288
    It will be through user action in the website that Rebuild_Environment will
18289
    be called, for example:
18290
      a) when setting/clearing ignore warnings checkboxes
18291
      b) when someone opens a page upon a rtag/pvid and rebuild_en flag is set
18292
      c) when someone opens the build order report form
18293
      d) when someone modifies dependencies of a package
18294
      + other scenarios (?)
18295
   --------------------------------------------------------------------------- */
18296
BEGIN
18297
   -- Touch Release for Rebuild
18298
   UPDATE RELEASE_TAGS rt SET
18299
          rt.REBUILD_ENV = 'Y',
18300
          rt.REBUILD_STAMP = 0
18301
    WHERE rt.RTAG_ID = nRtagId;
1373 dpurdie 18302
 
3959 dpurdie 18303
END Touch_Release;
4040 dpurdie 18304
 
1374 dpurdie 18305
/
4040 dpurdie 18306
--------------------------------------------------------
18307
--  DDL for Procedure TOUCH_RELEASE_BULK
18308
--------------------------------------------------------
18309
set define off;
18310
 
5172 dpurdie 18311
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE_BULK" ( nRtagIdList IN VARCHAR2 ) IS
1373 dpurdie 18312
/* ---------------------------------------------------------------------------
18313
    Version: 3.0
18314
   --------------------------------------------------------------------------- */
18315
 
18316
oRTagIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
18317
 
18318
BEGIN
18319
	 oRTagIdCollector := IN_LIST_NUMBER ( nRtagIdList );
18320
 
18321
	 -- Touch Release for Rebuild
18322
     UPDATE RELEASE_TAGS rt SET
18323
     	rt.REBUILD_ENV = 'Y',
18324
        rt.REBUILD_STAMP = 0
18325
      WHERE rt.RTAG_ID IN ( SELECT * FROM TABLE ( CAST ( oRTagIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
18326
 
18327
 
18328
END Touch_Release_Bulk;
4040 dpurdie 18329
 
1374 dpurdie 18330
/
4040 dpurdie 18331
--------------------------------------------------------
18332
--  DDL for Procedure TO_INSERT_VTREE_ID
18333
--------------------------------------------------------
18334
set define off;
18335
 
5172 dpurdie 18336
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TO_INSERT_VTREE_ID" IS
1373 dpurdie 18337
 
3959 dpurdie 18338
/******************************************************************************
18339
   NAME:       TO_INSERT_VTREE_ID
18340
   PURPOSE:    
1373 dpurdie 18341
 
3959 dpurdie 18342
   REVISIONS:
18343
   Ver        Date        Author           Description
18344
   ---------  ----------  ---------------  ------------------------------------
18345
   1.0        2/02/2007          1. Created this procedure.
1373 dpurdie 18346
 
3959 dpurdie 18347
   NOTES:
1373 dpurdie 18348
 
3959 dpurdie 18349
   Automatically available Auto Replace Keywords:
18350
      Object Name:     TO_INSERT_VTREE_ID
18351
      Sysdate:         2/02/2007
18352
      Date and Time:   2/02/2007, 8:42:56 AM, and 2/02/2007 8:42:56 AM
18353
      Username:         (set in TOAD Options, Procedure Editor)
18354
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 18355
 
3959 dpurdie 18356
******************************************************************************/
18357
VTreeId NUMBER;																			  																	   
1373 dpurdie 18358
 
18359
 
3959 dpurdie 18360
	CURSOR curInfo IS
18361
    SELECT RTAG_ID
18362
	FROM RELEASE_TAGS
18363
	WHERE VTREE_ID IS NULL;
18364
    recInfo curInfo%ROWTYPE;
18365
 
18366
 
1373 dpurdie 18367
BEGIN
18368
 
3959 dpurdie 18369
	OPEN curInfo;
18370
    FETCH curInfo INTO recInfo;
18371
 
18372
	WHILE curInfo%FOUND
18373
	LOOP
18374
		SELECT SEQ_VTREE_ID.nextval INTO VTreeId FROM DUAL;
1373 dpurdie 18375
 
3959 dpurdie 18376
		UPDATE RELEASE_TAGS
18377
		SET VTREE_ID = VTreeId
18378
		WHERE RTAG_ID = recInfo.RTAG_ID;
1373 dpurdie 18379
 
3959 dpurdie 18380
		FETCH curInfo INTO recInfo;
18381
	END LOOP;
1373 dpurdie 18382
 
3959 dpurdie 18383
	CLOSE curInfo;
1373 dpurdie 18384
 
3959 dpurdie 18385
END TO_INSERT_VTREE_ID;
4040 dpurdie 18386
 
1374 dpurdie 18387
/
4040 dpurdie 18388
--------------------------------------------------------
18389
--  DDL for Procedure UNDEPRECATE_PACKAGE
18390
--------------------------------------------------------
18391
set define off;
18392
 
5384 dpurdie 18393
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNDEPRECATE_PACKAGE" (
18394
    nPvId   IN PACKAGE_VERSIONS.PV_ID%TYPE,
18395
    nRtagId IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,
18396
    nPkgId  IN DEPRECATED_PACKAGES.PKG_ID%TYPE,
18397
    nUserId IN NUMBER)
18398
IS
18399
  ext      VARCHAR2(50);
18400
 
1373 dpurdie 18401
BEGIN
5384 dpurdie 18402
  --Extract the package extension
18403
  SELECT V_EXT INTO ext 
18404
  FROM PACKAGE_VERSIONS
18405
  WHERE PV_ID = nPvId;
1373 dpurdie 18406
 
5384 dpurdie 18407
    -- Undeprecate Package
18408
    DELETE
18409
    FROM DEPRECATED_PACKAGES
18410
    WHERE RTAG_ID = nRtagId
18411
    AND PKG_ID    = nPkgId
18412
    AND NVL(V_EXT,'.NULL') = NVL(ext,'.NULL');
18413
 
18414
    -- Update Release Contents entry
18415
    -- Process PackageName.ext for the package. ie: Allow multiple
18416
    -- versions of the package to be in the release.
18417
 
18418
    UPDATE RELEASE_CONTENT
18419
    SET 
18420
      DEPRECATED_STATE = NULL
18421
    WHERE RTAG_ID      = nRtagId
18422
    AND PV_ID IN (
18423
      SELECT PV.PV_ID
18424
      FROM PACKAGE_VERSIONS PV
18425
      WHERE PV.PKG_ID   = nPkgId
18426
      AND NVL(PV.V_EXT, '.NULL') = NVL(ext,'.NULL')
18427
      );
1373 dpurdie 18428
 
5384 dpurdie 18429
  -- Update consumers of the package
18430
  --  Update ALL packages in the Release
1373 dpurdie 18431
 
5384 dpurdie 18432
  REBUILD_DEPRECATE_STATE(nRtagId);      
1373 dpurdie 18433
 
18434
END Undeprecate_Package;
4040 dpurdie 18435
 
1374 dpurdie 18436
/
4040 dpurdie 18437
--------------------------------------------------------
18438
--  DDL for Procedure UNLOCK_PACKAGE
18439
--------------------------------------------------------
18440
set define off;
18441
 
5172 dpurdie 18442
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNLOCK_PACKAGE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 18443
											 nUserId IN NUMBER ) IS
18444
/* ---------------------------------------------------------------------------
18445
    Author: Rupesh Solanki
18446
 
18447
	Version: 4.0
18448
   --------------------------------------------------------------------------- */
18449
   STATE CHAR;
18450
 
18451
BEGIN
18452
 
18453
	SELECT DLOCKED INTO STATE
18454
	FROM PACKAGE_VERSIONS
18455
	WHERE PV_ID = nPvId; 
1373 dpurdie 18456
 
3959 dpurdie 18457
	IF STATE = 'A' THEN --It was made official for autobuilds
18458
		-- Unlock Package
18459
		UPDATE PACKAGE_VERSIONS pv SET
18460
		pv.DLOCKED = 'P'
18461
		WHERE pv.PV_ID = nPvId;	
18462
	ELSE
18463
		-- Unlock Package
18464
		UPDATE PACKAGE_VERSIONS pv SET
18465
		pv.DLOCKED = 'N'
18466
		WHERE pv.PV_ID = nPvId;	
18467
 
18468
	END IF;	   
18469
 
18470
    /* LOG ACTION */
18471
   	Log_Action ( nPvId, 'unlock_package', nUserId );
18472
 
18473
END Unlock_Package;
4040 dpurdie 18474
 
3959 dpurdie 18475
/
4040 dpurdie 18476
--------------------------------------------------------
18477
--  DDL for Procedure UNRIPPLE_PACKAGE
18478
--------------------------------------------------------
18479
set define off;
18480
 
5172 dpurdie 18481
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNRIPPLE_PACKAGE" (
3959 dpurdie 18482
        sPvIdList IN VARCHAR2,
18483
        nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
18484
        nUserId IN NUMBER
18485
    ) IS
18486
/* ---------------------------------------------------------------------------
18487
    Version: 4.1
18488
   --------------------------------------------------------------------------- */
18489
 
18490
    oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
18491
 
18492
BEGIN
18493
 
18494
    IF (sPvIdList IS NULL) THEN
18495
        RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
18496
    END IF;
18497
 
18498
    oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
18499
 
18500
    -- UnRipple Package
18501
    INSERT INTO DO_NOT_RIPPLE ( RTAG_ID, PV_ID )
18502
    SELECT nRtagId, pv.PV_ID
18503
    FROM PACKAGE_VERSIONS pv
18504
    WHERE pv.PV_ID IN (
18505
        SELECT *
18506
        FROM TABLE (
18507
            CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t )
18508
        )
18509
    );
18510
 
18511
    /* LOG ACTION */
18512
    Log_Action_Bulk ( sPvIdList, 'unripple_package', nUserId );
18513
 
18514
END UnRipple_Package;
4040 dpurdie 18515
 
3959 dpurdie 18516
/
4040 dpurdie 18517
--------------------------------------------------------
18518
--  DDL for Procedure UNRIPPLE_PACKAGE_INDIRECT
18519
--------------------------------------------------------
18520
set define off;
18521
 
5172 dpurdie 18522
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNRIPPLE_PACKAGE_INDIRECT" (
3959 dpurdie 18523
        nPvId IN NUMBER,
18524
        nRtagId IN NUMBER,
18525
        nUserId IN NUMBER,
18526
        nrootCausePvId IN NUMBER,
18527
        srootCause IN VARCHAR2,
18528
        srootFile IN VARCHAR2
18529
    ) IS
18530
    ReleaseLocation VARCHAR2(4000);
18531
BEGIN
18532
 
18533
    -- UnRipple Package
18534
    delete from do_not_ripple where rtag_id=nRtagId and pv_id=nPvId;
18535
    INSERT INTO DO_NOT_RIPPLE ( RTAG_ID, PV_ID, ROOT_PV_ID, ROOT_CAUSE, ROOT_FILE ) values (nRtagId, nPvId, nrootCausePvId, srootCause, srootFile);
18536
 
18537
    /* LOG ACTION */
18538
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
18539
              FROM PROJECTS proj,
18540
                   RELEASE_TAGS rt
18541
             WHERE rt.RTAG_ID = nRtagId
18542
               AND rt.PROJ_ID = proj.PROJ_ID;
18543
 
18544
    /* LOG ACTION */
18545
    Log_Action ( nPvId, 'unripple_package', nUserId, 'Location: '|| ReleaseLocation );
18546
 
18547
END UnRipple_Package_Indirect;
4040 dpurdie 18548
 
3959 dpurdie 18549
/
4040 dpurdie 18550
--------------------------------------------------------
18551
--  DDL for Procedure UPDATE_ADDITIONAL_NOTE
18552
--------------------------------------------------------
18553
set define off;
18554
 
5172 dpurdie 18555
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_ADDITIONAL_NOTE" ( pnNote_id IN NUMBER,
3959 dpurdie 18556
													 pnPv_id IN NUMBER,
18557
                                                     psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,
18558
                                                     psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,
18559
                                                     pnUser_id IN NUMBER,
18560
                                                     outErrCode OUT NUMBER
18561
                                                    ) IS
18562
/* ---------------------------------------------------------------------------
18563
    Version: 3.0.1
18564
   --------------------------------------------------------------------------- */
18565
 
18566
    newID NUMBER;
18567
 
18568
    /* Disallow duplicate Note Titles */
18569
	CURSOR an_duplicate_cur IS
18570
        SELECT COUNT(*) AS cnt_note
18571
          FROM ADDITIONAL_NOTES
18572
         WHERE pv_id = pnPv_id
18573
           AND note_id != pnNote_id
18574
           AND note_title = psNote_title;
18575
    an_duplicate_rec an_duplicate_cur%ROWTYPE;
18576
 
18577
BEGIN
18578
	outErrCode := -1;		-- Set default return error code to ERROR state
18579
 
18580
	OPEN an_duplicate_cur;
18581
    FETCH an_duplicate_cur INTO an_duplicate_rec;
18582
 
18583
    IF an_duplicate_rec.cnt_note < 1
18584
    THEN
18585
		--- Update Additional Note ---
18586
	    UPDATE ADDITIONAL_NOTES SET
18587
		       note_title = psNote_title,
18588
		       note_body = psNote_body,
18589
		       mod_date = Ora_Sysdate,
18590
		       mod_user = pnUser_id
18591
         WHERE note_id = pnNote_id
18592
           AND pv_id = pnPv_id;
18593
		outErrCode := 0;		-- Set return to SUCCESS
18594
	END IF;
18595
 
18596
	CLOSE an_duplicate_cur;
18597
END Update_Additional_Note;
4040 dpurdie 18598
 
3959 dpurdie 18599
/
4040 dpurdie 18600
--------------------------------------------------------
18601
--  DDL for Procedure UPDATE_DEPRECATION_STATE
18602
--------------------------------------------------------
18603
set define off;
18604
 
5172 dpurdie 18605
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_DEPRECATION_STATE" (nnrtag_id IN NUMBER) AS
3959 dpurdie 18606
 
18607
recno NUMBER;
18608
 
18609
CURSOR deprecate_cur IS
18610
 
18611
SELECT rc.pv_id
18612
FROM release_content rc
18613
WHERE rtag_id = nnrtag_id
18614
 AND deprecated_state IN(7);
18615
 
18616
deprecate_rec deprecate_cur % rowtype;
18617
 
18618
BEGIN
18619
 
18620
  OPEN deprecate_cur;
18621
 
18622
  FETCH deprecate_cur
18623
  INTO deprecate_rec;
18624
 
18625
  WHILE deprecate_cur % FOUND
18626
  LOOP
18627
 
18628
    SELECT COUNT(*)
18629
    INTO recno
18630
    FROM package_dependencies pd,
18631
      release_content rc
18632
    WHERE pd.pv_id = deprecate_rec.pv_id
18633
     AND rc.pv_id = pd.dpv_id
18634
     AND rc.rtag_id = nnrtag_id
18635
     AND rc.deprecated_state IN(6,   7);
18636
 
18637
    IF recno = 0 THEN
18638
 
18639
      UPDATE release_content
18640
      SET pkg_id = NULL, deprecated_state = NULL
18641
      WHERE pv_id = deprecate_rec.pv_id
18642
       AND rtag_id = nnrtag_id;
18643
 
18644
    END IF;
18645
 
18646
    FETCH deprecate_cur
18647
    INTO deprecate_rec;
18648
  END LOOP;
18649
 
18650
END;
4040 dpurdie 18651
 
3959 dpurdie 18652
/
4040 dpurdie 18653
--------------------------------------------------------
18654
--  DDL for Procedure UPDATE_MISC_VIEW
18655
--------------------------------------------------------
18656
set define off;
18657
 
5172 dpurdie 18658
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_MISC_VIEW" IS
1373 dpurdie 18659
/******************************************************************************
3959 dpurdie 18660
   NAME:       UPDATE_MISC_VIEW
18661
   PURPOSE:    
1373 dpurdie 18662
 
18663
   REVISIONS:
18664
   Ver        Date        Author           Description
18665
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 18666
   1.0        16/03/2007          1. Created this procedure.
1373 dpurdie 18667
 
18668
   NOTES:
18669
 
18670
   Automatically available Auto Replace Keywords:
3959 dpurdie 18671
      Object Name:     UPDATE_MISC_VIEW
18672
      Sysdate:         16/03/2007
18673
      Date and Time:   16/03/2007, 8:56:29 AM, and 16/03/2007 8:56:29 AM
1373 dpurdie 18674
      Username:         (set in TOAD Options, Procedure Editor)
18675
      Table Name:       (set in the "New PL/SQL Object" dialog)
18676
 
18677
******************************************************************************/
3959 dpurdie 18678
   CURSOR view_cur /*Create a record set to store the ripple data*/
18679
   IS
18680
   	 SELECT pkg.pkg_id, rc.base_view_id 
18681
	 FROM package_versions pv, packages pkg, release_content rc
18682
	 where rc.rtag_id = 2362
18683
	 and rc.pv_id = pv.pv_id
18684
	 and pv.pkg_id = pkg.pkg_id;
18685
   view_rec   view_cur%ROWTYPE;
18686
 
18687
 
18688
 
1373 dpurdie 18689
BEGIN
3959 dpurdie 18690
   OPEN view_cur;
1373 dpurdie 18691
 
3959 dpurdie 18692
   FETCH view_cur
18693
    INTO view_rec;
1373 dpurdie 18694
 
3959 dpurdie 18695
   WHILE view_cur%FOUND
18696
   LOOP
1373 dpurdie 18697
 
3959 dpurdie 18698
 
18699
	   update release_content
18700
	   set base_view_id = view_rec.base_view_id
18701
	   where rtag_id = 8027
18702
	   and pv_id IN 
18703
	   (
18704
	   	select pv.pv_id from release_content rc, package_versions pv
18705
		where rc.rtag_id = 8027
18706
		and pv.pv_id = rc.pv_id
18707
		and pv.pkg_id = view_rec.pkg_id 
18708
 
18709
	   );
18710
 
18711
 
1373 dpurdie 18712
 
3959 dpurdie 18713
 
18714
 
18715
 
18716
 
18717
 
1373 dpurdie 18718
 
3959 dpurdie 18719
   FETCH view_cur
18720
   		 INTO view_rec;
18721
   END LOOP;	 
1373 dpurdie 18722
 
18723
 
18724
 
18725
 
3959 dpurdie 18726
 
18727
END UPDATE_MISC_VIEW; 
4040 dpurdie 18728
 
1374 dpurdie 18729
/
4040 dpurdie 18730
--------------------------------------------------------
18731
--  DDL for Procedure UPDATE_PACKAGE_DEPENDENCY
18732
--------------------------------------------------------
18733
set define off;
18734
 
5172 dpurdie 18735
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_DEPENDENCY" ( NNpv_id IN NUMBER,
3959 dpurdie 18736
                                                        SSdep_name IN PACKAGES.pkg_name%TYPE,
18737
                                                        SSdep_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
18738
                                                        CCbuild_type IN PACKAGE_DEPENDENCIES.build_type%TYPE,
18739
                                                        NNuser_id IN NUMBER,
18740
                                                        NNdelete_old_dependency IN NUMBER
18741
                                                       ) IS
1373 dpurdie 18742
/* ---------------------------------------------------------------------------
3959 dpurdie 18743
    Version: 3.3
1373 dpurdie 18744
   --------------------------------------------------------------------------- */
18745
 
3959 dpurdie 18746
    retPV_ID NUMBER;
18747
    SSV_EXT PACKAGE_VERSIONS.v_ext%TYPE;
18748
	DepIsPatch	PACKAGE_VERSIONS.is_patch%TYPE;
18749
    PvIsPatch	PACKAGE_VERSIONS.is_patch%TYPE;
18750
    NNpkg_id NUMBER;
18751
    NNdpkg_id NUMBER;
1373 dpurdie 18752
 
18753
BEGIN
3959 dpurdie 18754
    --- Seed database with package_name and version if required ---
18755
    Seed_Package_Names_Versions ( SSdep_name, SSdep_version, NNuser_id, retPV_ID );
1373 dpurdie 18756
 
3959 dpurdie 18757
    -- get v_ext,pkg_id of current dependency
18758
    SELECT v_ext, pkg_id, is_patch INTO SSV_EXT, NNdpkg_id, DepIsPatch
18759
      FROM PACKAGE_VERSIONS
18760
     WHERE pv_id = retPV_ID;
1373 dpurdie 18761
 
3959 dpurdie 18762
    -- get pkg_id of parent package
18763
    SELECT pkg_id, is_patch INTO NNpkg_id, PvIsPatch
18764
      FROM PACKAGE_VERSIONS
18765
     WHERE pv_id = NNpv_id;
1373 dpurdie 18766
 
18767
 
3959 dpurdie 18768
	IF ( (PvIsPatch IS NULL) AND (DepIsPatch IS NULL) ) OR
18769
    	( (PvIsPatch IS NOT NULL) )THEN
1373 dpurdie 18770
 
3959 dpurdie 18771
	    IF NNdelete_old_dependency = 1 THEN
18772
	        /* Used for CUSTOM dependency add/edit */
1373 dpurdie 18773
 
3959 dpurdie 18774
	        --- Remove old dependency ---
18775
            IF (PvIsPatch IS NULL) THEN
18776
            	-- Do it for Packages
18777
		        DELETE FROM PACKAGE_DEPENDENCIES
18778
		         WHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN
18779
		            (
18780
		            SELECT dep.*
18781
		              FROM PACKAGE_DEPENDENCIES dep,
18782
		                   PACKAGE_VERSIONS dpv,
18783
		                   PACKAGE_VERSIONS pv
18784
		             WHERE dep.dpv_id = dpv.pv_id
18785
		               AND dep.pv_id = NNpv_id
18786
		               AND pv.pv_id = retPV_ID
18787
		               AND dpv.pkg_id = pv.pkg_id
18788
		               AND NVL(dpv.v_ext, '|LINK_A_NULL|') = NVL(SSV_EXT, '|LINK_A_NULL|')
18789
		            );
18790
            ELSE
18791
            	-- Do it for Patches
18792
                DELETE FROM PACKAGE_DEPENDENCIES
18793
		         WHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN
18794
		            (
18795
		            SELECT dep.*
18796
		              FROM PACKAGE_DEPENDENCIES dep
18797
		             WHERE dep.dpv_id = retPV_ID
18798
		               AND dep.pv_id = NNpv_id
18799
		            );
18800
			END IF;
1373 dpurdie 18801
 
3959 dpurdie 18802
	    END IF;
1373 dpurdie 18803
 
3959 dpurdie 18804
	    /* NOTE: for JATS, ANTS dependency update, it is expected that all dependencies are removed. */
18805
 
18806
	    --- Add new dependency ---
18807
	    INSERT INTO PACKAGE_DEPENDENCIES ( pv_id, dpv_id, pkg_id, dpkg_id, build_type )
18808
	    VALUES ( NNpv_id, retPV_ID, NNpkg_id, NNdpkg_id, CCbuild_type );
18809
 
18810
	END IF;
18811
 
18812
END Update_Package_Dependency;
4040 dpurdie 18813
 
1374 dpurdie 18814
/
4040 dpurdie 18815
--------------------------------------------------------
18816
--  DDL for Procedure UPDATE_PACKAGE_STATES
18817
--------------------------------------------------------
18818
set define off;
18819
 
5172 dpurdie 18820
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_STATES" ( NNrtag_id IN NUMBER,
3959 dpurdie 18821
                                                    NNsession_num IN NUMBER ) IS
18822
/* =============  STATE RULES =================== */
18823
/*
18824
   MNR   MRR   MN   MR    |   pkg_state
18825
   ------------------------------------
18826
 
18827
 
18828
 
18829
 
18830
   ------------------------------------
18831
 
18832
 
18833
 
18834
 
18835
   ------------------------------------
18836
    1     0     0     0   |      MINOR_READY
18837
    1     0     0     1   |      MAJOR
18838
    1     0     1     0   |      MINOR
18839
    1     0     1     1   |      MAJOR
18840
   ------------------------------------
18841
    1     1     0     0   |      MAJOR_READY
18842
    1     1     0     1   |      MAJOR
18843
    1     1     1     0   |      MAJOR
18844
    1     1     1     1   |      MAJOR
18845
   ------------------------------------
18846
*/
18847
BEGIN
18848
    /*----------------------------------------------
18849
    ||              MINOR READY
18850
    */----------------------------------------------
1373 dpurdie 18851
 
3959 dpurdie 18852
    UPDATE release_content
18853
       SET pkg_state = 4
18854
     WHERE rtag_id = NNrtag_id
18855
       AND pv_id IN
18856
           (
18857
           SELECT DISTINCT pv_id
18858
           FROM temp_env_states
18859
           WHERE session_num = NNsession_num
18860
             AND level_num = 1
18861
             AND tes_state = 2
18862
           );
1373 dpurdie 18863
 
3959 dpurdie 18864
    /*----------------------------------------------
18865
    ||              MAJOR READY
18866
    */----------------------------------------------
18867
    UPDATE release_content
18868
       SET pkg_state = 3
18869
     WHERE rtag_id = NNrtag_id
18870
       AND pv_id IN
18871
           (
18872
           SELECT DISTINCT pv_id
18873
           FROM temp_env_states
18874
           WHERE session_num = NNsession_num
18875
             AND level_num = 1
18876
             AND tes_state IN (0,1)
18877
           );
1373 dpurdie 18878
 
3959 dpurdie 18879
    /*----------------------------------------------
18880
    ||                MINOR
18881
    */----------------------------------------------
18882
    UPDATE release_content
18883
       SET pkg_state = 2
18884
     WHERE rtag_id = NNrtag_id
18885
       AND pv_id IN
18886
           (
18887
           SELECT DISTINCT pv_id
18888
            FROM temp_env_states
18889
            WHERE session_num = NNsession_num
18890
              AND level_num >= 2
18891
              AND tes_state = 2
18892
            MINUS
18893
           SELECT pv_id
18894
             FROM release_content
18895
            WHERE rtag_id = NNrtag_id
18896
              AND pkg_state = 3
18897
           );
1373 dpurdie 18898
 
3959 dpurdie 18899
    /*----------------------------------------------
18900
    ||                MAJOR
18901
    */----------------------------------------------
18902
    UPDATE release_content
18903
       SET pkg_state = 1
18904
     WHERE rtag_id = NNrtag_id
18905
       AND pv_id IN
18906
           (
18907
           SELECT DISTINCT pv_id
18908
           FROM temp_env_states
18909
           WHERE session_num = NNsession_num
18910
             AND level_num >= 2
18911
             AND tes_state IN (0,1)
18912
           /* MAJOR EXCEPTION - When package has Major Ready and Minor */
18913
           UNION
18914
           SELECT DISTINCT tes.pv_id
18915
           FROM temp_env_states tes,
18916
                release_content rc
18917
           WHERE tes.session_num = NNsession_num
18918
             AND tes.level_num >= 2
18919
             AND tes.tes_state = 2
18920
             AND rtag_id = NNrtag_id
18921
             AND rc.pv_id = tes.pv_id
18922
             AND rc.pkg_state = 3
18923
           );
1373 dpurdie 18924
 
3959 dpurdie 18925
    /*----------------------------------------------
18926
    ||                 OK
18927
    */----------------------------------------------
18928
    UPDATE release_content
18929
       SET pkg_state = 0
18930
     WHERE rtag_id = NNrtag_id
18931
       AND pv_id IN
18932
           (
18933
           SELECT rc.pv_id
18934
             FROM release_content rc
18935
            WHERE rc.rtag_id = NNrtag_id
18936
              AND NOT rc.pv_id IN
18937
                    (
18938
                     SELECT DISTINCT pv_id
18939
                     FROM temp_env_states WHERE session_num = NNsession_num
18940
                    )
18941
           );
1373 dpurdie 18942
 
3959 dpurdie 18943
      Update_Deprecation_State (NNrtag_id);
1373 dpurdie 18944
 
3959 dpurdie 18945
    /*----------------------------------------------
18946
    ||              PEGGED VERSIONS DEPENDENT
18947
    */----------------------------------------------
18948
    UPDATE release_content
18949
       SET pkg_state = 10
18950
     WHERE rtag_id = NNrtag_id
18951
       AND pv_id IN
18952
           (
18953
           SELECT DISTINCT pv_id
18954
           FROM pegged_versions pegv
18955
           WHERE pegv.rtag_id = NNrtag_id
18956
           );
1373 dpurdie 18957
 
3959 dpurdie 18958
    /*----------------------------------------------
18959
    ||              ADVISORY RIPPLE
18960
    */----------------------------------------------
18961
    UPDATE release_content
18962
       SET pkg_state = 8
18963
     WHERE rtag_id = NNrtag_id
18964
       AND pv_id IN
18965
           (
18966
           SELECT DISTINCT pv_id
18967
           FROM advisory_ripple ar
18968
           WHERE ar.rtag_id = NNrtag_id
18969
           )
18970
       AND pv_id IN
18971
           (
18972
           SELECT DISTINCT pv_id
18973
           FROM release_content rc
18974
           WHERE rc.rtag_id = NNrtag_id
18975
           );
5172 dpurdie 18976
 
18977
    /*----------------------------------------------
18978
    ||              SDK Imported
18979
    */----------------------------------------------
18980
    UPDATE release_content
18981
       SET pkg_state = 11
18982
     WHERE rtag_id = NNrtag_id
18983
       AND sdktag_id is not null;           
1373 dpurdie 18984
 
3959 dpurdie 18985
END Update_Package_States;
4040 dpurdie 18986
 
3959 dpurdie 18987
/
4040 dpurdie 18988
--------------------------------------------------------
18989
--  DDL for Procedure UPDATE_PROCESSES
18990
--------------------------------------------------------
18991
set define off;
18992
 
5172 dpurdie 18993
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PROCESSES" 
3959 dpurdie 18994
IS
1373 dpurdie 18995
 
3959 dpurdie 18996
proc_id NUMBER;
18997
/******************************************************************************
18998
   NAME:       DELETE_DO_NOT_RIPPLE
18999
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
19000
               IS RELEASED
1373 dpurdie 19001
 
3959 dpurdie 19002
   REVISIONS:
19003
   Ver        Date        Author           Description
19004
   ---------  ----------  ---------------  ------------------------------------
19005
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
1373 dpurdie 19006
 
3959 dpurdie 19007
   NOTES:
1373 dpurdie 19008
 
3959 dpurdie 19009
   Automatically available Auto Replace Keywords:
19010
      Object Name:     DELETE_DO_NOT_RIPPLE
19011
      Sysdate:         21/04/2006
19012
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
19013
      Username:         (set in TOAD Options, Procedure Editor)
19014
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 19015
 
3959 dpurdie 19016
******************************************************************************/
19017
   CURSOR ripple_cur
19018
   IS
19019
      select proc_id,  proc_name, run_as, pkg_owner, is_interface from processes;
1373 dpurdie 19020
 
3959 dpurdie 19021
   ripple_rec   ripple_cur%ROWTYPE;
19022
BEGIN
19023
   OPEN ripple_cur;
19024
 
19025
   FETCH ripple_cur
19026
    INTO ripple_rec;
19027
 
19028
   WHILE ripple_cur%FOUND
19029
   LOOP
19030
 
19031
 
19032
update deployment_manager.processes_config 
19033
set proc_id = ripple_rec.proc_id
19034
where pkg_health_tag = ripple_rec.proc_name
19035
and cmd_interface IS NULL
19036
and pkg_owner IS NULL
19037
and is_interface IS NULL; 
19038
 
19039
 
19040
      FETCH ripple_cur
19041
       INTO ripple_rec;
19042
   END LOOP;
19043
END UPDATE_PROCESSES;
4040 dpurdie 19044
 
1374 dpurdie 19045
/
4040 dpurdie 19046
--------------------------------------------------------
19047
--  DDL for Procedure UPDATE_RUNTIME_DEPENDENCY
19048
--------------------------------------------------------
19049
set define off;
19050
 
5172 dpurdie 19051
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_RUNTIME_DEPENDENCY" ( NNpv_id IN RUNTIME_DEPENDENCIES.pv_id%TYPE,
3959 dpurdie 19052
				   	  		  						    NNrtd_id IN RUNTIME_DEPENDENCIES.rtd_id%TYPE,
19053
				   	  		  						    SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
19054
													    SSrtd_url IN RUNTIME_DEPENDENCIES.rtd_url%TYPE,
19055
													    SSrtd_comments IN RUNTIME_DEPENDENCIES.rtd_comments%TYPE,
19056
													    NNuser_id IN NUMBER ) IS
1373 dpurdie 19057
/* ---------------------------------------------------------------------------
3959 dpurdie 19058
    Version: 3.0.1
1373 dpurdie 19059
   --------------------------------------------------------------------------- */
19060
 
3959 dpurdie 19061
    retRTD_ID	NUMBER;
19062
	CURSOR rtd_cur IS
19063
	    SELECT pv.pkg_version, pkg.pkg_name
19064
		  FROM runtime_dependencies rtd,
19065
		       package_versions pv,
19066
			   packages pkg
19067
		 WHERE rtd.rtd_id = pv.pv_id
19068
		   AND pv.pkg_id = pkg.pkg_id
19069
		   AND rtd.pv_id = NNpv_id
19070
		   AND rtd.rtd_id = NNrtd_id;
19071
	   rtd_rec rtd_cur%ROWTYPE;
1373 dpurdie 19072
 
3959 dpurdie 19073
	CURSOR old_rtd_cur IS
19074
	    SELECT pv.pv_id
19075
		  FROM package_versions pv
19076
		 WHERE pv.pkg_id IN ( SELECT rtdpv.pkg_id
19077
		 	   			 	    FROM package_versions rtdpv
19078
							   WHERE rtdpv.pv_id = NNrtd_id )
19079
		   AND pv.pkg_version = SSrtd_version;
19080
	old_rtd_rec old_rtd_cur%ROWTYPE;
1373 dpurdie 19081
 
3959 dpurdie 19082
 
1373 dpurdie 19083
BEGIN
19084
 
3959 dpurdie 19085
    -- Get current runtime dependency details
19086
	OPEN rtd_cur;
19087
    FETCH rtd_cur INTO rtd_rec;
1373 dpurdie 19088
 
19089
 
19090
 
19091
 
3959 dpurdie 19092
	IF rtd_rec.pkg_version != SSrtd_version THEN
19093
           -- Version has changed, hence create new runtime dependency --
19094
	    /* NOTE: You must create new version as updating just a version will affect
19095
		        all packages using this runtime dependency and user does not expect that.
19096
		        It is safer to create new version */
19097
		OPEN old_rtd_cur;
19098
		FETCH old_rtd_cur INTO old_rtd_rec;
1373 dpurdie 19099
 
19100
 
3959 dpurdie 19101
		IF old_rtd_cur%NOTFOUND
19102
		THEN
19103
			-- Version not found, hence Create New version --
19104
    		Seed_Package_Names_Versions ( rtd_rec.pkg_name, SSrtd_version, NNuser_id, retRTD_ID );
1373 dpurdie 19105
 
3959 dpurdie 19106
			-- Update runtime dependency table --
19107
			UPDATE runtime_dependencies SET
19108
				   rtd_id = retRTD_ID,
19109
				   rtd_url = SSrtd_url,
19110
				   rtd_comments = SSrtd_comments
19111
			 WHERE pv_id = NNpv_id
19112
			   AND rtd_id = NNrtd_id;
1373 dpurdie 19113
 
3959 dpurdie 19114
		ELSE
19115
			-- Update runtime dependency table --
19116
			UPDATE runtime_dependencies SET
19117
				   rtd_id = old_rtd_rec.pv_id,
19118
				   rtd_url = SSrtd_url,
19119
				   rtd_comments = SSrtd_comments
19120
			 WHERE pv_id = NNpv_id
19121
			   AND rtd_id = NNrtd_id;
19122
 
19123
		END IF;
19124
 
19125
 
19126
		CLOSE old_rtd_cur;
19127
 
19128
	ELSE
19129
		--  Version has not changed, hence update everithing except	version --
19130
		UPDATE runtime_dependencies SET
19131
			   rtd_url = SSrtd_url,
19132
			   rtd_comments = SSrtd_comments
19133
		 WHERE pv_id = NNpv_id
19134
		   AND rtd_id = NNrtd_id;
19135
 
19136
 
19137
 
19138
	END IF;
19139
 
19140
 
19141
	CLOSE rtd_cur;
19142
 
19143
END Update_Runtime_Dependency;
4040 dpurdie 19144
 
1374 dpurdie 19145
/
4040 dpurdie 19146
--------------------------------------------------------
19147
--  DDL for Procedure UPDATE_UNIT_TEST
19148
--------------------------------------------------------
19149
set define off;
19150
 
5172 dpurdie 19151
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST" ( nTest_id IN NUMBER,
3959 dpurdie 19152
	   	  		  							   nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,  	
19153
											   nPv_id IN NUMBER,
19154
											   nUserId IN NUMBER,
19155
	                                           sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,
19156
											   sNumof_test IN UNIT_TESTS.NUMOF_TEST%TYPE,
19157
	                                           sCompletion_date IN VARCHAR2,
19158
											   sDpkg_path IN VARCHAR2,
19159
											   enumTEST_TYPE_AUTOMATIC IN NUMBER,
19160
											   sResults IN VARCHAR2,
19161
											   outFileName OUT VARCHAR2
19162
                                              ) IS
1373 dpurdie 19163
/* ---------------------------------------------------------------------------
3959 dpurdie 19164
    Version: 3.1.0
1373 dpurdie 19165
   --------------------------------------------------------------------------- */
3959 dpurdie 19166
 
19167
   	FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';
1373 dpurdie 19168
 
3959 dpurdie 19169
    ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;
19170
    ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;
1373 dpurdie 19171
 
3959 dpurdie 19172
 
1373 dpurdie 19173
BEGIN
19174
 
3959 dpurdie 19175
       IF nTestTypeId = enumTEST_TYPE_AUTOMATIC THEN
19176
       	ResultsURL := sResults;
19177
       ELSE
19178
       	IF (sResults <> '') OR ( NOT sResults IS NULL ) THEN
19179
        	outFileName := FILENAME_PREFIX || nTest_id ||'_'|| sResults;
19180
    		ResultsAttachment := sDpkg_path || '/' || outFileName;
19181
           END IF;
19182
       END IF;
1373 dpurdie 19183
 
3959 dpurdie 19184
	--- Update Unit Test ---
19185
    UPDATE UNIT_TESTS SET
19186
           TEST_SUMMARY = sTest_summary,
19187
		   NUMOF_TEST = sNumof_test,
19188
           COMPLETION_DATE = TO_DATE( sCompletion_date,'DD/MM/YYYY' ),
19189
		   COMPLETED_BY = nUserId,
19190
		   RESULTS_URL = ResultsURL,
19191
		   RESULTS_ATTACHMENT_NAME = ResultsAttachment
19192
     WHERE TEST_ID = nTest_id
19193
       AND PV_ID = nPv_id;
1373 dpurdie 19194
 
3959 dpurdie 19195
END Update_Unit_Test;
4040 dpurdie 19196
 
3959 dpurdie 19197
/
4040 dpurdie 19198
--------------------------------------------------------
19199
--  DDL for Procedure UPDATE_UNIT_TEST_ACCEPTANCE
19200
--------------------------------------------------------
19201
set define off;
19202
 
5172 dpurdie 19203
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST_ACCEPTANCE" ( pnTest_id IN NUMBER,
3959 dpurdie 19204
														  pnPv_id IN NUMBER,
19205
					                                      sAccepted IN UNIT_TESTS.TEST_ACCEPTED%TYPE,
19206
														  sAcceptanceDate IN VARCHAR2,
19207
														  sAcceptedBy IN NUMBER,
19208
					                                      sReviewComments IN UNIT_TESTS.REVIEW_COMMENTS%TYPE,
19209
														  cUpdateAcceptedStateOnly IN CHAR
19210
					                                     ) IS
19211
/* ---------------------------------------------------------------------------
19212
    Version: 3.0.0
19213
   --------------------------------------------------------------------------- */
1373 dpurdie 19214
 
19215
 
19216
 
3959 dpurdie 19217
BEGIN
19218
	IF cUpdateAcceptedStateOnly = 'Y'
19219
	THEN
19220
		--- Update Accepted State Only ---
19221
		IF ( sAccepted IS NULL )
19222
		THEN
19223
			-- Clear alleptance
19224
			UPDATE UNIT_TESTS SET
19225
		           TEST_ACCEPTED = NULL,
19226
		           ACCEPTANCE_DATE = NULL,
19227
				   ACCEPTED_BY = NULL,
19228
				   REVIEW_COMMENTS = NULL
19229
		     WHERE TEST_ID = pnTest_id
19230
		       AND PV_ID = pnPv_id;
19231
 
19232
	    ELSE
19233
			UPDATE UNIT_TESTS SET
19234
		           TEST_ACCEPTED = sAccepted,
19235
		           ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),
19236
				   ACCEPTED_BY = sAcceptedBy
19237
		     WHERE TEST_ID = pnTest_id
19238
		       AND PV_ID = pnPv_id;
19239
 
19240
		END IF;
19241
 
19242
 
19243
	ELSE
19244
		--- Update Unit Test Acceptance ---
19245
	    UPDATE UNIT_TESTS SET
19246
	           TEST_ACCEPTED = sAccepted,
19247
			   REVIEW_COMMENTS = sReviewComments,
19248
	           ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),
19249
			   ACCEPTED_BY = sAcceptedBy
19250
	     WHERE TEST_ID = pnTest_id
19251
	       AND PV_ID = pnPv_id;
19252
 
19253
	END IF;
19254
 
19255
END Update_Unit_Test_Acceptance;
4040 dpurdie 19256
 
1374 dpurdie 19257
/
4040 dpurdie 19258
--------------------------------------------------------
19259
--  DDL for Synonymn APPLICATIONS
19260
--------------------------------------------------------
19261
 
5172 dpurdie 19262
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."APPLICATIONS" FOR "ACCESS_MANAGER"."APPLICATIONS";
4040 dpurdie 19263
--------------------------------------------------------
19264
--  DDL for Synonymn APPLICATION_PAGES
19265
--------------------------------------------------------
19266
 
5172 dpurdie 19267
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."APPLICATION_PAGES" FOR "ACCESS_MANAGER"."APPLICATION_PAGES";
4040 dpurdie 19268
--------------------------------------------------------
19269
--  DDL for Synonymn CONTROL_OBJECTS
19270
--------------------------------------------------------
19271
 
5172 dpurdie 19272
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."CONTROL_OBJECTS" FOR "ACCESS_MANAGER"."CONTROL_OBJECTS";
4040 dpurdie 19273
--------------------------------------------------------
19274
--  DDL for Synonymn DATA_PERMISSIONS
19275
--------------------------------------------------------
19276
 
5172 dpurdie 19277
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."DATA_PERMISSIONS" FOR "ACCESS_MANAGER"."DATA_PERMISSIONS";
4040 dpurdie 19278
--------------------------------------------------------
19279
--  DDL for Synonymn DATA_TABLES
19280
--------------------------------------------------------
19281
 
5172 dpurdie 19282
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."DATA_TABLES" FOR "ACCESS_MANAGER"."DATA_TABLES";
4040 dpurdie 19283
--------------------------------------------------------
19284
--  DDL for Synonymn PAGE_CONTROL_OBJECTS
19285
--------------------------------------------------------
19286
 
5172 dpurdie 19287
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PAGE_CONTROL_OBJECTS" FOR "ACCESS_MANAGER"."PAGE_CONTROL_OBJECTS";
4040 dpurdie 19288
--------------------------------------------------------
19289
--  DDL for Synonymn PERMISSION_TYPES
19290
--------------------------------------------------------
19291
 
5172 dpurdie 19292
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PERMISSION_TYPES" FOR "ACCESS_MANAGER"."PERMISSION_TYPES";
4040 dpurdie 19293
--------------------------------------------------------
19294
--  DDL for Synonymn PK_AMUTILS
19295
--------------------------------------------------------
19296
 
5172 dpurdie 19297
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PK_AMUTILS" FOR "ACCESS_MANAGER"."PK_AMUTILS";
4040 dpurdie 19298
--------------------------------------------------------
19299
--  DDL for Synonymn PK_SECURITY
19300
--------------------------------------------------------
19301
 
5172 dpurdie 19302
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PK_SECURITY" FOR "ACCESS_MANAGER"."PK_SECURITY";
4040 dpurdie 19303
--------------------------------------------------------
19304
--  DDL for Synonymn ROLES
19305
--------------------------------------------------------
19306
 
5172 dpurdie 19307
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."ROLES" FOR "ACCESS_MANAGER"."ROLES";
4040 dpurdie 19308
--------------------------------------------------------
19309
--  DDL for Synonymn ROLE_PRIVILEGES
19310
--------------------------------------------------------
19311
 
5172 dpurdie 19312
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."ROLE_PRIVILEGES" FOR "ACCESS_MANAGER"."ROLE_PRIVILEGES";
4040 dpurdie 19313
--------------------------------------------------------
19314
--  DDL for Synonymn USERS
19315
--------------------------------------------------------
19316
 
5172 dpurdie 19317
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USERS" FOR "ACCESS_MANAGER"."USERS";
4040 dpurdie 19318
--------------------------------------------------------
19319
--  DDL for Synonymn USER_APPLICATIONS
19320
--------------------------------------------------------
19321
 
5172 dpurdie 19322
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USER_APPLICATIONS" FOR "ACCESS_MANAGER"."USER_APPLICATIONS";
4040 dpurdie 19323
--------------------------------------------------------
19324
--  DDL for Synonymn USER_ROLES
19325
--------------------------------------------------------
19326
 
5172 dpurdie 19327
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USER_ROLES" FOR "ACCESS_MANAGER"."USER_ROLES";