Subversion Repositories DevTools

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
51 mhunt 1
CREATE TABLE PACKAGE_BUILD_ENV
2
(
3
  PV_ID NUMBER NOT NULL,
4
  BE_ID NUMBER NOT NULL,
5
  BUILD_TYPE NUMBER
6
)
7
  TABLESPACE "USERS"
8
  LOGGING 
9
  PCTFREE 10
10
  PCTUSED 0
11
  INITRANS 1
12
  MAXTRANS 255
13
  STORAGE
14
  (
15
    INITIAL 128K
16
    MINEXTENTS 1
17
    MAXEXTENTS 2147483645
18
    FREELISTS 1
19
    FREELIST GROUPS 1
20
    BUFFER_POOL DEFAULT
21
  )
22
;
23
 
24
CREATE TABLE NOTIFICATION_HISTORY
25
(
26
  RTAG_ID NUMBER NOT NULL,
27
  PV_ID NUMBER NOT NULL,
28
  USER_ID NUMBER NOT NULL,
29
  DATE_TIME_STAMP DATE NOT NULL
30
, CONSTRAINT PK_NOTIFICATION_HISTORY PRIMARY KEY
31
  (
32
    RTAG_ID,
33
    PV_ID,
34
    USER_ID
35
  )
36
  ENABLE
37
)
38
  TABLESPACE "USERS"
39
  LOGGING 
40
  PCTFREE 10
41
  PCTUSED 0
42
  INITRANS 1
43
  MAXTRANS 255
44
  STORAGE
45
  (
46
    INITIAL 128K
47
    MINEXTENTS 1
48
    MAXEXTENTS 2147483645
49
    FREELISTS 1
50
    FREELIST GROUPS 1
51
    BUFFER_POOL DEFAULT
52
  )
53
;
54
 
55
CREATE TABLE TEMP_ENV_STATES
56
(
57
  SESSION_NUM NUMBER NOT NULL,
58
  LEVEL_NUM NUMBER NOT NULL,
59
  PV_ID NUMBER NOT NULL,
60
  PKG_ID NUMBER NOT NULL,
61
  V_EXT VARCHAR2(50 BYTE),
62
  TES_STATE NUMBER NOT NULL
63
)
64
  TABLESPACE "USERS"
65
  LOGGING 
66
  PCTFREE 10
67
  PCTUSED 0
68
  INITRANS 1
69
  MAXTRANS 255
70
  STORAGE
71
  (
72
    INITIAL 128K
73
    MINEXTENTS 1
74
    MAXEXTENTS 2147483645
75
    FREELISTS 1
76
    FREELIST GROUPS 1
77
    BUFFER_POOL DEFAULT
78
  )
79
;
80
 
81
CREATE TABLE DO_NOT_RIPPLE
82
(
83
  RTAG_ID NUMBER NOT NULL,
84
  PV_ID NUMBER NOT NULL
85
)
86
  TABLESPACE "USERS"
87
  LOGGING 
88
  PCTFREE 10
89
  PCTUSED 0
90
  INITRANS 1
91
  MAXTRANS 255
92
  STORAGE
93
  (
94
    INITIAL 64K
95
    MINEXTENTS 1
96
    MAXEXTENTS 2147483645
97
    FREELISTS 1
98
    FREELIST GROUPS 1
99
    BUFFER_POOL DEFAULT
100
  )
101
;
102
 
103
CREATE TABLE NOTE_MANAGER
104
(
105
  NID VARCHAR2(30 BYTE) NOT NULL,
106
  LAST_USER VARCHAR2(20 BYTE),
107
  LAST_DATE DATE,
108
  DESCRIPTION VARCHAR2(4000 BYTE)
109
, CONSTRAINT PKNOTE_MANAGER1 PRIMARY KEY
110
  (
111
    NID
112
  )
113
  ENABLE
114
)
115
  TABLESPACE "USERS"
116
  LOGGING 
117
  PCTFREE 10
118
  PCTUSED 0
119
  INITRANS 1
120
  MAXTRANS 255
121
  STORAGE
122
  (
123
    INITIAL 128K
124
    MINEXTENTS 1
125
    MAXEXTENTS 2147483645
126
    FREELISTS 1
127
    FREELIST GROUPS 1
128
    BUFFER_POOL DEFAULT
129
  )
130
;
131
 
132
CREATE TABLE TEMP_TREE_BROWSE
133
(
134
  SESSION_NUM NUMBER,
135
  LEVEL_NUM NUMBER,
136
  PV_ID NUMBER,
137
  PKG_ID NUMBER,
138
  V_EXT VARCHAR2(50 BYTE),
139
  DIRECTION NUMBER
140
)
141
  TABLESPACE "USERS"
142
  LOGGING 
143
  PCTFREE 10
144
  PCTUSED 0
145
  INITRANS 1
146
  MAXTRANS 255
147
  STORAGE
148
  (
149
    INITIAL 64K
150
    MINEXTENTS 1
151
    MAXEXTENTS 2147483645
152
    FREELISTS 1
153
    FREELIST GROUPS 1
154
    BUFFER_POOL DEFAULT
155
  )
156
;
157
 
158
CREATE TABLE IGNORE_WARNINGS
159
(
160
  RTAG_ID NUMBER NOT NULL,
161
  PV_ID NUMBER NOT NULL,
162
  DPV_ID NUMBER NOT NULL,
163
  IS_PATCH_IGNORE CHAR(1 BYTE)
164
)
165
  TABLESPACE "USERS"
166
  LOGGING 
167
  PCTFREE 10
168
  PCTUSED 0
169
  INITRANS 1
170
  MAXTRANS 255
171
  STORAGE
172
  (
173
    INITIAL 128K
174
    MINEXTENTS 1
175
    MAXEXTENTS 2147483645
176
    FREELISTS 1
177
    FREELIST GROUPS 1
178
    BUFFER_POOL DEFAULT
179
  )
180
;
181
 
182
CREATE TABLE DEPRECATED_PACKAGES
183
(
184
  RTAG_ID NUMBER NOT NULL,
185
  PKG_ID NUMBER NOT NULL,
186
  COMMENTS VARCHAR2(4000 BYTE) NOT NULL,
187
  V_EXT VARCHAR2(50 BYTE)
188
)
189
  TABLESPACE "USERS"
190
  LOGGING 
191
  PCTFREE 10
192
  PCTUSED 0
193
  INITRANS 1
194
  MAXTRANS 255
195
  STORAGE
196
  (
197
    INITIAL 64K
198
    MINEXTENTS 1
199
    MAXEXTENTS 2147483645
200
    FREELISTS 1
201
    FREELIST GROUPS 1
202
    BUFFER_POOL DEFAULT
203
  )
204
;
205
 
206
CREATE TABLE RELEASE_CONTENT
207
(
208
  RTAG_ID NUMBER NOT NULL,
209
  PV_ID NUMBER NOT NULL,
210
  BASE_VIEW_ID NUMBER NOT NULL,
211
  INSERT_STAMP DATE NOT NULL,
212
  INSERTOR_ID NUMBER NOT NULL,
213
  PKG_STATE NUMBER NOT NULL,
214
  PKG_ID NUMBER,
215
  DEPRECATED_STATE NUMBER,
216
  PRODUCT_STATE NUMBER
217
)
218
  TABLESPACE "SYSTEM"
219
  LOGGING 
220
  PCTFREE 10
221
  PCTUSED 40
222
  INITRANS 1
223
  MAXTRANS 255
224
  STORAGE
225
  (
226
    INITIAL 3520K
227
    NEXT 16K
228
    MINEXTENTS 1
229
    MAXEXTENTS 2147483645
230
    PCTINCREASE 0
231
    FREELISTS 1
232
    FREELIST GROUPS 1
233
    BUFFER_POOL DEFAULT
234
  )
235
;
236
 
237
CREATE TABLE MICROSOFTDTPROPERTIES
238
(
239
  ID NUMBER NOT NULL,
240
  OBJECTID NUMBER,
241
  PROPERTY VARCHAR2(64 BYTE) NOT NULL,
242
  VALUE VARCHAR2(255 BYTE),
243
  LVALUE LONG RAW,
244
  VERSION NUMBER DEFAULT (0) NOT NULL
245
, CONSTRAINT MICROSOFT_PK_DTPROPERTIES PRIMARY KEY
246
  (
247
    ID,
248
    PROPERTY
249
  )
250
  ENABLE
251
)
252
  TABLESPACE "USERS"
253
  LOGGING 
254
  PCTFREE 10
255
  PCTUSED 0
256
  INITRANS 1
257
  MAXTRANS 255
258
  STORAGE
259
  (
260
    INITIAL 128K
261
    MINEXTENTS 1
262
    MAXEXTENTS 2147483645
263
    FREELISTS 1
264
    FREELIST GROUPS 1
265
    BUFFER_POOL DEFAULT
266
  )
267
;
268
 
269
CREATE TABLE PROCESSES
270
(
271
  PROC_ID NUMBER NOT NULL,
272
  PROC_NAME VARCHAR2(255 BYTE) NOT NULL,
273
  PROC_DESCRIPTION VARCHAR2(255 BYTE),
274
  RUN_AS VARCHAR2(255 BYTE),
275
  PKG_OWNER VARCHAR2(4000 BYTE),
276
  IS_INTERFACE CHAR(1 BYTE)
277
, CONSTRAINT PROCESSES_PK PRIMARY KEY
278
  (
279
    PROC_ID
280
  )
281
  ENABLE
282
)
283
  TABLESPACE "USERS"
284
  LOGGING 
285
  PCTFREE 10
286
  PCTUSED 0
287
  INITRANS 1
288
  MAXTRANS 255
289
  STORAGE
290
  (
291
    INITIAL 128K
292
    MINEXTENTS 1
293
    MAXEXTENTS 2147483645
294
    FREELISTS 1
295
    FREELIST GROUPS 1
296
    BUFFER_POOL DEFAULT
297
  )
298
;
299
 
300
CREATE TABLE PACKAGE_DOCUMENTS
301
(
302
  PV_ID NUMBER NOT NULL,
303
  TEST_ID NUMBER,
304
  DOC_ID NUMBER NOT NULL,
305
  DOC_NUM VARCHAR2(50 BYTE) NOT NULL,
306
  IS_LATEST CHAR(1 BYTE)
307
)
308
  TABLESPACE "USERS"
309
  LOGGING 
310
  PCTFREE 10
311
  PCTUSED 0
312
  INITRANS 1
313
  MAXTRANS 255
314
  STORAGE
315
  (
316
    INITIAL 128K
317
    MINEXTENTS 1
318
    MAXEXTENTS 2147483645
319
    FREELISTS 1
320
    FREELIST GROUPS 1
321
    BUFFER_POOL DEFAULT
322
  )
323
;
324
 
325
CREATE TABLE RELEASE_TAGS
326
(
327
  RTAG_ID NUMBER NOT NULL,
328
  VTREE_ID NUMBER,
329
  RTAG_NAME VARCHAR2(50 BYTE) NOT NULL,
330
  DESCRIPTION VARCHAR2(4000 BYTE),
331
  CREATED_STAMP DATE,
332
  CREATOR_ID NUMBER,
333
  OFFICIAL_STAMP DATE,
334
  RELEASOR_ID NUMBER,
335
  OFFICIAL CHAR(1 BYTE) NOT NULL,
336
  REBUILD_ENV CHAR(1 BYTE) NOT NULL,
337
  REBUILD_STAMP NUMBER NOT NULL,
338
  RTAG_VERSION VARCHAR2(4000 BYTE),
339
  RTAG_LIFE_CYCLE NUMBER,
340
  PARENT_RTAG_ID NUMBER NOT NULL,
341
  PROJ_ID NUMBER NOT NULL,
342
  DISPLAY_ORDER NUMBER,
343
  OWNER_EMAIL VARCHAR2(1000 BYTE),
344
  ASSOC_MASS_REF NUMBER,
345
  OWNER_PERSONAL_EMAIL VARCHAR2(1000 BYTE),
346
  CONFIG_SPEC_BRANCH VARCHAR2(4000 BYTE),
347
  PRODUCT_STATE_USED CHAR(1 BYTE)
348
, CONSTRAINT PK_RELEASE_TAGS PRIMARY KEY
349
  (
350
    RTAG_ID
351
  )
352
  ENABLE
353
)
354
  TABLESPACE "SYSTEM"
355
  LOGGING 
356
  PCTFREE 10
357
  PCTUSED 40
358
  INITRANS 1
359
  MAXTRANS 255
360
  STORAGE
361
  (
362
    INITIAL 80K
363
    NEXT 16K
364
    MINEXTENTS 1
365
    MAXEXTENTS 2147483645
366
    PCTINCREASE 0
367
    FREELISTS 1
368
    FREELIST GROUPS 1
369
    BUFFER_POOL DEFAULT
370
  )
371
;
372
 
373
CREATE TABLE BUILD_STANDARDS_ADDENDUM
374
(
375
  BSA_ID NUMBER NOT NULL,
376
  BSA_NAME VARCHAR2(4000 BYTE) NOT NULL,
377
  BS_ID NUMBER NOT NULL
378
, CONSTRAINT BUILD_STANDARDS_ADDENDUM_PK PRIMARY KEY
379
  (
380
    BSA_ID
381
  )
382
  ENABLE
383
)
384
  TABLESPACE "USERS"
385
  LOGGING 
386
  PCTFREE 10
387
  PCTUSED 40
388
  INITRANS 1
389
  MAXTRANS 255
390
  STORAGE
391
  (
392
    INITIAL 64K
393
    MINEXTENTS 1
394
    MAXEXTENTS 2147483645
395
    FREELISTS 1
396
    FREELIST GROUPS 1
397
    BUFFER_POOL DEFAULT
398
  )
399
;
400
 
401
CREATE TABLE UNIT_TESTS
402
(
403
  TEST_ID NUMBER NOT NULL,
404
  PV_ID NUMBER NOT NULL,
405
  TEST_TYPES_FK NUMBER NOT NULL,
406
  TEST_SUMMARY VARCHAR2(4000 BYTE),
407
  COMPLETION_DATE DATE,
408
  COMPLETED_BY NUMBER,
409
  RESULTS_URL VARCHAR2(2000 BYTE),
410
  RESULTS_ATTACHMENT_NAME VARCHAR2(2000 BYTE),
411
  TEST_ACCEPTED CHAR(1 BYTE),
412
  ACCEPTANCE_DATE DATE,
413
  ACCEPTED_BY NUMBER,
414
  REVIEW_COMMENTS VARCHAR2(4000 BYTE),
415
  NUMOF_TEST VARCHAR2(50 BYTE)
416
)
417
  TABLESPACE "USERS"
418
  LOGGING 
419
  PCTFREE 10
420
  PCTUSED 0
421
  INITRANS 1
422
  MAXTRANS 255
423
  STORAGE
424
  (
425
    INITIAL 128K
426
    MINEXTENTS 1
427
    MAXEXTENTS 2147483645
428
    FREELISTS 1
429
    FREELIST GROUPS 1
430
    BUFFER_POOL DEFAULT
431
  )
432
;
433
 
434
CREATE TABLE RM_PACKAGE_ISSUES
435
(
436
  PKG_ID NUMBER,
437
  PKG_NAME VARCHAR2(50 BYTE),
438
  PV_ID NUMBER,
439
  PKG_VERSION VARCHAR2(50 BYTE),
440
  DPV_ID NUMBER,
441
  DPKG_NAME VARCHAR2(50 BYTE),
442
  DPKG_VERSION VARCHAR2(50 BYTE),
443
  ISS_DB NUMBER,
444
  ISS_ID NUMBER
445
)
446
  TABLESPACE "USERS"
447
  LOGGING 
448
  PCTFREE 10
449
  PCTUSED 0
450
  INITRANS 1
451
  MAXTRANS 255
452
  STORAGE
453
  (
454
    INITIAL 64K
455
    MINEXTENTS 1
456
    MAXEXTENTS 2147483645
457
    FREELISTS 1
458
    FREELIST GROUPS 1
459
    BUFFER_POOL DEFAULT
460
  )
461
;
462
 
463
CREATE TABLE BUILD_ENVIRONMENTS
464
(
465
  BE_ID NUMBER NOT NULL,
466
  BE_NAME VARCHAR2(255 BYTE) NOT NULL
467
, CONSTRAINT PK_BUILD_ENVIRONMENTS PRIMARY KEY
468
  (
469
    BE_ID
470
  )
471
  ENABLE
472
)
473
  TABLESPACE "USERS"
474
  LOGGING 
475
  PCTFREE 10
476
  PCTUSED 0
477
  INITRANS 1
478
  MAXTRANS 255
479
  STORAGE
480
  (
481
    INITIAL 128K
482
    MINEXTENTS 1
483
    MAXEXTENTS 2147483645
484
    FREELISTS 1
485
    FREELIST GROUPS 1
486
    BUFFER_POOL DEFAULT
487
  )
488
;
489
 
490
CREATE TABLE PACKAGE_PROCESSES
491
(
492
  PV_ID NUMBER NOT NULL,
493
  PROC_ID NUMBER NOT NULL
494
)
495
  TABLESPACE "USERS"
496
  LOGGING 
497
  PCTFREE 10
498
  PCTUSED 0
499
  INITRANS 1
500
  MAXTRANS 255
501
  STORAGE
502
  (
503
    INITIAL 64K
504
    MINEXTENTS 1
505
    MAXEXTENTS 2147483645
506
    FREELISTS 1
507
    FREELIST GROUPS 1
508
    BUFFER_POOL DEFAULT
509
  )
510
;
511
 
512
CREATE TABLE RELEASE_COMPONENTS
513
(
514
  PV_ID NUMBER NOT NULL,
515
  FILE_NAME VARCHAR2(255 BYTE),
516
  FILE_PATH VARCHAR2(2000 BYTE),
517
  BYTE_SIZE NUMBER,
518
  CRC_CKSUM VARCHAR2(50 BYTE),
519
  CRC_MODCRC VARCHAR2(50 BYTE)
520
)
521
  TABLESPACE "USERS"
522
  LOGGING 
523
  PCTFREE 10
524
  PCTUSED 0
525
  INITRANS 1
526
  MAXTRANS 255
527
  STORAGE
528
  (
529
    INITIAL 128K
530
    MINEXTENTS 1
531
    MAXEXTENTS 2147483645
532
    FREELISTS 1
533
    FREELIST GROUPS 1
534
    BUFFER_POOL DEFAULT
535
  )
536
;
537
 
538
CREATE TABLE PACKAGE_PATCHES
539
(
540
  PV_ID NUMBER NOT NULL,
541
  PATCH_ID NUMBER NOT NULL,
542
  INSTALL_ORDER NUMBER NOT NULL,
543
  PATCH_OBSOLETED_BY NUMBER
544
)
545
  TABLESPACE "USERS"
546
  LOGGING 
547
  PCTFREE 10
548
  PCTUSED 0
549
  INITRANS 1
550
  MAXTRANS 255
551
  STORAGE
552
  (
553
    INITIAL 128K
554
    MINEXTENTS 1
555
    MAXEXTENTS 2147483645
556
    FREELISTS 1
557
    FREELIST GROUPS 1
558
    BUFFER_POOL DEFAULT
559
  )
560
;
561
 
562
CREATE TABLE BUILD_ORDER
563
(
564
  RTAG_ID NUMBER NOT NULL,
565
  STEP_NUM NUMBER NOT NULL,
566
  PV_ID NUMBER NOT NULL,
567
  UNRESOLVED CHAR(1 BYTE)
568
)
569
  TABLESPACE "USERS"
570
  LOGGING 
571
  PCTFREE 10
572
  PCTUSED 0
573
  INITRANS 1
574
  MAXTRANS 255
575
  STORAGE
576
  (
577
    INITIAL 64K
578
    MINEXTENTS 1
579
    MAXEXTENTS 2147483645
580
    FREELISTS 1
581
    FREELIST GROUPS 1
582
    BUFFER_POOL DEFAULT
583
  )
584
;
585
 
586
CREATE TABLE PLANNED
587
(
588
  RTAG_ID NUMBER NOT NULL,
589
  PV_ID NUMBER NOT NULL,
590
  VIEW_ID NUMBER NOT NULL
591
)
592
  TABLESPACE "USERS"
593
  LOGGING 
594
  PCTFREE 10
595
  PCTUSED 0
596
  INITRANS 1
597
  MAXTRANS 255
598
  STORAGE
599
  (
600
    INITIAL 64K
601
    MINEXTENTS 1
602
    MAXEXTENTS 2147483645
603
    FREELISTS 1
604
    FREELIST GROUPS 1
605
    BUFFER_POOL DEFAULT
606
  )
607
;
608
 
609
CREATE TABLE PROJECT_ACTION_LOG
610
(
611
  USER_ID NUMBER NOT NULL,
612
  ACTION_DATETIME DATE NOT NULL,
613
  PROJ_ID NUMBER NOT NULL,
614
  DESCRIPTION VARCHAR2(4000 BYTE),
615
  ACTTYPE_ID NUMBER NOT NULL,
616
  RTAG_ID NUMBER
617
)
618
  TABLESPACE "USERS"
619
  LOGGING 
620
  PCTFREE 10
621
  PCTUSED 0
622
  INITRANS 1
623
  MAXTRANS 255
624
  STORAGE
625
  (
626
    INITIAL 64K
627
    MINEXTENTS 1
628
    MAXEXTENTS 2147483645
629
    FREELISTS 1
630
    FREELIST GROUPS 1
631
    BUFFER_POOL DEFAULT
632
  )
633
;
634
 
635
CREATE TABLE PACKAGE_INTEREST
636
(
637
  PKG_ID NUMBER NOT NULL,
638
  PROJ_ID NUMBER NOT NULL,
639
  USER_ID NUMBER NOT NULL
640
)
641
  TABLESPACE "USERS"
642
  LOGGING 
643
  PCTFREE 10
644
  PCTUSED 0
645
  INITRANS 1
646
  MAXTRANS 255
647
  STORAGE
648
  (
649
    INITIAL 64K
650
    MINEXTENTS 1
651
    MAXEXTENTS 2147483645
652
    FREELISTS 1
653
    FREELIST GROUPS 1
654
    BUFFER_POOL DEFAULT
655
  )
656
;
657
 
658
CREATE TABLE PLATFORMS
659
(
660
  CODE NUMBER NOT NULL,
661
  NAME VARCHAR2(255 BYTE) NOT NULL
662
)
663
  TABLESPACE "USERS"
664
  LOGGING 
665
  PCTFREE 10
666
  PCTUSED 0
667
  INITRANS 1
668
  MAXTRANS 255
669
  STORAGE
670
  (
671
    INITIAL 64K
672
    MINEXTENTS 1
673
    MAXEXTENTS 2147483645
674
    FREELISTS 1
675
    FREELIST GROUPS 1
676
    BUFFER_POOL DEFAULT
677
  )
678
;
679
 
680
CREATE TABLE ARCHIVE_DATA
681
(
682
  RTAG_ID NUMBER(*, 0) NOT NULL,
683
  PV_ID NUMBER(*, 0) NOT NULL
684
)
685
  TABLESPACE "USERS"
686
  LOGGING 
687
  PCTFREE 10
688
  PCTUSED 0
689
  INITRANS 1
690
  MAXTRANS 255
691
  STORAGE
692
  (
693
    INITIAL 64K
694
    MINEXTENTS 1
695
    MAXEXTENTS 2147483645
696
    FREELISTS 1
697
    FREELIST GROUPS 1
698
    BUFFER_POOL DEFAULT
699
  )
700
;
701
 
702
CREATE TABLE VIEW_SETTINGS
703
(
704
  USER_ID NUMBER NOT NULL,
705
  VIEW_ID NUMBER NOT NULL
706
)
707
  TABLESPACE "SYSTEM"
708
  LOGGING 
709
  PCTFREE 10
710
  PCTUSED 40
711
  INITRANS 1
712
  MAXTRANS 255
713
  STORAGE
714
  (
715
    INITIAL 80K
716
    NEXT 16K
717
    MINEXTENTS 1
718
    MAXEXTENTS 2147483645
719
    PCTINCREASE 0
720
    FREELISTS 1
721
    FREELIST GROUPS 1
722
    BUFFER_POOL DEFAULT
723
  )
724
;
725
 
726
CREATE TABLE ACTION_TYPE
727
(
728
  ACTTYPE_ID NUMBER NOT NULL,
729
  NAME VARCHAR2(255 BYTE) NOT NULL,
730
  DESCRIPTION VARCHAR2(4000 BYTE)
731
, CONSTRAINT UNQ_ACTTYPE_ID PRIMARY KEY
732
  (
733
    ACTTYPE_ID
734
  )
735
  ENABLE
736
)
737
  TABLESPACE "USERS"
738
  LOGGING 
739
  PCTFREE 10
740
  PCTUSED 0
741
  INITRANS 1
742
  MAXTRANS 255
743
  STORAGE
744
  (
745
    INITIAL 128K
746
    MINEXTENTS 1
747
    MAXEXTENTS 2147483645
748
    FREELISTS 1
749
    FREELIST GROUPS 1
750
    BUFFER_POOL DEFAULT
751
  )
752
;
753
 
754
CREATE TABLE AUTOBUILD_FAILURE
755
(
756
  GROUP_EMAIL_ID NUMBER NOT NULL,
757
  PROJ_ID NUMBER,
758
  VIEW_ID NUMBER
759
, PRIMARY KEY
760
  (
761
    GROUP_EMAIL_ID
762
  )
763
  ENABLE
764
)
765
  TABLESPACE "USERS"
766
  LOGGING 
767
  PCTFREE 10
768
  PCTUSED 0
769
  INITRANS 1
770
  MAXTRANS 255
771
  STORAGE
772
  (
773
    INITIAL 64K
774
    MINEXTENTS 1
775
    MAXEXTENTS 2147483645
776
    FREELISTS 1
777
    FREELIST GROUPS 1
778
    BUFFER_POOL DEFAULT
779
  )
780
;
781
 
782
CREATE TABLE JIRA_ISSUES
783
(
784
  PV_ID NUMBER NOT NULL,
785
  ISS_KEY VARCHAR2(4000 BYTE),
786
  DATE_TIME_STAMP DATE
787
)
788
  TABLESPACE "SYSTEM"
789
  LOGGING 
790
  PCTFREE 10
791
  PCTUSED 40
792
  INITRANS 1
793
  MAXTRANS 255
794
  STORAGE
795
  (
796
    INITIAL 80K
797
    NEXT 16K
798
    MINEXTENTS 1
799
    MAXEXTENTS 2147483645
800
    PCTINCREASE 0
801
    FREELISTS 1
802
    FREELIST GROUPS 1
803
    BUFFER_POOL DEFAULT
804
  )
805
;
806
 
807
CREATE TABLE VIEW_DEF
808
(
809
  VIEW_ID NUMBER NOT NULL,
810
  PKG_ID NUMBER NOT NULL
811
)
812
  TABLESPACE "SYSTEM"
813
  LOGGING 
814
  PCTFREE 10
815
  PCTUSED 40
816
  INITRANS 1
817
  MAXTRANS 255
818
  STORAGE
819
  (
820
    INITIAL 80K
821
    NEXT 16K
822
    MINEXTENTS 1
823
    MAXEXTENTS 2147483645
824
    PCTINCREASE 0
825
    FREELISTS 1
826
    FREELIST GROUPS 1
827
    BUFFER_POOL DEFAULT
828
  )
829
;
830
 
831
CREATE TABLE VTREES
832
(
833
  VTREE_ID NUMBER NOT NULL,
834
  PROJ_ID NUMBER NOT NULL,
835
  VTREE_NAME VARCHAR2(50 BYTE) NOT NULL,
836
  HIDE CHAR(1 BYTE) NOT NULL
837
, CONSTRAINT PK_VTREES PRIMARY KEY
838
  (
839
    VTREE_ID
840
  )
841
  ENABLE
842
)
843
  TABLESPACE "SYSTEM"
844
  LOGGING 
845
  PCTFREE 10
846
  PCTUSED 40
847
  INITRANS 1
848
  MAXTRANS 255
849
  STORAGE
850
  (
851
    INITIAL 80K
852
    NEXT 16K
853
    MINEXTENTS 1
854
    MAXEXTENTS 2147483645
855
    PCTINCREASE 0
856
    FREELISTS 1
857
    FREELIST GROUPS 1
858
    BUFFER_POOL DEFAULT
859
  )
860
;
861
 
862
CREATE TABLE BUILD_STANDARDS
863
(
864
  BS_ID NUMBER NOT NULL,
865
  BS_NAME VARCHAR2(20 BYTE) NOT NULL
866
, CONSTRAINT BUILD_STANDARDS_PK PRIMARY KEY
867
  (
868
    BS_ID
869
  )
870
  ENABLE
871
)
872
  TABLESPACE "USERS"
873
  LOGGING 
874
  PCTFREE 10
875
  PCTUSED 40
876
  INITRANS 1
877
  MAXTRANS 255
878
  STORAGE
879
  (
880
    INITIAL 64K
881
    MINEXTENTS 1
882
    MAXEXTENTS 2147483645
883
    FREELISTS 1
884
    FREELIST GROUPS 1
885
    BUFFER_POOL DEFAULT
886
  )
887
;
888
 
889
CREATE TABLE TEMP_SASH
890
(
891
  RTAG_ID NUMBER,
892
  PROJ_ID NUMBER
893
)
894
  TABLESPACE "USERS"
895
  LOGGING 
896
  PCTFREE 10
897
  PCTUSED 0
898
  INITRANS 1
899
  MAXTRANS 255
900
  STORAGE
901
  (
902
    INITIAL 64K
903
    MINEXTENTS 1
904
    MAXEXTENTS 2147483645
905
    FREELISTS 1
906
    FREELIST GROUPS 1
907
    BUFFER_POOL DEFAULT
908
  )
909
;
910
 
911
CREATE TABLE BUILD_MACHINES
912
(
913
  BM_ID NUMBER NOT NULL,
914
  BM_NAME VARCHAR2(20 BYTE) NOT NULL
915
, CONSTRAINT BUILD_MACHINES_PK PRIMARY KEY
916
  (
917
    BM_ID
918
  )
919
  ENABLE
920
)
921
  TABLESPACE "USERS"
922
  LOGGING 
923
  PCTFREE 10
924
  PCTUSED 40
925
  INITRANS 1
926
  MAXTRANS 255
927
  STORAGE
928
  (
929
    INITIAL 64K
930
    MINEXTENTS 1
931
    MAXEXTENTS 2147483645
932
    FREELISTS 1
933
    FREELIST GROUPS 1
934
    BUFFER_POOL DEFAULT
935
  )
936
;
937
 
938
CREATE TABLE WORK_IN_PROGRESS
939
(
940
  RTAG_ID NUMBER NOT NULL,
941
  PV_ID NUMBER NOT NULL,
942
  VIEW_ID NUMBER NOT NULL
943
)
944
  TABLESPACE "USERS"
945
  LOGGING 
946
  PCTFREE 10
947
  PCTUSED 0
948
  INITRANS 1
949
  MAXTRANS 255
950
  STORAGE
951
  (
952
    INITIAL 64K
953
    MINEXTENTS 1
954
    MAXEXTENTS 2147483645
955
    FREELISTS 1
956
    FREELIST GROUPS 1
957
    BUFFER_POOL DEFAULT
958
  )
959
;
960
 
961
CREATE TABLE ADVISORY_RIPPLES
962
(
963
  RTAG_ID NUMBER NOT NULL,
964
  PV_ID NUMBER NOT NULL
965
)
966
  TABLESPACE "USERS"
967
  LOGGING 
968
  PCTFREE 10
969
  PCTUSED 40
970
  INITRANS 1
971
  MAXTRANS 255
972
  STORAGE
973
  (
974
    INITIAL 64K
975
    MINEXTENTS 1
976
    MAXEXTENTS 2147483645
977
    FREELISTS 1
978
    FREELIST GROUPS 1
979
    BUFFER_POOL DEFAULT
980
  )
981
;
982
 
983
CREATE TABLE RELEASE_LINKS
984
(
985
  RTAG_ID NUMBER NOT NULL,
986
  REF_RTAG_ID NUMBER NOT NULL
987
)
988
  TABLESPACE "USERS"
989
  LOGGING 
990
  PCTFREE 10
991
  PCTUSED 0
992
  INITRANS 1
993
  MAXTRANS 255
994
  STORAGE
995
  (
996
    INITIAL 64K
997
    MINEXTENTS 1
998
    MAXEXTENTS 2147483645
999
    FREELISTS 1
1000
    FREELIST GROUPS 1
1001
    BUFFER_POOL DEFAULT
1002
  )
1003
;
1004
 
1005
CREATE TABLE BUILD_ENV_DOCUMENTS
1006
(
1007
  BE_ID NUMBER NOT NULL,
1008
  DOC_NUM VARCHAR2(255 BYTE) NOT NULL
1009
)
1010
  TABLESPACE "USERS"
1011
  LOGGING 
1012
  PCTFREE 10
1013
  PCTUSED 0
1014
  INITRANS 1
1015
  MAXTRANS 255
1016
  STORAGE
1017
  (
1018
    INITIAL 128K
1019
    MINEXTENTS 1
1020
    MAXEXTENTS 2147483645
1021
    FREELISTS 1
1022
    FREELIST GROUPS 1
1023
    BUFFER_POOL DEFAULT
1024
  )
1025
;
1026
 
1027
CREATE TABLE TEST_TYPES
1028
(
1029
  TEST_TYPE_ID NUMBER NOT NULL,
1030
  TEST_TYPE_NAME VARCHAR2(50 BYTE) NOT NULL,
1031
  DISPLAY_ORDER NUMBER
1032
, CONSTRAINT PK_TEST_TYPES PRIMARY KEY
1033
  (
1034
    TEST_TYPE_ID
1035
  )
1036
  ENABLE
1037
)
1038
  TABLESPACE "USERS"
1039
  LOGGING 
1040
  PCTFREE 10
1041
  PCTUSED 0
1042
  INITRANS 1
1043
  MAXTRANS 255
1044
  STORAGE
1045
  (
1046
    INITIAL 128K
1047
    MINEXTENTS 1
1048
    MAXEXTENTS 2147483645
1049
    FREELISTS 1
1050
    FREELIST GROUPS 1
1051
    BUFFER_POOL DEFAULT
1052
  )
1053
;
1054
 
1055
CREATE TABLE PACKAGE_DEPENDENCIES
1056
(
1057
  PV_ID NUMBER NOT NULL,
1058
  DPV_ID NUMBER NOT NULL,
1059
  PKG_ID NUMBER NOT NULL,
1060
  DPKG_ID NUMBER NOT NULL,
1061
  BUILD_TYPE CHAR(1 BYTE) NOT NULL,
1062
  DISPLAY_ORDER NUMBER
1063
)
1064
  TABLESPACE "SYSTEM"
1065
  LOGGING 
1066
  PCTFREE 10
1067
  PCTUSED 40
1068
  INITRANS 1
1069
  MAXTRANS 255
1070
  STORAGE
1071
  (
1072
    INITIAL 24160K
1073
    NEXT 16K
1074
    MINEXTENTS 1
1075
    MAXEXTENTS 2147483645
1076
    PCTINCREASE 0
1077
    FREELISTS 1
1078
    FREELIST GROUPS 1
1079
    BUFFER_POOL DEFAULT
1080
  )
1081
;
1082
 
1083
CREATE TABLE PRODUCT_COMPONENTS
1084
(
1085
  PV_ID NUMBER NOT NULL,
1086
  OS_ID NUMBER NOT NULL,
1087
  FILE_PATH VARCHAR2(4000 BYTE),
1088
  FILE_NAME VARCHAR2(4000 BYTE),
1089
  DESTINATION_PATH VARCHAR2(4000 BYTE),
1090
  BYTE_SIZE NUMBER,
1091
  CRC_CKSUM VARCHAR2(2000 BYTE)
1092
)
1093
  TABLESPACE "USERS"
1094
  LOGGING 
1095
  PCTFREE 10
1096
  PCTUSED 0
1097
  INITRANS 1
1098
  MAXTRANS 255
1099
  STORAGE
1100
  (
1101
    INITIAL 64K
1102
    MINEXTENTS 1
1103
    MAXEXTENTS 2147483645
1104
    FREELISTS 1
1105
    FREELIST GROUPS 1
1106
    BUFFER_POOL DEFAULT
1107
  )
1108
;
1109
 
1110
CREATE GLOBAL TEMPORARY TABLE RM_PKG_ISSUES
1111
(
1112
  PKG_ID NUMBER,
1113
  PKG_NAME VARCHAR2(50 BYTE),
1114
  PV_ID NUMBER,
1115
  PKG_VERSION VARCHAR2(50 BYTE),
1116
  DPV_ID NUMBER,
1117
  DPKG_NAME VARCHAR2(50 BYTE),
1118
  DPKG_VERSION VARCHAR2(50 BYTE),
1119
  ISS_DB NUMBER,
1120
  ISS_ID NUMBER
1121
)
1122
ON COMMIT PRESERVE ROWS
1123
;
1124
 
1125
CREATE TABLE PRODUCT_STATES
1126
(
1127
  STATE_ID NUMBER NOT NULL,
1128
  STATE VARCHAR2(4000 BYTE) NOT NULL
1129
, CONSTRAINT PRODUCT_STATES_PK PRIMARY KEY
1130
  (
1131
    STATE_ID
1132
  )
1133
  ENABLE
1134
)
1135
  TABLESPACE "USERS"
1136
  LOGGING 
1137
  PCTFREE 10
1138
  PCTUSED 40
1139
  INITRANS 1
1140
  MAXTRANS 255
1141
  STORAGE
1142
  (
1143
    INITIAL 64K
1144
    MINEXTENTS 1
1145
    MAXEXTENTS 2147483645
1146
    FREELISTS 1
1147
    FREELIST GROUPS 1
1148
    BUFFER_POOL DEFAULT
1149
  )
1150
;
1151
 
1152
CREATE TABLE PACKAGE_BUILD_INFO
1153
(
1154
  PV_ID NUMBER,
1155
  BM_ID NUMBER,
1156
  BSA_ID NUMBER
1157
)
1158
  TABLESPACE "USERS"
1159
  LOGGING 
1160
  PCTFREE 10
1161
  PCTUSED 40
1162
  INITRANS 1
1163
  MAXTRANS 255
1164
  STORAGE
1165
  (
1166
    INITIAL 64K
1167
    MINEXTENTS 1
1168
    MAXEXTENTS 2147483645
1169
    FREELISTS 1
1170
    FREELIST GROUPS 1
1171
    BUFFER_POOL DEFAULT
1172
  )
1173
;
1174
 
1175
CREATE TABLE PACKAGES
1176
(
1177
  PKG_ID NUMBER NOT NULL,
1178
  PKG_NAME VARCHAR2(255 BYTE) NOT NULL,
1179
  SUNOS_ELECTRONIC_NAME VARCHAR2(255 BYTE),
1180
  WIN_ELECTRONIC_NAME VARCHAR2(255 BYTE)
1181
, CONSTRAINT PK_PACKAGES PRIMARY KEY
1182
  (
1183
    PKG_ID
1184
  )
1185
  ENABLE
1186
)
1187
  TABLESPACE "SYSTEM"
1188
  LOGGING 
1189
  PCTFREE 10
1190
  PCTUSED 40
1191
  INITRANS 1
1192
  MAXTRANS 255
1193
  STORAGE
1194
  (
1195
    INITIAL 160K
1196
    NEXT 16K
1197
    MINEXTENTS 1
1198
    MAXEXTENTS 2147483645
1199
    PCTINCREASE 0
1200
    FREELISTS 1
1201
    FREELIST GROUPS 1
1202
    BUFFER_POOL DEFAULT
1203
  )
1204
;
1205
 
1206
CREATE TABLE MEMBERS_GROUP
1207
(
1208
  GROUP_EMAIL_ID NUMBER NOT NULL,
1209
  USER_ID NUMBER
1210
)
1211
  TABLESPACE "USERS"
1212
  LOGGING 
1213
  PCTFREE 10
1214
  PCTUSED 0
1215
  INITRANS 1
1216
  MAXTRANS 255
1217
  STORAGE
1218
  (
1219
    INITIAL 64K
1220
    MINEXTENTS 1
1221
    MAXEXTENTS 2147483645
1222
    FREELISTS 1
1223
    FREELIST GROUPS 1
1224
    BUFFER_POOL DEFAULT
1225
  )
1226
;
1227
 
1228
CREATE TABLE PROJECTS
1229
(
1230
  PROJ_ID NUMBER NOT NULL,
1231
  PROJ_NAME VARCHAR2(50 BYTE) NOT NULL
1232
, CONSTRAINT PK_PROJECTS PRIMARY KEY
1233
  (
1234
    PROJ_ID
1235
  )
1236
  ENABLE
1237
)
1238
  TABLESPACE "SYSTEM"
1239
  LOGGING 
1240
  PCTFREE 10
1241
  PCTUSED 40
1242
  INITRANS 1
1243
  MAXTRANS 255
1244
  STORAGE
1245
  (
1246
    INITIAL 80K
1247
    NEXT 16K
1248
    MINEXTENTS 1
1249
    MAXEXTENTS 2147483645
1250
    PCTINCREASE 0
1251
    FREELISTS 1
1252
    FREELIST GROUPS 1
1253
    BUFFER_POOL DEFAULT
1254
  )
1255
;
1256
 
1257
CREATE TABLE WORLDS
1258
(
1259
  WORLD_ID NUMBER NOT NULL,
1260
  WORLD_NAME VARCHAR2(30 BYTE) NOT NULL,
1261
  WORLD_DESC VARCHAR2(255 BYTE)
1262
, CONSTRAINT PK_WORLDS PRIMARY KEY
1263
  (
1264
    WORLD_ID
1265
  )
1266
  ENABLE
1267
)
1268
  TABLESPACE "USERS"
1269
  LOGGING 
1270
  PCTFREE 10
1271
  PCTUSED 0
1272
  INITRANS 1
1273
  MAXTRANS 255
1274
  STORAGE
1275
  (
1276
    INITIAL 128K
1277
    MINEXTENTS 1
1278
    MAXEXTENTS 2147483645
1279
    FREELISTS 1
1280
    FREELIST GROUPS 1
1281
    BUFFER_POOL DEFAULT
1282
  )
1283
;
1284
 
1285
CREATE TABLE VIEWS
1286
(
1287
  VIEW_ID NUMBER NOT NULL,
1288
  VIEW_NAME VARCHAR2(30 BYTE) NOT NULL,
1289
  OWNER_ID NUMBER NOT NULL,
1290
  BASE_VIEW CHAR(1 BYTE) NOT NULL,
1291
  PUBLIC_READ CHAR(1 BYTE) NOT NULL
1292
, CONSTRAINT PK_VIEWS PRIMARY KEY
1293
  (
1294
    VIEW_ID
1295
  )
1296
  ENABLE
1297
)
1298
  TABLESPACE "SYSTEM"
1299
  LOGGING 
1300
  PCTFREE 10
1301
  PCTUSED 40
1302
  INITRANS 1
1303
  MAXTRANS 255
1304
  STORAGE
1305
  (
1306
    INITIAL 80K
1307
    NEXT 16K
1308
    MINEXTENTS 1
1309
    MAXEXTENTS 2147483645
1310
    PCTINCREASE 0
1311
    FREELISTS 1
1312
    FREELIST GROUPS 1
1313
    BUFFER_POOL DEFAULT
1314
  )
1315
;
1316
 
1317
CREATE TABLE ACTION_LOG
1318
(
1319
  USER_ID NUMBER NOT NULL,
1320
  ACTION_DATETIME DATE NOT NULL,
1321
  PV_ID NUMBER NOT NULL,
1322
  DESCRIPTION VARCHAR2(4000 BYTE),
1323
  ACTTYPE_ID NUMBER NOT NULL
1324
)
1325
  TABLESPACE "USERS"
1326
  LOGGING 
1327
  PCTFREE 10
1328
  PCTUSED 0
1329
  INITRANS 1
1330
  MAXTRANS 255
1331
  STORAGE
1332
  (
1333
    INITIAL 128K
1334
    MINEXTENTS 1
1335
    MAXEXTENTS 2147483645
1336
    FREELISTS 1
1337
    FREELIST GROUPS 1
1338
    BUFFER_POOL DEFAULT
1339
  )
1340
;
1341
 
1342
CREATE TABLE RUNTIME_DEPENDENCIES
1343
(
1344
  PV_ID NUMBER NOT NULL,
1345
  RTD_ID NUMBER,
1346
  RTD_COMMENTS VARCHAR2(2000 BYTE),
1347
  RTD_URL VARCHAR2(2000 BYTE),
1348
  MOD_DATE DATE NOT NULL,
1349
  MOD_USER NUMBER NOT NULL
1350
)
1351
  TABLESPACE "USERS"
1352
  LOGGING 
1353
  PCTFREE 10
1354
  PCTUSED 40
1355
  INITRANS 1
1356
  MAXTRANS 255
1357
  STORAGE
1358
  (
1359
    INITIAL 64K
1360
    MINEXTENTS 1
1361
    MAXEXTENTS 2147483645
1362
    FREELISTS 1
1363
    FREELIST GROUPS 1
1364
    BUFFER_POOL DEFAULT
1365
  )
1366
;
1367
 
1368
CREATE TABLE PROJECT_EXTENTIONS
1369
(
1370
  PROJ_ID NUMBER NOT NULL,
1371
  EXT_NAME VARCHAR2(10 BYTE) NOT NULL
1372
)
1373
  TABLESPACE "SYSTEM"
1374
  LOGGING 
1375
  PCTFREE 10
1376
  PCTUSED 40
1377
  INITRANS 1
1378
  MAXTRANS 255
1379
  STORAGE
1380
  (
1381
    INITIAL 80K
1382
    NEXT 16K
1383
    MINEXTENTS 1
1384
    MAXEXTENTS 2147483645
1385
    PCTINCREASE 0
1386
    FREELISTS 1
1387
    FREELIST GROUPS 1
1388
    BUFFER_POOL DEFAULT
1389
  )
1390
;
1391
 
1392
CREATE TABLE ADDITIONAL_NOTES
1393
(
1394
  NOTE_ID NUMBER NOT NULL,
1395
  PV_ID NUMBER NOT NULL,
1396
  NOTE_TITLE VARCHAR2(2000 BYTE) NOT NULL,
1397
  NOTE_BODY VARCHAR2(4000 BYTE),
1398
  MOD_DATE DATE NOT NULL,
1399
  MOD_USER NUMBER NOT NULL
1400
)
1401
  TABLESPACE "USERS"
1402
  LOGGING 
1403
  PCTFREE 10
1404
  PCTUSED 0
1405
  INITRANS 1
1406
  MAXTRANS 255
1407
  STORAGE
1408
  (
1409
    INITIAL 128K
1410
    MINEXTENTS 1
1411
    MAXEXTENTS 2147483645
1412
    FREELISTS 1
1413
    FREELIST GROUPS 1
1414
    BUFFER_POOL DEFAULT
1415
  )
1416
;
1417
 
1418
CREATE TABLE PACKAGE_VERSIONS
1419
(
1420
  PV_ID NUMBER NOT NULL,
1421
  PKG_ID NUMBER NOT NULL,
1422
  PKG_VERSION VARCHAR2(50 BYTE) NOT NULL,
1423
  DLOCKED CHAR(1 BYTE) NOT NULL,
1424
  RELEASED_AT NUMBER,
1425
  MODIFIED_STAMP DATE,
1426
  MODIFIER_ID NUMBER NOT NULL,
1427
  CREATED_STAMP DATE,
1428
  CREATOR_ID NUMBER NOT NULL,
1429
  COMMENTS VARCHAR2(4000 BYTE),
1430
  V_MM VARCHAR2(50 BYTE),
1431
  V_NMM VARCHAR2(50 BYTE),
1432
  V_EXT VARCHAR2(50 BYTE),
1433
  PKG_LABEL VARCHAR2(60 BYTE),
1434
  SRC_PATH VARCHAR2(2000 BYTE),
1435
  PV_DESCRIPTION VARCHAR2(4000 BYTE),
1436
  OWNER_ID NUMBER NOT NULL,
1437
  PV_OVERVIEW VARCHAR2(4000 BYTE),
1438
  IS_PATCH CHAR(1 BYTE),
1439
  LAST_PV_ID NUMBER NOT NULL,
1440
  RELEASE_NOTES_INFO VARCHAR2(1000 BYTE),
1441
  IS_DEPLOYABLE CHAR(1 BYTE),
1442
  IS_BUILD_ENV_REQUIRED CHAR(1 BYTE),
1443
  IS_OBSOLETE CHAR(1 BYTE),
1444
  OBSOLETE_COMMENTS VARCHAR2(4000 BYTE),
1445
  BUILD_TYPE CHAR(1 BYTE) NOT NULL,
1446
  CHANGE_TYPE CHAR(1 BYTE),
1447
  LINK VARCHAR2(4000 BYTE),
1448
  PATCH_ELECTRONIC_NAME VARCHAR2(4000 BYTE),
1449
  BS_ID NUMBER,
1450
  IS_AUTOBUILDABLE CHAR(1 CHAR),
1451
  SBOM_PRIORITY CHAR(1 BYTE),
1452
  RIPPLE_FIELD CHAR(1 CHAR),
1453
  MAXIMUM_BUILD_TIME NUMBER,
1454
  ESTIMATED_COMPLETION_TIME DATE
1455
, CONSTRAINT PK_PACKAGE_VERSIONS PRIMARY KEY
1456
  (
1457
    PV_ID
1458
  )
1459
  ENABLE
1460
)
1461
  TABLESPACE "SYSTEM"
1462
  LOGGING 
1463
  PCTFREE 10
1464
  PCTUSED 40
1465
  INITRANS 1
1466
  MAXTRANS 255
1467
  STORAGE
1468
  (
1469
    INITIAL 32120K
1470
    NEXT 16K
1471
    MINEXTENTS 1
1472
    MAXEXTENTS 2147483645
1473
    PCTINCREASE 0
1474
    FREELISTS 1
1475
    FREELIST GROUPS 1
1476
    BUFFER_POOL DEFAULT
1477
  )
1478
;
1479
 
1480
CREATE TABLE MESSAGE_BOARD
1481
(
1482
  MSG_ID NUMBER NOT NULL,
1483
  MSG_DETAILS VARCHAR2(2000 BYTE) NOT NULL,
1484
  SUBMITION_DATE DATE NOT NULL,
1485
  EXPIRY_DATE DATE,
1486
  DUE_DATE DATE
1487
, CONSTRAINT PK_MESSAGE_BOARD PRIMARY KEY
1488
  (
1489
    MSG_ID
1490
  )
1491
  ENABLE
1492
)
1493
  TABLESPACE "SYSTEM"
1494
  LOGGING 
1495
  PCTFREE 10
1496
  PCTUSED 40
1497
  INITRANS 1
1498
  MAXTRANS 255
1499
  STORAGE
1500
  (
1501
    INITIAL 80K
1502
    NEXT 16K
1503
    MINEXTENTS 1
1504
    MAXEXTENTS 2147483645
1505
    PCTINCREASE 0
1506
    FREELISTS 1
1507
    FREELIST GROUPS 1
1508
    BUFFER_POOL DEFAULT
1509
  )
1510
;
1511
 
1512
CREATE TABLE VTREES_WORLD
1513
(
1514
  WORLD_ID NUMBER NOT NULL,
1515
  VTREE_ID NUMBER NOT NULL
1516
)
1517
  TABLESPACE "USERS"
1518
  LOGGING 
1519
  PCTFREE 10
1520
  PCTUSED 0
1521
  INITRANS 1
1522
  MAXTRANS 255
1523
  STORAGE
1524
  (
1525
    INITIAL 128K
1526
    MINEXTENTS 1
1527
    MAXEXTENTS 2147483645
1528
    FREELISTS 1
1529
    FREELIST GROUPS 1
1530
    BUFFER_POOL DEFAULT
1531
  )
1532
;
1533
 
1534
CREATE TABLE CODE_REVIEWS
1535
(
1536
  PV_ID NUMBER NOT NULL,
1537
  DATE_OF_REVIEW DATE,
1538
  TIME_SPENT FLOAT(126),
1539
  REVIEW_REASON VARCHAR2(4000 BYTE),
1540
  RTEAM_DOMAIN_EXPERT VARCHAR2(4000 BYTE),
1541
  RTEAM_LANGUAGE_EXPERT VARCHAR2(4000 BYTE),
1542
  RTEAM_PEER_DEVELOPER VARCHAR2(4000 BYTE),
1543
  RTEAM_AUTHOR VARCHAR2(4000 BYTE),
1544
  FILES_REVIEWED VARCHAR2(4000 BYTE),
1545
  REVIEW_RESULTS NUMBER,
1546
  ISSUES_RAISED VARCHAR2(4000 BYTE),
1547
  REVIEW_COMMENTS VARCHAR2(4000 BYTE),
1548
  FNC_S_MEETS_FUNCTIONALITY CHAR(1 BYTE),
1549
  FNC_C_MEETS_FUNCTIONALITY VARCHAR2(4000 BYTE),
1550
  RBS_S_BOUND_COND_HANDLED CHAR(1 BYTE),
1551
  RBS_C_BOUND_COND_HANDLED VARCHAR2(4000 BYTE),
1552
  RBS_S_CLASS_INTERF_PRECOND CHAR(1 BYTE),
1553
  RBS_C_CLASS_INTERF_PRECOND VARCHAR2(4000 BYTE),
1554
  RBS_S_NO_UNITIALISED_DATE CHAR(1 BYTE),
1555
  RBS_C_NO_UNITIALISED_DATE VARCHAR2(4000 BYTE),
1556
  RBS_S_EXCEP_HANDING CHAR(1 BYTE),
1557
  RBS_C_EXCEP_HANDING VARCHAR2(4000 BYTE),
1558
  RBS_S_RESOURCE_MNG CHAR(1 BYTE),
1559
  RBS_C_RESOURCE_MNG VARCHAR2(4000 BYTE),
1560
  RBS_S_TRANS_COMPLET CHAR(1 BYTE),
1561
  RBS_C_TRANS_COMPLET VARCHAR2(4000 BYTE),
1562
  RBS_S_THREADSAFETY CHAR(1 BYTE),
1563
  RBS_C_THREADSAFETY VARCHAR2(4000 BYTE),
1564
  RBS_S_RET_VALS CHAR(1 BYTE),
1565
  RBS_C_RET_VALS VARCHAR2(4000 BYTE),
1566
  RBS_S_CORR_ERR_HANDLING CHAR(1 BYTE),
1567
  RBS_C_CORR_ERR_HANDLING VARCHAR2(4000 BYTE),
1568
  RBS_S_SQL_STD CHAR(1 BYTE),
1569
  RBS_C_SQL_STD VARCHAR2(4000 BYTE),
1570
  MNT_S_EXT_REF CHAR(1 BYTE),
1571
  MNT_C_EXT_REF VARCHAR2(4000 BYTE),
1572
  MNT_S_CLASS_SIZE CHAR(1 BYTE),
1573
  MNT_C_CLASS_SIZE VARCHAR2(4000 BYTE),
1574
  MNT_S_METHOD_SIZE CHAR(1 BYTE),
1575
  MNT_C_METHOD_SIZE VARCHAR2(4000 BYTE),
1576
  MNT_S_APPROP_COMM CHAR(1 BYTE),
1577
  MNT_C_APPROP_COMM VARCHAR2(4000 BYTE),
1578
  MNT_S_IDENT_NAME_STD CHAR(1 BYTE),
1579
  MNT_C_IDENT_NAME_STD VARCHAR2(4000 BYTE),
1580
  MNT_S_SWITCH_HAVE_DEFAULTS CHAR(1 BYTE),
1581
  MNT_C_SWITCH_HAVE_DEFAULTS VARCHAR2(4000 BYTE),
1582
  MNT_S_NO_LIT_NUM CHAR(1 BYTE),
1583
  MNT_C_NO_LIT_NUM VARCHAR2(4000 BYTE),
1584
  MNT_S_NO_DEAD_CODE CHAR(1 BYTE),
1585
  MNT_C_NO_DEAD_CODE VARCHAR2(4000 BYTE),
1586
  DEI_S_STD_DES_PATT CHAR(1 BYTE),
1587
  DEI_C_STD_DES_PATT VARCHAR2(4000 BYTE),
1588
  DEI_S_APPROP_ALGOR CHAR(1 BYTE),
1589
  DEI_C_APPROP_ALGOR VARCHAR2(4000 BYTE),
1590
  DEI_S_APPROP_OBJ CHAR(1 BYTE),
1591
  DEI_C_APPROP_OBJ VARCHAR2(4000 BYTE),
1592
  DEI_S_APPROP_ERR_MSG CHAR(1 BYTE),
1593
  DEI_C_APPROP_ERR_MSG VARCHAR2(4000 BYTE),
1594
  DEI_S_STD_FRAMEW_COMP CHAR(1 BYTE),
1595
  DEI_C_STD_FRAMEW_COMP VARCHAR2(4000 BYTE),
1596
  DEI_S_APPROP_LOGGING CHAR(1 BYTE),
1597
  DEI_C_APPROP_LOGGING VARCHAR2(4000 BYTE)
1598
)
1599
  TABLESPACE "USERS"
1600
  LOGGING 
1601
  PCTFREE 10
1602
  PCTUSED 0
1603
  INITRANS 1
1604
  MAXTRANS 255
1605
  STORAGE
1606
  (
1607
    INITIAL 128K
1608
    MINEXTENTS 1
1609
    MAXEXTENTS 2147483645
1610
    FREELISTS 1
1611
    FREELIST GROUPS 1
1612
    BUFFER_POOL DEFAULT
1613
  )
1614
;
1615
 
1616
CREATE TABLE DEF_ACTION_BUTTONS
1617
(
1618
  ABTN_ID NUMBER NOT NULL,
1619
  ABTN_NAME VARCHAR2(1000 BYTE) NOT NULL,
1620
  TEXT VARCHAR2(50 BYTE),
1621
  ACTION_LINK VARCHAR2(4000 BYTE),
1622
  EVENT_HANDLER VARCHAR2(4000 BYTE),
1623
  IMG_ENABLED VARCHAR2(1000 BYTE),
1624
  IMG_DISABLED VARCHAR2(1000 BYTE),
1625
  HINT VARCHAR2(255 BYTE),
1626
  VISIBLE CHAR(1 BYTE) NOT NULL,
1627
  ACTIVE CHAR(1 BYTE) NOT NULL,
1628
  IS_READONLY_ACTION CHAR(1 BYTE) NOT NULL
1629
, CONSTRAINT PK_DEF_ACTION_BUTTONS PRIMARY KEY
1630
  (
1631
    ABTN_ID
1632
  )
1633
  ENABLE
1634
)
1635
  TABLESPACE "USERS"
1636
  LOGGING 
1637
  PCTFREE 10
1638
  PCTUSED 0
1639
  INITRANS 1
1640
  MAXTRANS 255
1641
  STORAGE
1642
  (
1643
    INITIAL 64K
1644
    MINEXTENTS 1
1645
    MAXEXTENTS 2147483645
1646
    FREELISTS 1
1647
    FREELIST GROUPS 1
1648
    BUFFER_POOL DEFAULT
1649
  )
1650
;
1651
 
1652
CREATE TABLE CQ_ISSUES
1653
(
1654
  PV_ID NUMBER NOT NULL,
1655
  ISS_DB NUMBER NOT NULL,
1656
  ISS_ID NUMBER NOT NULL,
1657
  ISS_STATE NUMBER NOT NULL,
1658
  MOD_DATE DATE NOT NULL,
1659
  NOTES VARCHAR2(255 BYTE)
1660
)
1661
  TABLESPACE "SYSTEM"
1662
  LOGGING 
1663
  PCTFREE 10
1664
  PCTUSED 40
1665
  INITRANS 1
1666
  MAXTRANS 255
1667
  STORAGE
1668
  (
1669
    INITIAL 1760K
1670
    NEXT 16K
1671
    MINEXTENTS 1
1672
    MAXEXTENTS 2147483645
1673
    PCTINCREASE 0
1674
    FREELISTS 1
1675
    FREELIST GROUPS 1
1676
    BUFFER_POOL DEFAULT
1677
  )
1678
;
1679
 
1680
CREATE TABLE VALIDATION_RULES
1681
(
1682
  FIELD_NAME VARCHAR2(1000 BYTE) NOT NULL,
1683
  IS_REQUIRED CHAR(1 BYTE) NOT NULL,
1684
  IS_NUMERIC CHAR(1 BYTE),
1685
  MIN_NUMERIC_VALUE NUMBER,
1686
  MAX_NUMERIC_VALUE NUMBER,
1687
  IS_DATE CHAR(1 BYTE),
1688
  START_DATE DATE,
1689
  END_DATE DATE,
1690
  MIN_STRING_LENGTH NUMBER,
1691
  MAX_STRING_LENGTH NUMBER,
1692
  REGEXP VARCHAR2(4000 BYTE),
1693
  REGEXP_DESCRIPTION VARCHAR2(50 BYTE)
1694
)
1695
  TABLESPACE "USERS"
1696
  LOGGING 
1697
  PCTFREE 10
1698
  PCTUSED 0
1699
  INITRANS 1
1700
  MAXTRANS 255
1701
  STORAGE
1702
  (
1703
    INITIAL 128K
1704
    MINEXTENTS 1
1705
    MAXEXTENTS 2147483645
1706
    FREELISTS 1
1707
    FREELIST GROUPS 1
1708
    BUFFER_POOL DEFAULT
1709
  )
1710
;
1711
 
1712
ALTER TABLE PLANNED
1713
ADD CONSTRAINT UNIQUE_PV_RTAG UNIQUE
1714
(
1715
  PV_ID,
1716
  RTAG_ID
1717
)
1718
 ENABLE
1719
;
1720
 
1721
ALTER TABLE PACKAGE_BUILD_ENV
1722
ADD CONSTRAINT FK_PKG_BUILD_E_REF_BUILD_ENV FOREIGN KEY
1723
(
1724
  BE_ID
1725
)
1726
REFERENCES BUILD_ENVIRONMENTS
1727
(
1728
BE_ID
1729
) ENABLE
1730
;
1731
 
1732
ALTER TABLE PACKAGE_BUILD_ENV
1733
ADD CONSTRAINT FK_PKG_BUILD_E_REF_PKG_VERSION FOREIGN KEY
1734
(
1735
  PV_ID
1736
)
1737
REFERENCES PACKAGE_VERSIONS
1738
(
1739
PV_ID
1740
) ENABLE
1741
;
1742
 
1743
ALTER TABLE NOTIFICATION_HISTORY
1744
ADD CONSTRAINT FK_NK_PV_ID FOREIGN KEY
1745
(
1746
  PV_ID
1747
)
1748
REFERENCES PACKAGE_VERSIONS
1749
(
1750
PV_ID
1751
) DISABLE
1752
;
1753
 
1754
ALTER TABLE NOTIFICATION_HISTORY
1755
ADD CONSTRAINT FK_NH_RTAG_ID FOREIGN KEY
1756
(
1757
  RTAG_ID
1758
)
1759
REFERENCES RELEASE_TAGS
1760
(
1761
RTAG_ID
1762
) DISABLE
1763
;
1764
 
1765
ALTER TABLE IGNORE_WARNINGS
1766
ADD CONSTRAINT FK_IGW_RTAG_ID FOREIGN KEY
1767
(
1768
  RTAG_ID
1769
)
1770
REFERENCES RELEASE_TAGS
1771
(
1772
RTAG_ID
1773
) DISABLE
1774
;
1775
 
1776
ALTER TABLE IGNORE_WARNINGS
1777
ADD CONSTRAINT FK_IGW_DPV_ID FOREIGN KEY
1778
(
1779
  DPV_ID
1780
)
1781
REFERENCES PACKAGE_VERSIONS
1782
(
1783
PV_ID
1784
) DISABLE
1785
;
1786
 
1787
ALTER TABLE IGNORE_WARNINGS
1788
ADD CONSTRAINT FK_IGW_PV_ID FOREIGN KEY
1789
(
1790
  PV_ID
1791
)
1792
REFERENCES PACKAGE_VERSIONS
1793
(
1794
PV_ID
1795
) DISABLE
1796
;
1797
 
1798
ALTER TABLE RELEASE_CONTENT
1799
ADD FOREIGN KEY
1800
(
1801
  PKG_ID
1802
)
1803
REFERENCES PACKAGES
1804
(
1805
PKG_ID
1806
) DISABLE
1807
;
1808
 
1809
ALTER TABLE PACKAGE_DOCUMENTS
1810
ADD CONSTRAINT FK_PKGDOCS_REF_PV FOREIGN KEY
1811
(
1812
  PV_ID
1813
)
1814
REFERENCES PACKAGE_VERSIONS
1815
(
1816
PV_ID
1817
) ENABLE
1818
;
1819
 
1820
ALTER TABLE BUILD_STANDARDS_ADDENDUM
1821
ADD CONSTRAINT BUILD_STANDARDS_ADDENDUM_R01 FOREIGN KEY
1822
(
1823
  BS_ID
1824
)
1825
REFERENCES BUILD_STANDARDS
1826
(
1827
BS_ID
1828
) ENABLE
1829
;
1830
 
1831
ALTER TABLE UNIT_TESTS
1832
ADD CONSTRAINT FK_UT_REF_TEST_TYPES FOREIGN KEY
1833
(
1834
  TEST_TYPES_FK
1835
)
1836
REFERENCES TEST_TYPES
1837
(
1838
TEST_TYPE_ID
1839
) DISABLE
1840
;
1841
 
1842
ALTER TABLE UNIT_TESTS
1843
ADD CONSTRAINT FK_UT_REF_PV_ID FOREIGN KEY
1844
(
1845
  PV_ID
1846
)
1847
REFERENCES PACKAGE_VERSIONS
1848
(
1849
PV_ID
1850
) DISABLE
1851
;
1852
 
1853
ALTER TABLE PACKAGE_PROCESSES
1854
ADD CONSTRAINT PACKAGE_PROCESSES_R02 FOREIGN KEY
1855
(
1856
  PROC_ID
1857
)
1858
REFERENCES PROCESSES
1859
(
1860
PROC_ID
1861
) ENABLE
1862
;
1863
 
1864
ALTER TABLE PACKAGE_PROCESSES
1865
ADD CONSTRAINT PACKAGE_PROCESSES_R01 FOREIGN KEY
1866
(
1867
  PV_ID
1868
)
1869
REFERENCES PACKAGE_VERSIONS
1870
(
1871
PV_ID
1872
) ENABLE
1873
;
1874
 
1875
ALTER TABLE RELEASE_COMPONENTS
1876
ADD CONSTRAINT FK_RCONT_PV_ID FOREIGN KEY
1877
(
1878
  PV_ID
1879
)
1880
REFERENCES PACKAGE_VERSIONS
1881
(
1882
PV_ID
1883
) ENABLE
1884
;
1885
 
1886
ALTER TABLE PACKAGE_PATCHES
1887
ADD CONSTRAINT FK_PP_PATCH_ID FOREIGN KEY
1888
(
1889
  PATCH_ID
1890
)
1891
REFERENCES PACKAGE_VERSIONS
1892
(
1893
PV_ID
1894
) DISABLE
1895
;
1896
 
1897
ALTER TABLE PACKAGE_PATCHES
1898
ADD CONSTRAINT FK_PP_PV_ID FOREIGN KEY
1899
(
1900
  PV_ID
1901
)
1902
REFERENCES PACKAGE_VERSIONS
1903
(
1904
PV_ID
1905
) ENABLE
1906
;
1907
 
1908
ALTER TABLE BUILD_ORDER
1909
ADD CONSTRAINT FK_BO_PV_ID FOREIGN KEY
1910
(
1911
  PV_ID
1912
)
1913
REFERENCES PACKAGE_VERSIONS
1914
(
1915
PV_ID
1916
) DISABLE
1917
;
1918
 
1919
ALTER TABLE BUILD_ORDER
1920
ADD CONSTRAINT FK_BO_RTAG_ID FOREIGN KEY
1921
(
1922
  RTAG_ID
1923
)
1924
REFERENCES RELEASE_TAGS
1925
(
1926
RTAG_ID
1927
) DISABLE
1928
;
1929
 
1930
ALTER TABLE PLANNED
1931
ADD CONSTRAINT REFPACKAGE_VERSIONS54 FOREIGN KEY
1932
(
1933
  PV_ID
1934
)
1935
REFERENCES PACKAGE_VERSIONS
1936
(
1937
PV_ID
1938
) ENABLE
1939
;
1940
 
1941
ALTER TABLE PLANNED
1942
ADD CONSTRAINT REFRELEASE_TAGS53 FOREIGN KEY
1943
(
1944
  RTAG_ID
1945
)
1946
REFERENCES RELEASE_TAGS
1947
(
1948
RTAG_ID
1949
) ENABLE
1950
;
1951
 
1952
ALTER TABLE PLANNED
1953
ADD CONSTRAINT REFVIEWS55 FOREIGN KEY
1954
(
1955
  VIEW_ID
1956
)
1957
REFERENCES VIEWS
1958
(
1959
VIEW_ID
1960
) ENABLE
1961
;
1962
 
1963
ALTER TABLE PROJECT_ACTION_LOG
1964
ADD FOREIGN KEY
1965
(
1966
  RTAG_ID
1967
)
1968
REFERENCES RELEASE_TAGS
1969
(
1970
RTAG_ID
1971
) DISABLE
1972
;
1973
 
1974
ALTER TABLE PROJECT_ACTION_LOG
1975
ADD CONSTRAINT REFACTION_TYPE63 FOREIGN KEY
1976
(
1977
  ACTTYPE_ID
1978
)
1979
REFERENCES ACTION_TYPE
1980
(
1981
ACTTYPE_ID
1982
) ENABLE
1983
;
1984
 
1985
ALTER TABLE PACKAGE_INTEREST
1986
ADD FOREIGN KEY
1987
(
1988
  PROJ_ID
1989
)
1990
REFERENCES PROJECTS
1991
(
1992
PROJ_ID
1993
) ENABLE
1994
;
1995
 
1996
ALTER TABLE AUTOBUILD_FAILURE
1997
ADD FOREIGN KEY
1998
(
1999
  VIEW_ID
2000
)
2001
REFERENCES VIEWS
2002
(
2003
VIEW_ID
2004
) ENABLE
2005
;
2006
 
2007
ALTER TABLE AUTOBUILD_FAILURE
2008
ADD FOREIGN KEY
2009
(
2010
  PROJ_ID
2011
)
2012
REFERENCES PROJECTS
2013
(
2014
PROJ_ID
2015
) ENABLE
2016
;
2017
 
2018
ALTER TABLE JIRA_ISSUES
2019
ADD CONSTRAINT FK_JIRA_PV_ID FOREIGN KEY
2020
(
2021
  PV_ID
2022
)
2023
REFERENCES PACKAGE_VERSIONS
2024
(
2025
PV_ID
2026
) ENABLE
2027
;
2028
 
2029
ALTER TABLE WORK_IN_PROGRESS
2030
ADD CONSTRAINT REFPACKAGE_VERSIONS51 FOREIGN KEY
2031
(
2032
  PV_ID
2033
)
2034
REFERENCES PACKAGE_VERSIONS
2035
(
2036
PV_ID
2037
) ENABLE
2038
;
2039
 
2040
ALTER TABLE WORK_IN_PROGRESS
2041
ADD CONSTRAINT REFRELEASE_TAGS50 FOREIGN KEY
2042
(
2043
  RTAG_ID
2044
)
2045
REFERENCES RELEASE_TAGS
2046
(
2047
RTAG_ID
2048
) ENABLE
2049
;
2050
 
2051
ALTER TABLE WORK_IN_PROGRESS
2052
ADD CONSTRAINT REFVIEWS52 FOREIGN KEY
2053
(
2054
  VIEW_ID
2055
)
2056
REFERENCES VIEWS
2057
(
2058
VIEW_ID
2059
) ENABLE
2060
;
2061
 
2062
ALTER TABLE ADVISORY_RIPPLES
2063
ADD FOREIGN KEY
2064
(
2065
  PV_ID
2066
)
2067
REFERENCES PACKAGE_VERSIONS
2068
(
2069
PV_ID
2070
) ENABLE
2071
;
2072
 
2073
ALTER TABLE ADVISORY_RIPPLES
2074
ADD FOREIGN KEY
2075
(
2076
  RTAG_ID
2077
)
2078
REFERENCES RELEASE_TAGS
2079
(
2080
RTAG_ID
2081
) ENABLE
2082
;
2083
 
2084
ALTER TABLE RELEASE_LINKS
2085
ADD CONSTRAINT REFRELEASE_TAGS58 FOREIGN KEY
2086
(
2087
  REF_RTAG_ID
2088
)
2089
REFERENCES RELEASE_TAGS
2090
(
2091
RTAG_ID
2092
) ENABLE
2093
;
2094
 
2095
ALTER TABLE RELEASE_LINKS
2096
ADD CONSTRAINT REFRELEASE_TAGS56 FOREIGN KEY
2097
(
2098
  RTAG_ID
2099
)
2100
REFERENCES RELEASE_TAGS
2101
(
2102
RTAG_ID
2103
) ENABLE
2104
;
2105
 
2106
ALTER TABLE PRODUCT_COMPONENTS
2107
ADD CONSTRAINT REFPACKAGE_VERSIONS49 FOREIGN KEY
2108
(
2109
  PV_ID
2110
)
2111
REFERENCES PACKAGE_VERSIONS
2112
(
2113
PV_ID
2114
) ENABLE
2115
;
2116
 
2117
ALTER TABLE MEMBERS_GROUP
2118
ADD FOREIGN KEY
2119
(
2120
  GROUP_EMAIL_ID
2121
)
2122
REFERENCES AUTOBUILD_FAILURE
2123
(
2124
GROUP_EMAIL_ID
2125
) ENABLE
2126
;
2127
 
2128
ALTER TABLE ACTION_LOG
2129
ADD CONSTRAINT REFACTION_TYPE48 FOREIGN KEY
2130
(
2131
  ACTTYPE_ID
2132
)
2133
REFERENCES ACTION_TYPE
2134
(
2135
ACTTYPE_ID
2136
) ENABLE
2137
;
2138
 
2139
ALTER TABLE ADDITIONAL_NOTES
2140
ADD CONSTRAINT FK_ADDITION_REF_PV_ID FOREIGN KEY
2141
(
2142
  PV_ID
2143
)
2144
REFERENCES PACKAGE_VERSIONS
2145
(
2146
PV_ID
2147
) DISABLE
2148
;
2149
 
2150
ALTER TABLE VTREES_WORLD
2151
ADD CONSTRAINT FK_VW_REF_VTREE_ID FOREIGN KEY
2152
(
2153
  VTREE_ID
2154
)
2155
REFERENCES VTREES
2156
(
2157
VTREE_ID
2158
) ENABLE
2159
;
2160
 
2161
ALTER TABLE VTREES_WORLD
2162
ADD CONSTRAINT FK_VW_REF_WORLD_ID FOREIGN KEY
2163
(
2164
  WORLD_ID
2165
)
2166
REFERENCES WORLDS
2167
(
2168
WORLD_ID
2169
) ENABLE
2170
;
2171
 
2172
ALTER TABLE CODE_REVIEWS
2173
ADD CONSTRAINT FK_CODE_REV_REF_PV_ID FOREIGN KEY
2174
(
2175
  PV_ID
2176
)
2177
REFERENCES PACKAGE_VERSIONS
2178
(
2179
PV_ID
2180
) DISABLE
2181
;
2182
 
2183
ALTER TABLE CQ_ISSUES
2184
ADD CONSTRAINT FK_CQ_PV_ID FOREIGN KEY
2185
(
2186
  PV_ID
2187
)
2188
REFERENCES PACKAGE_VERSIONS
2189
(
2190
PV_ID
2191
) DISABLE
2192
;
2193
 
2194
ALTER TABLE MICROSOFTDTPROPERTIES
2195
ADD CONSTRAINT MICROSOFT_NN_PROPERTY CHECK
2196
("PROPERTY" IS NOT NULL)
2197
 ENABLE
2198
;
2199
 
2200
ALTER TABLE MICROSOFTDTPROPERTIES
2201
ADD CONSTRAINT MICROSOFT_NN_ID CHECK
2202
("ID" IS NOT NULL)
2203
 ENABLE
2204
;
2205
 
2206
ALTER TABLE MICROSOFTDTPROPERTIES
2207
ADD CONSTRAINT MICROSOFT_NN_VERSION CHECK
2208
("VERSION" IS NOT NULL)
2209
 ENABLE
2210
;
2211
 
2212
CREATE UNIQUE INDEX UNQ_PKG_BUILD_ENV ON PACKAGE_BUILD_ENV (PV_ID ASC, BE_ID ASC)  TABLESPACE "USERS"
2213
  LOGGING 
2214
  PCTFREE 10
2215
  INITRANS 2
2216
  MAXTRANS 255
2217
  STORAGE
2218
  (
2219
    INITIAL 128K
2220
    MINEXTENTS 1
2221
    MAXEXTENTS 2147483645
2222
    FREELISTS 1
2223
    FREELIST GROUPS 1
2224
    BUFFER_POOL DEFAULT
2225
  )
2226
;
2227
 
2228
CREATE INDEX INX_TES_PKGEXT ON TEMP_ENV_STATES (PKG_ID ASC, V_EXT ASC)  TABLESPACE "USERS"
2229
  NOLOGGING 
2230
  PCTFREE 10
2231
  INITRANS 2
2232
  MAXTRANS 255
2233
  STORAGE
2234
  (
2235
    INITIAL 128K
2236
    MINEXTENTS 1
2237
    MAXEXTENTS 2147483645
2238
    FREELISTS 1
2239
    FREELIST GROUPS 1
2240
    BUFFER_POOL DEFAULT
2241
  )
2242
;
2243
 
2244
CREATE INDEX INX_TES_PV ON TEMP_ENV_STATES (PV_ID ASC)  TABLESPACE "USERS"
2245
  NOLOGGING 
2246
  PCTFREE 10
2247
  INITRANS 2
2248
  MAXTRANS 255
2249
  STORAGE
2250
  (
2251
    INITIAL 128K
2252
    MINEXTENTS 1
2253
    MAXEXTENTS 2147483645
2254
    FREELISTS 1
2255
    FREELIST GROUPS 1
2256
    BUFFER_POOL DEFAULT
2257
  )
2258
;
2259
 
2260
CREATE INDEX INX_TES_TES_STATE ON TEMP_ENV_STATES (TES_STATE ASC)  TABLESPACE "USERS"
2261
  NOLOGGING 
2262
  PCTFREE 10
2263
  INITRANS 2
2264
  MAXTRANS 255
2265
  STORAGE
2266
  (
2267
    INITIAL 128K
2268
    MINEXTENTS 1
2269
    MAXEXTENTS 2147483645
2270
    FREELISTS 1
2271
    FREELIST GROUPS 1
2272
    BUFFER_POOL DEFAULT
2273
  )
2274
;
2275
 
2276
CREATE INDEX INX_TTB_LEVEL_NUM ON TEMP_TREE_BROWSE (LEVEL_NUM ASC)  TABLESPACE "USERS"
2277
  LOGGING 
2278
  PCTFREE 10
2279
  INITRANS 2
2280
  MAXTRANS 255
2281
  STORAGE
2282
  (
2283
    INITIAL 64K
2284
    MINEXTENTS 1
2285
    MAXEXTENTS 2147483645
2286
    FREELISTS 1
2287
    FREELIST GROUPS 1
2288
    BUFFER_POOL DEFAULT
2289
  )
2290
;
2291
 
2292
CREATE INDEX INX_TTB_PKG ON TEMP_TREE_BROWSE (PKG_ID ASC, V_EXT ASC)  TABLESPACE "USERS"
2293
  LOGGING 
2294
  PCTFREE 10
2295
  INITRANS 2
2296
  MAXTRANS 255
2297
  STORAGE
2298
  (
2299
    INITIAL 64K
2300
    MINEXTENTS 1
2301
    MAXEXTENTS 2147483645
2302
    FREELISTS 1
2303
    FREELIST GROUPS 1
2304
    BUFFER_POOL DEFAULT
2305
  )
2306
;
2307
 
2308
CREATE INDEX INX_TTB_SESSION ON TEMP_TREE_BROWSE (SESSION_NUM ASC)  TABLESPACE "USERS"
2309
  LOGGING 
2310
  PCTFREE 10
2311
  INITRANS 2
2312
  MAXTRANS 255
2313
  STORAGE
2314
  (
2315
    INITIAL 64K
2316
    MINEXTENTS 1
2317
    MAXEXTENTS 2147483645
2318
    FREELISTS 1
2319
    FREELIST GROUPS 1
2320
    BUFFER_POOL DEFAULT
2321
  )
2322
;
2323
 
2324
CREATE INDEX INX_IS_PATCH_IGNORE ON IGNORE_WARNINGS (IS_PATCH_IGNORE ASC)  TABLESPACE "USERS"
2325
  LOGGING 
2326
  PCTFREE 10
2327
  INITRANS 2
2328
  MAXTRANS 255
2329
  STORAGE
2330
  (
2331
    INITIAL 128K
2332
    MINEXTENTS 1
2333
    MAXEXTENTS 2147483645
2334
    FREELISTS 1
2335
    FREELIST GROUPS 1
2336
    BUFFER_POOL DEFAULT
2337
  )
2338
;
2339
 
2340
CREATE UNIQUE INDEX UNQ_IGW ON IGNORE_WARNINGS (RTAG_ID ASC, PV_ID ASC, DPV_ID ASC)  TABLESPACE "USERS"
2341
  LOGGING 
2342
  PCTFREE 10
2343
  INITRANS 2
2344
  MAXTRANS 255
2345
  STORAGE
2346
  (
2347
    INITIAL 128K
2348
    MINEXTENTS 1
2349
    MAXEXTENTS 2147483645
2350
    FREELISTS 1
2351
    FREELIST GROUPS 1
2352
    BUFFER_POOL DEFAULT
2353
  )
2354
;
2355
 
2356
CREATE INDEX INX_RC_BASE_VIEW_ID ON RELEASE_CONTENT (BASE_VIEW_ID ASC)  TABLESPACE "USERS"
2357
  NOLOGGING 
2358
  PCTFREE 10
2359
  INITRANS 2
2360
  MAXTRANS 255
2361
  STORAGE
2362
  (
2363
    INITIAL 128K
2364
    MINEXTENTS 1
2365
    MAXEXTENTS 2147483645
2366
    FREELISTS 1
2367
    FREELIST GROUPS 1
2368
    BUFFER_POOL DEFAULT
2369
  )
2370
;
2371
 
2372
CREATE INDEX INX_RC_PKG_STATE ON RELEASE_CONTENT (PKG_STATE ASC)  TABLESPACE "USERS"
2373
  NOLOGGING 
2374
  PCTFREE 10
2375
  INITRANS 2
2376
  MAXTRANS 255
2377
  STORAGE
2378
  (
2379
    INITIAL 128K
2380
    MINEXTENTS 1
2381
    MAXEXTENTS 2147483645
2382
    FREELISTS 1
2383
    FREELIST GROUPS 1
2384
    BUFFER_POOL DEFAULT
2385
  )
2386
;
2387
 
2388
CREATE UNIQUE INDEX UNQ_RELEASE_CONTENTS ON RELEASE_CONTENT (RTAG_ID ASC, PV_ID ASC)  TABLESPACE "USERS"
2389
  NOLOGGING 
2390
  PCTFREE 10
2391
  INITRANS 2
2392
  MAXTRANS 255
2393
  STORAGE
2394
  (
2395
    INITIAL 128K
2396
    MINEXTENTS 1
2397
    MAXEXTENTS 2147483645
2398
    FREELISTS 1
2399
    FREELIST GROUPS 1
2400
    BUFFER_POOL DEFAULT
2401
  )
2402
;
2403
 
2404
CREATE INDEX INX_PV_ID_PKGDOC ON PACKAGE_DOCUMENTS (PV_ID ASC)  TABLESPACE "USERS"
2405
  LOGGING 
2406
  PCTFREE 10
2407
  INITRANS 2
2408
  MAXTRANS 255
2409
  STORAGE
2410
  (
2411
    INITIAL 128K
2412
    MINEXTENTS 1
2413
    MAXEXTENTS 2147483645
2414
    FREELISTS 1
2415
    FREELIST GROUPS 1
2416
    BUFFER_POOL DEFAULT
2417
  )
2418
;
2419
 
2420
CREATE INDEX INX_PV_ID_TEST_ID_PKGDOC ON PACKAGE_DOCUMENTS (PV_ID ASC, TEST_ID ASC)  TABLESPACE "USERS"
2421
  LOGGING 
2422
  PCTFREE 10
2423
  INITRANS 2
2424
  MAXTRANS 255
2425
  STORAGE
2426
  (
2427
    INITIAL 128K
2428
    MINEXTENTS 1
2429
    MAXEXTENTS 2147483645
2430
    FREELISTS 1
2431
    FREELIST GROUPS 1
2432
    BUFFER_POOL DEFAULT
2433
  )
2434
;
2435
 
2436
CREATE UNIQUE INDEX UNQ_PKG_DOC ON PACKAGE_DOCUMENTS (PV_ID ASC, DOC_NUM ASC)  TABLESPACE "USERS"
2437
  LOGGING 
2438
  PCTFREE 10
2439
  INITRANS 2
2440
  MAXTRANS 255
2441
  STORAGE
2442
  (
2443
    INITIAL 128K
2444
    MINEXTENTS 1
2445
    MAXEXTENTS 2147483645
2446
    FREELISTS 1
2447
    FREELIST GROUPS 1
2448
    BUFFER_POOL DEFAULT
2449
  )
2450
;
2451
 
2452
CREATE INDEX FK_PROJ_ID_RELEASE_TAGS ON RELEASE_TAGS (PROJ_ID ASC)  TABLESPACE "USERS"
2453
  LOGGING 
2454
  PCTFREE 10
2455
  INITRANS 2
2456
  MAXTRANS 255
2457
  STORAGE
2458
  (
2459
    INITIAL 64K
2460
    MINEXTENTS 1
2461
    MAXEXTENTS 2147483645
2462
    FREELISTS 1
2463
    FREELIST GROUPS 1
2464
    BUFFER_POOL DEFAULT
2465
  )
2466
;
2467
 
2468
CREATE INDEX INX_UT_COMPLETED ON UNIT_TESTS (COMPLETION_DATE ASC, COMPLETED_BY ASC)  TABLESPACE "USERS"
2469
  LOGGING 
2470
  PCTFREE 10
2471
  INITRANS 2
2472
  MAXTRANS 255
2473
  STORAGE
2474
  (
2475
    INITIAL 128K
2476
    MINEXTENTS 1
2477
    MAXEXTENTS 2147483645
2478
    FREELISTS 1
2479
    FREELIST GROUPS 1
2480
    BUFFER_POOL DEFAULT
2481
  )
2482
;
2483
 
2484
CREATE INDEX INX_UT_PV_TEST_TYPE ON UNIT_TESTS (PV_ID ASC, TEST_TYPES_FK ASC)  TABLESPACE "USERS"
2485
  LOGGING 
2486
  PCTFREE 10
2487
  INITRANS 2
2488
  MAXTRANS 255
2489
  STORAGE
2490
  (
2491
    INITIAL 128K
2492
    MINEXTENTS 1
2493
    MAXEXTENTS 2147483645
2494
    FREELISTS 1
2495
    FREELIST GROUPS 1
2496
    BUFFER_POOL DEFAULT
2497
  )
2498
;
2499
 
2500
CREATE UNIQUE INDEX UNQ_UT_PART1 ON UNIT_TESTS (PV_ID ASC, TEST_ID ASC)  TABLESPACE "USERS"
2501
  LOGGING 
2502
  PCTFREE 10
2503
  INITRANS 2
2504
  MAXTRANS 255
2505
  STORAGE
2506
  (
2507
    INITIAL 128K
2508
    MINEXTENTS 1
2509
    MAXEXTENTS 2147483645
2510
    FREELISTS 1
2511
    FREELIST GROUPS 1
2512
    BUFFER_POOL DEFAULT
2513
  )
2514
;
2515
 
2516
CREATE UNIQUE INDEX UNQ_BUILD_ENV ON BUILD_ENVIRONMENTS (BE_NAME ASC)  TABLESPACE "USERS"
2517
  LOGGING 
2518
  PCTFREE 10
2519
  INITRANS 2
2520
  MAXTRANS 255
2521
  STORAGE
2522
  (
2523
    INITIAL 128K
2524
    MINEXTENTS 1
2525
    MAXEXTENTS 2147483645
2526
    FREELISTS 1
2527
    FREELIST GROUPS 1
2528
    BUFFER_POOL DEFAULT
2529
  )
2530
;
2531
 
2532
CREATE INDEX INX_FILE_NAME ON RELEASE_COMPONENTS (UPPER("FILE_NAME") ASC)  TABLESPACE "USERS"
2533
  LOGGING 
2534
  PCTFREE 10
2535
  INITRANS 2
2536
  MAXTRANS 255
2537
  STORAGE
2538
  (
2539
    INITIAL 64K
2540
    MINEXTENTS 1
2541
    MAXEXTENTS 2147483645
2542
    FREELISTS 1
2543
    FREELIST GROUPS 1
2544
    BUFFER_POOL DEFAULT
2545
  )
2546
;
2547
 
2548
CREATE INDEX INX_RCOMP_PV_ID ON RELEASE_COMPONENTS (PV_ID ASC)  TABLESPACE "USERS"
2549
  LOGGING 
2550
  PCTFREE 10
2551
  INITRANS 2
2552
  MAXTRANS 255
2553
  STORAGE
2554
  (
2555
    INITIAL 64K
2556
    MINEXTENTS 1
2557
    MAXEXTENTS 2147483645
2558
    FREELISTS 1
2559
    FREELIST GROUPS 1
2560
    BUFFER_POOL DEFAULT
2561
  )
2562
;
2563
 
2564
CREATE UNIQUE INDEX UNQ_REL_COMPONENTS ON RELEASE_COMPONENTS (PV_ID ASC, FILE_NAME ASC, FILE_PATH ASC)  TABLESPACE "USERS"
2565
  LOGGING 
2566
  PCTFREE 10
2567
  INITRANS 2
2568
  MAXTRANS 255
2569
  STORAGE
2570
  (
2571
    INITIAL 128K
2572
    MINEXTENTS 1
2573
    MAXEXTENTS 2147483645
2574
    FREELISTS 1
2575
    FREELIST GROUPS 1
2576
    BUFFER_POOL DEFAULT
2577
  )
2578
;
2579
 
2580
CREATE INDEX INX_PP_PV_ID ON PACKAGE_PATCHES (PV_ID ASC)  TABLESPACE "USERS"
2581
  LOGGING 
2582
  PCTFREE 10
2583
  INITRANS 2
2584
  MAXTRANS 255
2585
  STORAGE
2586
  (
2587
    INITIAL 128K
2588
    MINEXTENTS 1
2589
    MAXEXTENTS 2147483645
2590
    FREELISTS 1
2591
    FREELIST GROUPS 1
2592
    BUFFER_POOL DEFAULT
2593
  )
2594
;
2595
 
2596
CREATE UNIQUE INDEX UNQ_PACKAGE_PATCHES ON PACKAGE_PATCHES (PATCH_ID ASC)  TABLESPACE "USERS"
2597
  NOLOGGING 
2598
  PCTFREE 10
2599
  INITRANS 2
2600
  MAXTRANS 255
2601
  STORAGE
2602
  (
2603
    INITIAL 128K
2604
    MINEXTENTS 1
2605
    MAXEXTENTS 2147483645
2606
    FREELISTS 1
2607
    FREELIST GROUPS 1
2608
    BUFFER_POOL DEFAULT
2609
  )
2610
;
2611
 
2612
CREATE UNIQUE INDEX UNQ_BUILD_ORDER ON BUILD_ORDER (RTAG_ID ASC, PV_ID ASC, STEP_NUM ASC)  TABLESPACE "USERS"
2613
  LOGGING 
2614
  PCTFREE 10
2615
  INITRANS 2
2616
  MAXTRANS 255
2617
  STORAGE
2618
  (
2619
    INITIAL 64K
2620
    MINEXTENTS 1
2621
    MAXEXTENTS 2147483645
2622
    FREELISTS 1
2623
    FREELIST GROUPS 1
2624
    BUFFER_POOL DEFAULT
2625
  )
2626
;
2627
 
2628
CREATE INDEX UNQ_PLANNED ON PLANNED (RTAG_ID ASC, PV_ID ASC)  TABLESPACE "USERS"
2629
  LOGGING 
2630
  PCTFREE 10
2631
  INITRANS 2
2632
  MAXTRANS 255
2633
  STORAGE
2634
  (
2635
    INITIAL 64K
2636
    MINEXTENTS 1
2637
    MAXEXTENTS 2147483645
2638
    FREELISTS 1
2639
    FREELIST GROUPS 1
2640
    BUFFER_POOL DEFAULT
2641
  )
2642
;
2643
 
2644
CREATE INDEX INX_PROJ_ACTION_DATE_TIME ON PROJECT_ACTION_LOG (ACTION_DATETIME ASC)  TABLESPACE "USERS"
2645
  LOGGING 
2646
  PCTFREE 10
2647
  INITRANS 2
2648
  MAXTRANS 255
2649
  STORAGE
2650
  (
2651
    INITIAL 64K
2652
    MINEXTENTS 1
2653
    MAXEXTENTS 2147483645
2654
    FREELISTS 1
2655
    FREELIST GROUPS 1
2656
    BUFFER_POOL DEFAULT
2657
  )
2658
;
2659
 
2660
CREATE INDEX INX_PROJ_ACTION_LOG_PROJ ON PROJECT_ACTION_LOG (PROJ_ID ASC)  TABLESPACE "USERS"
2661
  LOGGING 
2662
  PCTFREE 10
2663
  INITRANS 2
2664
  MAXTRANS 255
2665
  STORAGE
2666
  (
2667
    INITIAL 64K
2668
    MINEXTENTS 1
2669
    MAXEXTENTS 2147483645
2670
    FREELISTS 1
2671
    FREELIST GROUPS 1
2672
    BUFFER_POOL DEFAULT
2673
  )
2674
;
2675
 
2676
CREATE UNIQUE INDEX UNQ_PLATFORM ON PLATFORMS (NAME ASC)  TABLESPACE "USERS"
2677
  LOGGING 
2678
  PCTFREE 10
2679
  INITRANS 2
2680
  MAXTRANS 255
2681
  STORAGE
2682
  (
2683
    INITIAL 64K
2684
    MINEXTENTS 1
2685
    MAXEXTENTS 2147483645
2686
    FREELISTS 1
2687
    FREELIST GROUPS 1
2688
    BUFFER_POOL DEFAULT
2689
  )
2690
;
2691
 
2692
CREATE UNIQUE INDEX UNQ_VIEW_SETTINGS ON VIEW_SETTINGS (USER_ID ASC, VIEW_ID ASC)  TABLESPACE "SYSTEM"
2693
  LOGGING 
2694
  PCTFREE 10
2695
  INITRANS 2
2696
  MAXTRANS 255
2697
  STORAGE
2698
  (
2699
    INITIAL 80K
2700
    NEXT 16K
2701
    MINEXTENTS 1
2702
    MAXEXTENTS 2147483645
2703
    PCTINCREASE 0
2704
    FREELISTS 1
2705
    FREELIST GROUPS 1
2706
    BUFFER_POOL DEFAULT
2707
  )
2708
;
2709
 
2710
CREATE UNIQUE INDEX UNQ_VIEW_DEF ON VIEW_DEF (VIEW_ID ASC, PKG_ID ASC)  TABLESPACE "SYSTEM"
2711
  LOGGING 
2712
  PCTFREE 10
2713
  INITRANS 2
2714
  MAXTRANS 255
2715
  STORAGE
2716
  (
2717
    INITIAL 160K
2718
    NEXT 16K
2719
    MINEXTENTS 1
2720
    MAXEXTENTS 2147483645
2721
    PCTINCREASE 0
2722
    FREELISTS 1
2723
    FREELIST GROUPS 1
2724
    BUFFER_POOL DEFAULT
2725
  )
2726
;
2727
 
2728
CREATE UNIQUE INDEX UNQ_VTREES ON VTREES (PROJ_ID ASC, VTREE_NAME ASC)  TABLESPACE "SYSTEM"
2729
  LOGGING 
2730
  PCTFREE 10
2731
  INITRANS 2
2732
  MAXTRANS 255
2733
  STORAGE
2734
  (
2735
    INITIAL 80K
2736
    NEXT 16K
2737
    MINEXTENTS 1
2738
    MAXEXTENTS 2147483645
2739
    PCTINCREASE 0
2740
    FREELISTS 1
2741
    FREELIST GROUPS 1
2742
    BUFFER_POOL DEFAULT
2743
  )
2744
;
2745
 
2746
CREATE UNIQUE INDEX UNQ_WORK_IN_PROGRESS ON WORK_IN_PROGRESS (RTAG_ID ASC, PV_ID ASC)  TABLESPACE "USERS"
2747
  LOGGING 
2748
  PCTFREE 10
2749
  INITRANS 2
2750
  MAXTRANS 255
2751
  STORAGE
2752
  (
2753
    INITIAL 64K
2754
    MINEXTENTS 1
2755
    MAXEXTENTS 2147483645
2756
    FREELISTS 1
2757
    FREELIST GROUPS 1
2758
    BUFFER_POOL DEFAULT
2759
  )
2760
;
2761
 
2762
CREATE INDEX INX_RL_REFRTAG_ID ON RELEASE_LINKS (REF_RTAG_ID ASC)  TABLESPACE "USERS"
2763
  LOGGING 
2764
  PCTFREE 10
2765
  INITRANS 2
2766
  MAXTRANS 255
2767
  STORAGE
2768
  (
2769
    INITIAL 64K
2770
    MINEXTENTS 1
2771
    MAXEXTENTS 2147483645
2772
    FREELISTS 1
2773
    FREELIST GROUPS 1
2774
    BUFFER_POOL DEFAULT
2775
  )
2776
;
2777
 
2778
CREATE INDEX INX_RL_RTAG_ID ON RELEASE_LINKS (RTAG_ID ASC)  TABLESPACE "USERS"
2779
  LOGGING 
2780
  PCTFREE 10
2781
  INITRANS 2
2782
  MAXTRANS 255
2783
  STORAGE
2784
  (
2785
    INITIAL 64K
2786
    MINEXTENTS 1
2787
    MAXEXTENTS 2147483645
2788
    FREELISTS 1
2789
    FREELIST GROUPS 1
2790
    BUFFER_POOL DEFAULT
2791
  )
2792
;
2793
 
2794
CREATE UNIQUE INDEX UNQ_RELEASE_LINKS ON RELEASE_LINKS (RTAG_ID ASC, REF_RTAG_ID ASC)  TABLESPACE "USERS"
2795
  LOGGING 
2796
  PCTFREE 10
2797
  INITRANS 2
2798
  MAXTRANS 255
2799
  STORAGE
2800
  (
2801
    INITIAL 64K
2802
    MINEXTENTS 1
2803
    MAXEXTENTS 2147483645
2804
    FREELISTS 1
2805
    FREELIST GROUPS 1
2806
    BUFFER_POOL DEFAULT
2807
  )
2808
;
2809
 
2810
CREATE UNIQUE INDEX UNQ_BUILD_ENV_DOCS ON BUILD_ENV_DOCUMENTS (BE_ID ASC, DOC_NUM ASC)  TABLESPACE "USERS"
2811
  LOGGING 
2812
  PCTFREE 10
2813
  INITRANS 2
2814
  MAXTRANS 255
2815
  STORAGE
2816
  (
2817
    INITIAL 128K
2818
    MINEXTENTS 1
2819
    MAXEXTENTS 2147483645
2820
    FREELISTS 1
2821
    FREELIST GROUPS 1
2822
    BUFFER_POOL DEFAULT
2823
  )
2824
;
2825
 
2826
CREATE UNIQUE INDEX UNQ_TEST_TYPE_NAME ON TEST_TYPES (TEST_TYPE_NAME ASC)  TABLESPACE "USERS"
2827
  LOGGING 
2828
  PCTFREE 10
2829
  INITRANS 2
2830
  MAXTRANS 255
2831
  STORAGE
2832
  (
2833
    INITIAL 128K
2834
    MINEXTENTS 1
2835
    MAXEXTENTS 2147483645
2836
    FREELISTS 1
2837
    FREELIST GROUPS 1
2838
    BUFFER_POOL DEFAULT
2839
  )
2840
;
2841
 
2842
CREATE INDEX INX_PACKAGE_DEPS_DPKG_ID ON PACKAGE_DEPENDENCIES (DPKG_ID ASC)  TABLESPACE "USERS"
2843
  NOLOGGING 
2844
  PCTFREE 10
2845
  INITRANS 2
2846
  MAXTRANS 255
2847
  STORAGE
2848
  (
2849
    INITIAL 256K
2850
    MINEXTENTS 1
2851
    MAXEXTENTS 2147483645
2852
    FREELISTS 1
2853
    FREELIST GROUPS 1
2854
    BUFFER_POOL DEFAULT
2855
  )
2856
;
2857
 
2858
CREATE INDEX INX_PACKAGE_DEPS_DPV_ID ON PACKAGE_DEPENDENCIES (DPV_ID ASC)  TABLESPACE "USERS"
2859
  NOLOGGING 
2860
  PCTFREE 10
2861
  INITRANS 2
2862
  MAXTRANS 255
2863
  STORAGE
2864
  (
2865
    INITIAL 384K
2866
    MINEXTENTS 1
2867
    MAXEXTENTS 2147483645
2868
    FREELISTS 1
2869
    FREELIST GROUPS 1
2870
    BUFFER_POOL DEFAULT
2871
  )
2872
;
2873
 
2874
CREATE INDEX INX_PACKAGE_DEPS_PKG_ID ON PACKAGE_DEPENDENCIES (PKG_ID ASC)  TABLESPACE "USERS"
2875
  NOLOGGING 
2876
  PCTFREE 10
2877
  INITRANS 2
2878
  MAXTRANS 255
2879
  STORAGE
2880
  (
2881
    INITIAL 256K
2882
    MINEXTENTS 1
2883
    MAXEXTENTS 2147483645
2884
    FREELISTS 1
2885
    FREELIST GROUPS 1
2886
    BUFFER_POOL DEFAULT
2887
  )
2888
;
2889
 
2890
CREATE INDEX INX_PACKAGE_DEPS_PV_ID ON PACKAGE_DEPENDENCIES (PV_ID ASC)  TABLESPACE "USERS"
2891
  NOLOGGING 
2892
  PCTFREE 10
2893
  INITRANS 2
2894
  MAXTRANS 255
2895
  STORAGE
2896
  (
2897
    INITIAL 384K
2898
    MINEXTENTS 1
2899
    MAXEXTENTS 2147483645
2900
    FREELISTS 1
2901
    FREELIST GROUPS 1
2902
    BUFFER_POOL DEFAULT
2903
  )
2904
;
2905
 
2906
CREATE UNIQUE INDEX UNQ_PACKAGE_DEPENDENCIES ON PACKAGE_DEPENDENCIES (PV_ID ASC, DPV_ID ASC)  TABLESPACE "SYSTEM"
2907
  LOGGING 
2908
  PCTFREE 10
2909
  INITRANS 2
2910
  MAXTRANS 255
2911
  STORAGE
2912
  (
2913
    INITIAL 23760K
2914
    NEXT 16K
2915
    MINEXTENTS 1
2916
    MAXEXTENTS 2147483645
2917
    PCTINCREASE 0
2918
    FREELISTS 1
2919
    FREELIST GROUPS 1
2920
    BUFFER_POOL DEFAULT
2921
  )
2922
;
2923
 
2924
CREATE INDEX INX_PCOMP_FK_PV_ID ON PRODUCT_COMPONENTS (PV_ID ASC)  TABLESPACE "USERS"
2925
  LOGGING 
2926
  PCTFREE 10
2927
  INITRANS 2
2928
  MAXTRANS 255
2929
  STORAGE
2930
  (
2931
    INITIAL 64K
2932
    MINEXTENTS 1
2933
    MAXEXTENTS 2147483645
2934
    FREELISTS 1
2935
    FREELIST GROUPS 1
2936
    BUFFER_POOL DEFAULT
2937
  )
2938
;
2939
 
2940
CREATE INDEX INX_PC_FILE_NAME ON PRODUCT_COMPONENTS (UPPER("FILE_NAME") ASC)  TABLESPACE "USERS"
2941
  LOGGING 
2942
  PCTFREE 10
2943
  INITRANS 2
2944
  MAXTRANS 255
2945
  STORAGE
2946
  (
2947
    INITIAL 64K
2948
    MINEXTENTS 1
2949
    MAXEXTENTS 2147483645
2950
    FREELISTS 1
2951
    FREELIST GROUPS 1
2952
    BUFFER_POOL DEFAULT
2953
  )
2954
;
2955
 
2956
CREATE UNIQUE INDEX UNQ_PACKAGES ON PACKAGES (PKG_NAME ASC)  TABLESPACE "SYSTEM"
2957
  LOGGING 
2958
  PCTFREE 10
2959
  INITRANS 2
2960
  MAXTRANS 255
2961
  STORAGE
2962
  (
2963
    INITIAL 160K
2964
    NEXT 16K
2965
    MINEXTENTS 1
2966
    MAXEXTENTS 2147483645
2967
    PCTINCREASE 0
2968
    FREELISTS 1
2969
    FREELIST GROUPS 1
2970
    BUFFER_POOL DEFAULT
2971
  )
2972
;
2973
 
2974
CREATE UNIQUE INDEX UNQ_PROJECTS ON PROJECTS (PROJ_NAME ASC)  TABLESPACE "SYSTEM"
2975
  LOGGING 
2976
  PCTFREE 10
2977
  INITRANS 2
2978
  MAXTRANS 255
2979
  STORAGE
2980
  (
2981
    INITIAL 80K
2982
    NEXT 16K
2983
    MINEXTENTS 1
2984
    MAXEXTENTS 2147483645
2985
    PCTINCREASE 0
2986
    FREELISTS 1
2987
    FREELIST GROUPS 1
2988
    BUFFER_POOL DEFAULT
2989
  )
2990
;
2991
 
2992
CREATE UNIQUE INDEX UNQ_VIEWS ON VIEWS (VIEW_NAME ASC, OWNER_ID ASC)  TABLESPACE "SYSTEM"
2993
  LOGGING 
2994
  PCTFREE 10
2995
  INITRANS 2
2996
  MAXTRANS 255
2997
  STORAGE
2998
  (
2999
    INITIAL 80K
3000
    NEXT 16K
3001
    MINEXTENTS 1
3002
    MAXEXTENTS 2147483645
3003
    PCTINCREASE 0
3004
    FREELISTS 1
3005
    FREELIST GROUPS 1
3006
    BUFFER_POOL DEFAULT
3007
  )
3008
;
3009
 
3010
CREATE INDEX INX_ACTION_DATE_TIME ON ACTION_LOG (ACTION_DATETIME ASC)  TABLESPACE "USERS"
3011
  LOGGING 
3012
  PCTFREE 10
3013
  INITRANS 2
3014
  MAXTRANS 255
3015
  STORAGE
3016
  (
3017
    INITIAL 128K
3018
    MINEXTENTS 1
3019
    MAXEXTENTS 2147483645
3020
    FREELISTS 1
3021
    FREELIST GROUPS 1
3022
    BUFFER_POOL DEFAULT
3023
  )
3024
;
3025
 
3026
CREATE INDEX INX_ACTION_LOG_PV_ID ON ACTION_LOG (PV_ID ASC)  TABLESPACE "USERS"
3027
  LOGGING 
3028
  PCTFREE 10
3029
  INITRANS 2
3030
  MAXTRANS 255
3031
  STORAGE
3032
  (
3033
    INITIAL 128K
3034
    MINEXTENTS 1
3035
    MAXEXTENTS 2147483645
3036
    FREELISTS 1
3037
    FREELIST GROUPS 1
3038
    BUFFER_POOL DEFAULT
3039
  )
3040
;
3041
 
3042
CREATE UNIQUE INDEX UNQ_PROJECT_EXT ON PROJECT_EXTENTIONS (PROJ_ID ASC, EXT_NAME ASC)  TABLESPACE "SYSTEM"
3043
  LOGGING 
3044
  PCTFREE 10
3045
  INITRANS 2
3046
  MAXTRANS 255
3047
  STORAGE
3048
  (
3049
    INITIAL 80K
3050
    NEXT 16K
3051
    MINEXTENTS 1
3052
    MAXEXTENTS 2147483645
3053
    PCTINCREASE 0
3054
    FREELISTS 1
3055
    FREELIST GROUPS 1
3056
    BUFFER_POOL DEFAULT
3057
  )
3058
;
3059
 
3060
CREATE UNIQUE INDEX UNQ_AN_PART1 ON ADDITIONAL_NOTES (PV_ID ASC, NOTE_ID ASC)  TABLESPACE "USERS"
3061
  LOGGING 
3062
  PCTFREE 10
3063
  INITRANS 2
3064
  MAXTRANS 255
3065
  STORAGE
3066
  (
3067
    INITIAL 128K
3068
    MINEXTENTS 1
3069
    MAXEXTENTS 2147483645
3070
    FREELISTS 1
3071
    FREELIST GROUPS 1
3072
    BUFFER_POOL DEFAULT
3073
  )
3074
;
3075
 
3076
CREATE UNIQUE INDEX UNQ_AN_PART2 ON ADDITIONAL_NOTES (PV_ID ASC, NOTE_TITLE ASC)  TABLESPACE "USERS"
3077
  LOGGING 
3078
  PCTFREE 10
3079
  INITRANS 2
3080
  MAXTRANS 255
3081
  STORAGE
3082
  (
3083
    INITIAL 128K
3084
    MINEXTENTS 1
3085
    MAXEXTENTS 2147483645
3086
    FREELISTS 1
3087
    FREELIST GROUPS 1
3088
    BUFFER_POOL DEFAULT
3089
  )
3090
;
3091
 
3092
CREATE INDEX INX_PACKAGES_PKG_NAME ON PACKAGE_VERSIONS (PKG_ID ASC)  TABLESPACE "USERS"
3093
  NOLOGGING 
3094
  PCTFREE 10
3095
  INITRANS 2
3096
  MAXTRANS 255
3097
  STORAGE
3098
  (
3099
    INITIAL 128K
3100
    MINEXTENTS 1
3101
    MAXEXTENTS 2147483645
3102
    FREELISTS 1
3103
    FREELIST GROUPS 1
3104
    BUFFER_POOL DEFAULT
3105
  )
3106
;
3107
 
3108
CREATE INDEX INX_PACKAGES_PKG_VERSION ON PACKAGE_VERSIONS (PKG_VERSION ASC)  TABLESPACE "USERS"
3109
  NOLOGGING 
3110
  PCTFREE 10
3111
  INITRANS 2
3112
  MAXTRANS 255
3113
  STORAGE
3114
  (
3115
    INITIAL 128K
3116
    MINEXTENTS 1
3117
    MAXEXTENTS 2147483645
3118
    FREELISTS 1
3119
    FREELIST GROUPS 1
3120
    BUFFER_POOL DEFAULT
3121
  )
3122
;
3123
 
3124
CREATE INDEX INX_PACKAGES_V_EXT ON PACKAGE_VERSIONS (V_EXT ASC)  TABLESPACE "USERS"
3125
  NOLOGGING 
3126
  PCTFREE 10
3127
  INITRANS 2
3128
  MAXTRANS 255
3129
  STORAGE
3130
  (
3131
    INITIAL 128K
3132
    MINEXTENTS 1
3133
    MAXEXTENTS 2147483645
3134
    FREELISTS 1
3135
    FREELIST GROUPS 1
3136
    BUFFER_POOL DEFAULT
3137
  )
3138
;
3139
 
3140
CREATE INDEX INX_PACKAGES_V_MM ON PACKAGE_VERSIONS (V_MM ASC)  TABLESPACE "USERS"
3141
  NOLOGGING 
3142
  PCTFREE 10
3143
  INITRANS 2
3144
  MAXTRANS 255
3145
  STORAGE
3146
  (
3147
    INITIAL 128K
3148
    MINEXTENTS 1
3149
    MAXEXTENTS 2147483645
3150
    FREELISTS 1
3151
    FREELIST GROUPS 1
3152
    BUFFER_POOL DEFAULT
3153
  )
3154
;
3155
 
3156
CREATE INDEX INX_PACKAGES_V_NMM ON PACKAGE_VERSIONS (V_NMM ASC)  TABLESPACE "USERS"
3157
  NOLOGGING 
3158
  PCTFREE 10
3159
  INITRANS 2
3160
  MAXTRANS 255
3161
  STORAGE
3162
  (
3163
    INITIAL 128K
3164
    MINEXTENTS 1
3165
    MAXEXTENTS 2147483645
3166
    FREELISTS 1
3167
    FREELIST GROUPS 1
3168
    BUFFER_POOL DEFAULT
3169
  )
3170
;
3171
 
3172
CREATE INDEX INX_PV_OWNER_ID ON PACKAGE_VERSIONS (OWNER_ID ASC)  TABLESPACE "USERS"
3173
  LOGGING 
3174
  PCTFREE 10
3175
  INITRANS 2
3176
  MAXTRANS 255
3177
  STORAGE
3178
  (
3179
    INITIAL 128K
3180
    MINEXTENTS 1
3181
    MAXEXTENTS 2147483645
3182
    FREELISTS 1
3183
    FREELIST GROUPS 1
3184
    BUFFER_POOL DEFAULT
3185
  )
3186
;
3187
 
3188
CREATE UNIQUE INDEX UNQ_PACKAGE_VERSIONS ON PACKAGE_VERSIONS (PKG_ID ASC, PKG_VERSION ASC)  TABLESPACE "SYSTEM"
3189
  LOGGING 
3190
  PCTFREE 10
3191
  INITRANS 2
3192
  MAXTRANS 255
3193
  STORAGE
3194
  (
3195
    INITIAL 2960K
3196
    NEXT 16K
3197
    MINEXTENTS 1
3198
    MAXEXTENTS 2147483645
3199
    PCTINCREASE 0
3200
    FREELISTS 1
3201
    FREELIST GROUPS 1
3202
    BUFFER_POOL DEFAULT
3203
  )
3204
;
3205
 
3206
CREATE INDEX INX_MSGBOARD ON MESSAGE_BOARD (EXPIRY_DATE ASC, DUE_DATE ASC)  TABLESPACE "SYSTEM"
3207
  LOGGING 
3208
  PCTFREE 10
3209
  INITRANS 2
3210
  MAXTRANS 255
3211
  STORAGE
3212
  (
3213
    INITIAL 80K
3214
    NEXT 16K
3215
    MINEXTENTS 1
3216
    MAXEXTENTS 2147483645
3217
    PCTINCREASE 0
3218
    FREELISTS 1
3219
    FREELIST GROUPS 1
3220
    BUFFER_POOL DEFAULT
3221
  )
3222
;
3223
 
3224
CREATE UNIQUE INDEX UNQ_VTREE_WORLD ON VTREES_WORLD (WORLD_ID ASC, VTREE_ID ASC)  TABLESPACE "USERS"
3225
  LOGGING 
3226
  PCTFREE 10
3227
  INITRANS 2
3228
  MAXTRANS 255
3229
  STORAGE
3230
  (
3231
    INITIAL 128K
3232
    MINEXTENTS 1
3233
    MAXEXTENTS 2147483645
3234
    FREELISTS 1
3235
    FREELIST GROUPS 1
3236
    BUFFER_POOL DEFAULT
3237
  )
3238
;
3239
 
3240
CREATE UNIQUE INDEX INX_CODE_REVIEW ON CODE_REVIEWS (PV_ID ASC)  TABLESPACE "USERS"
3241
  LOGGING 
3242
  PCTFREE 10
3243
  INITRANS 2
3244
  MAXTRANS 255
3245
  STORAGE
3246
  (
3247
    INITIAL 128K
3248
    MINEXTENTS 1
3249
    MAXEXTENTS 2147483645
3250
    FREELISTS 1
3251
    FREELIST GROUPS 1
3252
    BUFFER_POOL DEFAULT
3253
  )
3254
;
3255
 
3256
CREATE UNIQUE INDEX UNQ_ABTN_DEF ON DEF_ACTION_BUTTONS (ABTN_NAME ASC)  TABLESPACE "USERS"
3257
  LOGGING 
3258
  PCTFREE 10
3259
  INITRANS 2
3260
  MAXTRANS 255
3261
  STORAGE
3262
  (
3263
    INITIAL 64K
3264
    MINEXTENTS 1
3265
    MAXEXTENTS 2147483645
3266
    FREELISTS 1
3267
    FREELIST GROUPS 1
3268
    BUFFER_POOL DEFAULT
3269
  )
3270
;
3271
 
3272
CREATE UNIQUE INDEX UNQ_CQ ON CQ_ISSUES (PV_ID ASC, ISS_ID ASC, ISS_DB ASC)  TABLESPACE "USERS"
3273
  LOGGING 
3274
  PCTFREE 10
3275
  INITRANS 2
3276
  MAXTRANS 255
3277
  STORAGE
3278
  (
3279
    INITIAL 128K
3280
    MINEXTENTS 1
3281
    MAXEXTENTS 2147483645
3282
    FREELISTS 1
3283
    FREELIST GROUPS 1
3284
    BUFFER_POOL DEFAULT
3285
  )
3286
;
3287
 
3288
CREATE UNIQUE INDEX UNQ_VALIDATION_RULES ON VALIDATION_RULES (FIELD_NAME ASC)  TABLESPACE "USERS"
3289
  LOGGING 
3290
  PCTFREE 10
3291
  INITRANS 2
3292
  MAXTRANS 255
3293
  STORAGE
3294
  (
3295
    INITIAL 128K
3296
    MINEXTENTS 1
3297
    MAXEXTENTS 2147483645
3298
    FREELISTS 1
3299
    FREELIST GROUPS 1
3300
    BUFFER_POOL DEFAULT
3301
  )
3302
;
3303
 
3304
CREATE OR REPLACE PROCEDURE ADD_VIEW_MEMBERS (nGroupId IN NUMBER, sUserList IN VARCHAR2) IS
3305
 
3306
/******************************************************************************
3307
   NAME:       ADD_VIEW_MEMBERS
3308
   PURPOSE:    
3309
 
3310
   REVISIONS:
3311
   Ver        Date        Author           Description
3312
   ---------  ----------  ---------------  ------------------------------------
3313
   1.0        11/04/2006          1. Created this procedure.
3314
 
3315
   NOTES:
3316
 
3317
   Automatically available Auto Replace Keywords:
3318
      Object Name:     ADD_VIEW_MEMBERS
3319
      Sysdate:         11/04/2006
3320
      Date and Time:   11/04/2006, 9:52:58 AM, and 11/04/2006 9:52:58 AM
3321
      Username:         (set in TOAD Options, Procedure Editor)
3322
      Table Name:       (set in the "New PL/SQL Object" dialog)
3323
 
3324
******************************************************************************/
3325
CURSOR user_cur IS
3326
 SELECT u.USER_ID
3327
   FROM USERS u
3328
  WHERE u.USER_ID IN (
3329
             SELECT * 
3330
        FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserList ) AS RELMGR_NUMBER_TAB_t ) FROM dual ) 
3331
      );
3332
user_rec user_cur%ROWTYPE;
3333
 
3334
 
3335
BEGIN
3336
 
3337
  OPEN user_cur;
3338
  FETCH user_cur INTO user_rec;
3339
 
3340
  WHILE user_cur%FOUND
3341
  LOOP
3342
    INSERT INTO MEMBERS_GROUP (GROUP_EMAIL_ID, USER_ID)
3343
    VALUES ( nGroupId, user_rec.USER_ID);
3344
 
3345
    FETCH user_cur INTO user_rec;  
3346
  END LOOP;  
3347
 
3348
 
3349
 
3350
END ADD_VIEW_MEMBERS;
3351
/
3352
 
3353
CREATE OR REPLACE PACKAGE PK_WORK_IN_PROGRESS IS
3354
/*
3355
------------------------------
3356
||  Last Modified:  S.Vukovic
3357
||  Modified Date:  2/May/2005
3358
||  Spec Version:   1.0
3359
------------------------------
3360
*/
3361
 
3362
 TYPE typeCur IS REF CURSOR;
3363
 
3364
    /*================================================================================================*/
3365
 PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
3366
 PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
3367
 PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER );
3368
 
3369
 FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
3370
 PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ); 
3371
 PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
3372
 /*================================================================================================*/
3373
 
3374
END PK_WORK_IN_PROGRESS;
3375
/
3376
 
3377
CREATE OR REPLACE PROCEDURE Level_N_Conflicts ( NNrtag_id IN NUMBER,
3378
                                                NNsession_num IN NUMBER,
3379
                                                NNrowCnt OUT NUMBER,
3380
                                                NNiteration IN NUMBER  ) IS
3381
/* ---------------------------------------------------------------------------
3382
    Version: 3.0.1
3383
   --------------------------------------------------------------------------- */
3384
 
3385
prevIteration NUMBER := NNiteration - 1;
3386
 
3387
BEGIN
3388
    /* ---------  LEVEL 1 CONFILCTS -----------
3389
    || Following states are used:
3390
    || 0 -> NOT FOUND
3391
    || 1 -> MAJOR
3392
    || 2 -> MINOR MINOR
3393
    */
3394
    INSERT INTO temp_env_states
3395
    SELECT DISTINCT
3396
           NNsession_num AS session_num,
3397
           NNiteration AS level_num, pv.pv_id, pv.pkg_id, pv.v_ext,
3398
           DECODE(tes.tes_state,
3399
                  2, 2,
3400
                  1) AS message
3401
      FROM package_dependencies dep,
3402
           package_versions dpv,
3403
           package_versions pv,
3404
           release_content rel,
3405
           temp_env_states tes
3406
     WHERE rel.pv_id = dep.pv_id
3407
       AND rel.rtag_id = NNrtag_id
3408
       AND dep.pv_id = pv.pv_id
3409
       AND dep.dpv_id = dpv.pv_id
3410
       AND dpv.pkg_id = tes.pkg_id
3411
       AND NVL(dpv.v_ext,'|LINK_A_NULL|') = NVL(tes.v_ext,'|LINK_A_NULL|')
3412
       AND tes.session_num = NNsession_num
3413
       AND tes.level_num = prevIteration
3414
       AND (dep.pv_id, dep.dpv_id) IN
3415
           /* Remove packages listed in IGNORE_WARNINGS table and
3416
     || packages already stored in Temp Table.
3417
     */
3418
           (
3419
           SELECT pd.pv_id, pd.dpv_id
3420
             FROM package_dependencies pd,
3421
                  release_content rc
3422
            WHERE pd.pv_id = rc.pv_id
3423
              AND rc.rtag_id = NNrtag_id
3424
              --AND pd.pv_id NOT IN ( SELECT pv_id FROM temp_env_states WHERE session_num = NNsession_num AND level_num > 5 )
3425
           MINUS
3426
           SELECT igw.pv_id, igw.dpv_id
3427
             FROM ignore_warnings igw
3428
            WHERE igw.rtag_id = NNrtag_id
3429
           );
3430
 
3431
    NNrowCnt := SQL%ROWCOUNT;
3432
 
3433
END Level_N_Conflicts;
3434
/
3435
 
3436
CREATE OR REPLACE PROCEDURE Remove_Release_Content ( sPvIdList IN VARCHAR2,
3437
              sNotPvIdList IN VARCHAR2,
3438
                                                     nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS
3439
/* ---------------------------------------------------------------------------
3440
    Version: 3.0
3441
   --------------------------------------------------------------------------- */
3442
 
3443
oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
3444
oNotPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
3445
 
3446
BEGIN
3447
 oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
3448
    oNotPvIdCollector := IN_LIST_NUMBER ( sNotPvIdList );
3449
 
3450
    -- Delete From Release Content
3451
    DELETE
3452
      FROM RELEASE_CONTENT
3453
  WHERE rtag_id = nRTagId
3454
    AND pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
3455
    AND NOT pv_id IN ( SELECT * FROM TABLE ( CAST ( oNotPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
3456
 
3457
 
3458
 
3459
END Remove_Release_Content;
3460
/
3461
 
3462
CREATE OR REPLACE PROCEDURE Level_One_Conflicts ( NNrtag_id IN NUMBER,
3463
                                                  NNsession_num IN NUMBER ) IS
3464
/* ---------------------------------------------------------------------------
3465
    Version: 3.0.0
3466
   --------------------------------------------------------------------------- */
3467
 
3468
BEGIN
3469
    /* ---------  LEVEL 1 CONFILCTS -----------
3470
    || Following states are used:
3471
    || 0 -> NOT FOUND
3472
    || 1 -> MAJOR
3473
    || 2 -> MINOR MINOR
3474
    */
3475
    INSERT INTO temp_env_states
3476
        SELECT DISTINCT
3477
               NNsession_num AS session_num,
3478
               1 AS level_num, err.pv_id,
3479
               errpkg.pkg_id, errpkg.v_ext,
3480
               DECODE(frc.v_nmm,
3481
                      NULL, 0,
3482
                      errpv.v_nmm, DECODE(frc.v_mm, errpv.v_mm, NULL, 2),
3483
                      1
3484
                     ) AS message
3485
          FROM
3486
               (
3487
               /* Full Release Contents used for reference*/
3488
               SELECT rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext, rpv.pkg_version, rpv.v_nmm, rpv.v_mm
3489
               FROM release_content rel, package_versions rpv
3490
               WHERE rel.pv_id = rpv.pv_id AND rtag_id = NNrtag_id
3491
               ) frc,
3492
               (
3493
                /* DPV_IDs not fount in release*/
3494
                SELECT dep.pv_id, dep.dpv_id AS err_dpv
3495
                  FROM package_dependencies dep
3496
                 WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = NNrtag_id )
3497
                   AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = NNrtag_id )
3498
                 MINUS
3499
                /* MINUS Dependencies to be ignored */
3500
                SELECT igw.pv_id, igw.dpv_id AS err_dpv
3501
                  FROM ignore_warnings igw
3502
                 WHERE rtag_id = NNrtag_id
3503
                ) err,
3504
               package_versions errpkg,
3505
               package_versions errpv
3506
         WHERE err.err_dpv = errpv.pv_id
3507
           AND errpv.pkg_id = frc.pkg_id(+)
3508
           AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
3509
           AND err.pv_id = errpkg.pv_id;
3510
 
3511
 
3512
 
3513
 
3514
END Level_One_Conflicts;
3515
/
3516
 
3517
CREATE OR REPLACE FUNCTION GET_AUTOMATED_LABEL ( nPvId IN NUMBER ) RETURN VARCHAR2 IS
3518
 
3519
/* ---------------------------------------------------------------------------
3520
    Version: 3.0.0
3521
   --------------------------------------------------------------------------- */
3522
 
3523
 sPkgName VARCHAR2(4000);
3524
 sVext VARCHAR2(4000);
3525
 
3526
BEGIN
3527
 
3528
 -- Get package details
3529
 SELECT pkg.PKG_NAME, pv.V_EXT INTO sPkgName, sVext
3530
   FROM PACKAGE_VERSIONS pv,
3531
       PACKAGES pkg
3532
  WHERE pv.PKG_ID = pkg.PKG_ID
3533
    AND pv.PV_ID = nPvId;
3534
 
3535
 
3536
 -- Generate Label for automated build
3537
 RETURN UPPER( sPkgName ||'.'|| nPvId || sVext ||'.WIP' );
3538
 
3539
END GET_AUTOMATED_LABEL;
3540
/
3541
 
3542
CREATE OR REPLACE PROCEDURE CLONED_PROCESSES
3543
IS
3544
 
3545
proc_id NUMBER;
3546
/******************************************************************************
3547
   NAME:       DELETE_DO_NOT_RIPPLE
3548
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
3549
               IS RELEASED
3550
 
3551
   REVISIONS:
3552
   Ver        Date        Author           Description
3553
   ---------  ----------  ---------------  ------------------------------------
3554
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
3555
 
3556
   NOTES:
3557
 
3558
   Automatically available Auto Replace Keywords:
3559
      Object Name:     DELETE_DO_NOT_RIPPLE
3560
      Sysdate:         21/04/2006
3561
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
3562
      Username:         (set in TOAD Options, Procedure Editor)
3563
      Table Name:       (set in the "New PL/SQL Object" dialog)
3564
 
3565
******************************************************************************/
3566
   CURSOR ripple_cur
3567
   IS
3568
      select distinct pkg_health_tag, cmd_interface, pkg_owner, is_interface from deployment_manager.processes_config;
3569
 
3570
   ripple_rec   ripple_cur%ROWTYPE;
3571
BEGIN
3572
   OPEN ripple_cur;
3573
 
3574
   FETCH ripple_cur
3575
    INTO ripple_rec;
3576
 
3577
   WHILE ripple_cur%FOUND
3578
   LOOP
3579
 
3580
   select deployment_manager.seq_proc_id.nextval into proc_id from dual;
3581
 
3582
insert into processes (PROC_ID, PROC_NAME, RUN_AS, PKG_OWNER, IS_INTERFACE) 
3583
values(proc_id, ripple_rec.pkg_health_tag, ripple_rec.cmd_interface, ripple_rec.pkg_owner, ripple_rec.is_interface);
3584
 
3585
      FETCH ripple_cur
3586
       INTO ripple_rec;
3587
   END LOOP;
3588
END CLONED_PROCESSES;
3589
/
3590
 
3591
CREATE OR REPLACE PACKAGE pk_package
3592
IS
3593
/*
3594
------------------------------
3595
||  Last Modified:  Rupesh Solanki
3596
||  Modified Date:  18/05/2006
3597
||
3598
------------------------------
3599
*/
3600
   TYPE typecur IS REF CURSOR;
3601
 
3602
/*================================================================================================*/
3603
   PROCEDURE new_version (
3604
      nlastpvid                   IN       NUMBER,
3605
      snewpkgversion              IN       VARCHAR2 DEFAULT NULL,
3606
      cbuildtype                  IN       CHAR,
3607
      nsettopvid                  IN       NUMBER DEFAULT NULL,
3608
      nrtagid                     IN       NUMBER,
3609
      nuserid                     IN       NUMBER,
3610
      enumissues_state_imported   IN       NUMBER,
3611
      returnpvid                  OUT      NUMBER
3612
   );
3613
 
3614
   PROCEDURE change_state (
3615
      pvid       IN   NUMBER,
3616
      newstate   IN   package_versions.dlocked%TYPE,
3617
      userid     IN   NUMBER
3618
   );
3619
 
3620
   PROCEDURE new_patch (
3621
      snewpatchversion   IN       package_versions.pkg_version%TYPE,
3622
      nparentpvid        IN       NUMBER,
3623
      spatchidlist       IN       VARCHAR2,
3624
      nuserid            IN       NUMBER,
3625
      returnpatchid      OUT      NUMBER
3626
   );
3627
 
3628
   PROCEDURE obsolete_patch (
3629
      patchid            IN   NUMBER,
3630
      isobsolete         IN   CHAR,
3631
      obsoletecomments   IN   VARCHAR2,
3632
      userid             IN   NUMBER
3633
   );
3634
 
3635
   PROCEDURE obsolete_patches (
3636
      spatchidlist       IN   VARCHAR2,
3637
      isobsolete         IN   CHAR,
3638
      obsoletecomments   IN   VARCHAR2,
3639
      userid             IN   NUMBER
3640
   );
3641
 
3642
   PROCEDURE destroy_package (
3643
      pvid               IN       NUMBER,
3644
      overridewarnings   IN       CHAR DEFAULT 'N',
3645
      problemstring      OUT      VARCHAR2
3646
   );
3647
 
3648
   PROCEDURE add_process (
3649
      nprocid         IN   processes.proc_id%TYPE,
3650
      shealthtag      IN   processes.proc_name%TYPE,
3651
      sprocdesc       IN   processes.proc_description%TYPE,
3652
      scmdinterface   IN   processes.run_as%TYPE,
3653
      spkgowner       IN   processes.pkg_owner%TYPE,
3654
      sisinterface    IN   processes.is_interface%TYPE,
3655
      npvid           IN   package_processes.pv_id%TYPE,
3656
      nuserid         IN   NUMBER
3657
   );
3658
 
3659
   PROCEDURE add_package_process (
3660
      nprocidlist   IN   VARCHAR2,
3661
      npvid         IN   package_processes.pv_id%TYPE,
3662
      nuserid       IN   NUMBER
3663
   );
3664
 
3665
 
3666
 
3667
   PROCEDURE remove_process (
3668
      nprocid   IN   package_processes.proc_id%TYPE,
3669
      npvid     IN   package_processes.pv_id%TYPE,
3670
      nuserid   IN   NUMBER
3671
   );
3672
 
3673
   PROCEDURE move_package (
3674
   	  npvid  			  IN package_versions.pv_id%TYPE,
3675
	  nrtagid 			  IN release_tags.rtag_id%TYPE,
3676
	  nnewrtagid 		  IN release_tags.rtag_id%TYPE,
3677
	  nuserid			  IN NUMBER		 
3678
   );   
3679
/*================================================================================================*/
3680
END pk_package;
3681
/
3682
 
3683
CREATE OR REPLACE PROCEDURE Add_Runtime_Dependency ( NNpv_id IN NUMBER,
3684
                                                     SSrtd_name IN PACKAGES.pkg_name%TYPE,
3685
                                                     SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
3686
                                                     NNuser_id IN NUMBER
3687
                                                    ) IS
3688
/* ---------------------------------------------------------------------------
3689
    Version: 3.1
3690
   --------------------------------------------------------------------------- */
3691
 
3692
    retRTD_ID NUMBER;
3693
 
3694
 CURSOR rtd_cur IS
3695
        SELECT rtd_id FROM runtime_dependencies WHERE pv_id = NNpv_id AND rtd_id = retRTD_ID;
3696
    rtd_rec rtd_cur%ROWTYPE;
3697
 
3698
BEGIN
3699
    --- Seed database with package_name and version if required ---
3700
    Seed_Package_Names_Versions ( SSrtd_name, SSrtd_version, NNuser_id, retRTD_ID );
3701
 
3702
 OPEN rtd_cur;
3703
    FETCH rtd_cur INTO rtd_rec;
3704
 
3705
    IF rtd_cur%NOTFOUND
3706
    THEN
3707
  /* Make sure it does not exists already as runtime dependency */
3708
 
3709
  --- Add new Runtime Dependency ---
3710
     INSERT INTO runtime_dependencies ( pv_id, rtd_id, mod_date, mod_user )
3711
     VALUES (  NNpv_id, retRTD_ID, ORA_SYSDATE , NNuser_id );
3712
 
3713
     /* LOG ACTION */
3714
        Log_Action ( NNpv_id, 'runtime_add', NNuser_id,
3715
            'Runtime package: '|| SSrtd_name ||' '|| SSrtd_version );
3716
 
3717
 END IF;
3718
 
3719
 
3720
END Add_Runtime_Dependency;
3721
/
3722
 
3723
CREATE OR REPLACE PROCEDURE ADD_PACKAGE_INTEREST (nProjId IN PROJECTS.PROJ_ID%TYPE,
3724
                     nPkgId IN PACKAGES.PKG_ID%TYPE,
3725
              nUserId IN NUMBER
3726
                     ) IS
3727
 
3728
/******************************************************************************
3729
   NAME:       ADD_PACKAGE_INTEREST
3730
   PURPOSE:    
3731
 
3732
   REVISIONS:
3733
   Ver        Date        Author           Description
3734
   ---------  ----------  ---------------  ------------------------------------
3735
   1.0        12/05/2006  Rupesh Solanki     1. Created this procedure.
3736
 
3737
   NOTES:
3738
 
3739
   Automatically available Auto Replace Keywords:
3740
      Object Name:     ADD_PACKAGE_INTEREST
3741
      Sysdate:         12/05/2006
3742
      Date and Time:   12/05/2006, 9:11:12 AM, and 12/05/2006 9:11:12 AM
3743
      Username:         (set in TOAD Options, Procedure Editor)
3744
      Table Name:       (set in the "New PL/SQL Object" dialog)
3745
 
3746
******************************************************************************/
3747
BEGIN
3748
 
3749
  --- Insert into PACKAGE_INTEREST TABLE
3750
  INSERT INTO PACKAGE_INTEREST (PROJ_ID, PKG_ID, USER_ID)
3751
  VALUES(nProjId, nPkgId, nUserId);
3752
 
3753
 
3754
END ADD_PACKAGE_INTEREST;
3755
/
3756
 
3757
CREATE OR REPLACE FUNCTION CAN_EDIT_PKG_IN_PROJECT ( nPvId IN NUMBER, nRtagId IN NUMBER ) RETURN NUMBER IS
3758
 
3759
/* ---------------------------------------------------------------------------
3760
    Version: 3.0.0
3761
   --------------------------------------------------------------------------- */
3762
 
3763
    VExt PACKAGE_VERSIONS.V_EXT%TYPE;
3764
 ProjId NUMBER;
3765
 RowCount NUMBER;
3766
 cReleaseMode CHAR(1);
3767
 
3768
BEGIN
3769
 
3770
 --RETURN 1;
3771
 
3772
 
3773
 /*--------------- Business Rules Here -------------------*/
3774
 IF (nRtagId IS NULL)  OR  (nRtagId < 1)THEN
3775
  RETURN 0;
3776
 END IF;
3777
 /*-------------------------------------------------------*/
3778
 
3779
 
3780
 
3781
 
3782
 
3783
 
3784
 /*-- First Check. See if package is used through release reference --*/
3785
 SELECT COUNT(rc.PV_ID) INTO RowCount
3786
   FROM (
3787
     SELECT rl.REF_RTAG_ID
3788
     FROM RELEASE_LINKS rl
3789
    WHERE rl.RTAG_ID = nRtagId
3790
     ) rl,
3791
   RELEASE_CONTENT rc
3792
   WHERE rc.RTAG_ID = rl.REF_RTAG_ID
3793
     AND rc.PV_ID = nPvId;   
3794
 
3795
 
3796
 -- Decide if package can be edited  
3797
 IF RowCount > 0 THEN
3798
  -- Package is referenced from other release, hence cannot be edited
3799
  RETURN 0; 
3800
 
3801
 ELSE
3802
 
3803
  -- Check is only done for releases in restrictive mode
3804
  SELECT rt.OFFICIAL INTO cReleaseMode
3805
    FROM RELEASE_TAGS rt
3806
   WHERE rt.RTAG_ID = nRtagId;
3807
 
3808
  IF cReleaseMode = 'N'OR cReleaseMode = 'R' THEN
3809
   -- Do not do any firther checking,
3810
   -- Package is editable here
3811
   RETURN 1;
3812
  END IF; 
3813
 
3814
 END IF;
3815
 
3816
 
3817
 
3818
 
3819
 /*-- Further checking --*/
3820
 -- Get proj_id
3821
 SELECT rt.PROJ_ID  INTO  ProjId
3822
   FROM RELEASE_TAGS rt
3823
  WHERE rt.RTAG_ID = nRtagId;
3824
 
3825
 
3826
 
3827
 BEGIN
3828
 
3829
  -- Get v_ext
3830
  SELECT pv.V_EXT  INTO  Vext
3831
    FROM PACKAGE_VERSIONS pv
3832
   WHERE pv.PV_ID = nPvId;  
3833
 
3834
  EXCEPTION
3835
      WHEN NO_DATA_FOUND THEN
3836
          Vext := NULL;
3837
 
3838
 END;  
3839
 
3840
 
3841
 --Temp Hack for Step Project
3842
 IF ProjId != 281 THEN
3843
  -- Find if package can be edited in this project
3844
   SELECT COUNT(pe.EXT_NAME) INTO RowCount
3845
    FROM PROJECT_EXTENTIONS pe
3846
   WHERE pe.PROJ_ID != ProjId  
3847
     AND pe.EXT_NAME = VExt;
3848
 END IF;  
3849
 
3850
 
3851
 -- Decide if package can be edited  
3852
 IF RowCount > 0 THEN
3853
  -- Package extension is found in other projects, hece NOT EDITABLE
3854
  RETURN 0;
3855
 ELSE
3856
  RETURN 1; 
3857
 END IF;
3858
 
3859
 
3860
END CAN_EDIT_PKG_IN_PROJECT;
3861
/
3862
 
3863
CREATE OR REPLACE PACKAGE pk_archive
3864
IS
3865
/*
3866
------------------------------
3867
||  Author:  Rupesh Solanki
3868
||  Date:    30 October 2006
3869
||  Version:   1.0
3870
------------------------------
3871
*/
3872
 
3873
   /*================================================================================================*/
3874
   PROCEDURE restore_and_flush_release_data (
3875
      nrtagid   IN   release_tags.rtag_id%TYPE
3876
   );
3877
 
3878
   PROCEDURE write_action_log (
3879
      nuserid   IN   NUMBER,
3880
      nrtagid   IN   release_tags.rtag_id%TYPE
3881
   );
3882
/*================================================================================================*/
3883
END pk_archive;
3884
/
3885
 
3886
CREATE OR REPLACE PROCEDURE Rebuild_Environment ( NNrtag_id IN NUMBER ) IS
3887
 
3888
/* ---------------------------------------------------------------------------
3889
    Version: 3.3
3890
   --------------------------------------------------------------------------- */
3891
    rowCnt NUMBER := 0;
3892
    iteration NUMBER := 2;          -- Iterations counter
3893
    maxIterations NUMBER := 50;    -- Maximum number of iterations allowed.
3894
                                    -- This will prevent infinite loops if cyrcular dependencies are found
3895
    sessionNum NUMBER;
3896
BEGIN
3897
    SELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;
3898
 
3899
 
3900
    -- Redo Patch Ignore warnings
3901
    Ignore_Dependency_Warnings ( NNrtag_id, NULL, NULL, TRUE );
3902
 
3903
 
3904
    Level_One_Conflicts ( NNrtag_id, sessionNum );
3905
 
3906
    LOOP
3907
        Level_N_Conflicts ( NNrtag_id, sessionNum, rowCnt, iteration );
3908
        iteration := iteration + 1;
3909
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
3910
    END LOOP;
3911
 
3912
    Update_Package_States ( NNrtag_id, sessionNum );
3913
 
3914
    DELETE FROM temp_env_states WHERE temp_env_states.session_num = sessionNum;
3915
 
3916
    -- Flag Packages with New Patches Available
3917
    Check_New_Patches ( NNrtag_id );
3918
 
3919
 
3920
 /* Circular Dependency Flag */
3921
    /*
3922
 IF iteration > maxIterations
3923
 THEN
3924
  UPDATE release_tags SET
3925
         circular_dependency = 'Y'
3926
   WHERE rtag_id = NNrtag_id;
3927
 ELSE
3928
  UPDATE release_tags SET
3929
         circular_dependency = NULL
3930
   WHERE rtag_id = NNrtag_id;
3931
 END IF;
3932
    */
3933
END Rebuild_Environment;
3934
/
3935
 
3936
CREATE OR REPLACE PROCEDURE Shift_Install_Order ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,
3937
              nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,
3938
                                                  nToInstallOrder IN PACKAGE_PATCHES.INSTALL_ORDER%TYPE ) IS
3939
/* ---------------------------------------------------------------------------
3940
    Version: 3.0
3941
   --------------------------------------------------------------------------- */
3942
 
3943
currInstallOrder NUMBER;
3944
FromInstallOrder NUMBER;
3945
 
3946
BEGIN
3947
 
3948
  -- Get Current Install Order
3949
     SELECT pp.INSTALL_ORDER INTO currInstallOrder
3950
       FROM PACKAGE_PATCHES pp
3951
      WHERE pp.PV_ID = nPvId
3952
        AND pp.PATCH_ID = nPatchId;
3953
 
3954
 
3955
  IF currInstallOrder > nToInstallOrder
3956
  THEN
3957
 
3958
  FromInstallOrder := nToInstallOrder;
3959
 
3960
     -- Shift others Up
3961
  UPDATE PACKAGE_PATCHES pp SET
3962
      pp.INSTALL_ORDER = pp.INSTALL_ORDER + 1
3963
   WHERE pp.PV_ID = nPvId
3964
           AND pp.PATCH_ID != nPatchId
3965
     AND pp.INSTALL_ORDER BETWEEN  FromInstallOrder  AND  currInstallOrder - 1;
3966
 
3967
 
3968
  ELSIF currInstallOrder < nToInstallOrder
3969
  THEN
3970
 
3971
  FromInstallOrder := currInstallOrder + 1;
3972
 
3973
  -- Shift others Down
3974
        UPDATE PACKAGE_PATCHES pp SET
3975
      pp.INSTALL_ORDER = pp.INSTALL_ORDER - 1
3976
   WHERE pp.PV_ID = nPvId
3977
           AND pp.PATCH_ID != nPatchId
3978
     AND pp.INSTALL_ORDER BETWEEN  FromInstallOrder  AND  nToInstallOrder;
3979
 
3980
  END IF;
3981
 
3982
 
3983
  -- Move Patch to new install order
3984
     UPDATE PACKAGE_PATCHES pp SET
3985
      pp.INSTALL_ORDER = nToInstallOrder
3986
   WHERE pp.PV_ID = nPvId
3987
     AND pp.PATCH_ID = nPatchId;
3988
 
3989
 
3990
END Shift_Install_Order;
3991
/
3992
 
3993
CREATE OR REPLACE PROCEDURE Basic_Clone ( nFROMpv_id IN NUMBER,
3994
            nTOpv_id IN NUMBER,
3995
                                          nRtag_id IN NUMBER,
3996
                                          nUser_id IN NUMBER,
3997
                                          nTOpkg_id IN NUMBER DEFAULT NULL,
3998
                                          enumISSUES_STATE_IMPORTED IN NUMBER DEFAULT NULL ) IS
3999
/* ---------------------------------------------------------------------------
4000
    Version: 3.5
4001
   --------------------------------------------------------------------------- */
4002
 
4003
   FromVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
4004
 
4005
BEGIN
4006
 
4007
------------------------------------- Clone Dependencies ---------------------------------------------------
4008
 IF NOT nRtag_id IS NULL
4009
    THEN
4010
  -- Auto Update Dependencies --
4011
  INSERT INTO PACKAGE_DEPENDENCIES
4012
      SELECT nTOpv_id AS pv_id,
4013
             DECODE(nUser_id,
4014
                    frc.modifier_id,
4015
                    frc.pv_id,
4016
                    DECODE(frc.dlocked,
4017
                           'Y',
4018
                           frc.pv_id,
4019
                           dep.dpv_id)
4020
                    ) AS dpv_id,
4021
             nTOpkg_id AS pkg_id,
4022
             dep.dpkg_id,
4023
             dep.build_type,
4024
       dep.display_order
4025
        FROM PACKAGE_DEPENDENCIES dep,
4026
             PACKAGE_VERSIONS pv,
4027
             (
4028
             /* Full Release Contents used for reference*/
4029
             SELECT rpv.pv_id, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext, rpv.modifier_id, rpv.dlocked
4030
             FROM RELEASE_CONTENT rel, PACKAGE_VERSIONS rpv
4031
             WHERE rel.pv_id = rpv.pv_id AND rtag_id = nRtag_id
4032
             ) frc
4033
       WHERE dep.pv_id = nFROMpv_id
4034
         AND dep.dpv_id = pv.pv_id
4035
         AND pv.pkg_id = frc.pkg_id(+)
4036
         AND NVL(pv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+);
4037
 
4038
 ELSE
4039
  -- Clone Dependencies --
4040
  INSERT INTO PACKAGE_DEPENDENCIES
4041
      SELECT nTOpv_id         AS pv_id,
4042
             dep.dpv_id,
4043
             nTOpkg_id        AS pkg_id,
4044
             dep.dpkg_id,
4045
             dep.build_type,
4046
       dep.display_order
4047
        FROM PACKAGE_DEPENDENCIES dep
4048
       WHERE dep.pv_id = nFROMpv_id;
4049
 
4050
 END IF;
4051
 
4052
----------------------------------------- Clone Issues -------------------------------------------------------
4053
 IF enumISSUES_STATE_IMPORTED IS NULL
4054
 THEN
4055
        /* All Issues */
4056
     INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
4057
          SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
4058
            FROM CQ_ISSUES
4059
              WHERE pv_id = nFROMpv_id;
4060
 ELSE
4061
     /* Outstanding Issues Only */
4062
     INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
4063
         SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
4064
           FROM CQ_ISSUES
4065
             WHERE pv_id = nFROMpv_id
4066
               AND iss_state = enumISSUES_STATE_IMPORTED;
4067
 END IF;
4068
 
4069
 
4070
------------------------------------ Clone Runtime Dependencies -----------------------------------------------
4071
 INSERT INTO RUNTIME_DEPENDENCIES (pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user)
4072
     SELECT nTOpv_id AS pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user
4073
     FROM RUNTIME_DEPENDENCIES WHERE pv_id = nFROMpv_id;
4074
 
4075
 
4076
--------------------------------------- Clone Additional Notes ------------------------------------------------
4077
 INSERT INTO ADDITIONAL_NOTES ( NOTE_ID, PV_ID, NOTE_TITLE, NOTE_BODY, MOD_DATE, MOD_USER )
4078
      SELECT an.NOTE_ID,
4079
                nTOpv_id AS PV_ID,
4080
                an.NOTE_TITLE,
4081
                an.NOTE_BODY,
4082
                an.MOD_DATE,
4083
                an.MOD_USER
4084
           FROM ADDITIONAL_NOTES an
4085
          WHERE an.PV_ID = nFROMpv_id;
4086
 
4087
 
4088
-------------------------------------------- Clone Unit Tests -------------------------------------------------
4089
 -- Clone only Automatic unit tests --
4090
 INSERT INTO UNIT_TESTS (
4091
       TEST_ID,
4092
       PV_ID,
4093
       TEST_TYPES_FK,
4094
       TEST_SUMMARY,
4095
       COMPLETION_DATE,
4096
       COMPLETED_BY,
4097
       RESULTS_URL,
4098
       RESULTS_ATTACHMENT_NAME,
4099
       NUMOF_TEST
4100
       )
4101
      SELECT ut.TEST_ID,
4102
                nTOpv_id AS PV_ID,
4103
                ut.TEST_TYPES_FK,
4104
                ut.TEST_SUMMARY,
4105
                Ora_Sysdate AS COMPLETION_DATE,
4106
                nUser_id AS COMPLETED_BY,
4107
                ut.RESULTS_URL,
4108
    ut.RESULTS_ATTACHMENT_NAME,
4109
    ut.NUMOF_TEST
4110
           FROM UNIT_TESTS ut
4111
          WHERE ut.PV_ID = nFROMpv_id
4112
            AND ut.TEST_TYPES_FK IN ( 5, 7 );
4113
 
4114
 -- Clone only Interactive Unit Tests --
4115
 INSERT INTO UNIT_TESTS (
4116
             TEST_ID, 
4117
       PV_ID,
4118
       TEST_TYPES_FK,
4119
       TEST_SUMMARY
4120
       )
4121
  SELECT ut.TEST_ID, 
4122
      nTOpv_id AS PV_ID,
4123
      ut.TEST_TYPES_FK,
4124
      ut.TEST_SUMMARY
4125
    FROM UNIT_TESTS ut
4126
   WHERE ut.PV_ID = nFROMpv_id
4127
     AND ut.TEST_TYPES_FK IN (6);
4128
 
4129
 
4130
-------------------------------------------- Clone Package Documents ------------------------------------------
4131
 INSERT INTO PACKAGE_DOCUMENTS ( PV_ID, TEST_ID, DOC_NUM, DOC_ID, IS_LATEST )
4132
      SELECT nTOpv_id AS PV_ID,
4133
     pd.test_id,
4134
    pd.doc_num,
4135
    pd.doc_id,
4136
                pd.IS_LATEST
4137
           FROM PACKAGE_DOCUMENTS pd
4138
          WHERE pd.PV_ID = nFROMpv_id;
4139
 
4140
-------------------------------------------- Clone Build Environments -----------------------------------------
4141
    INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID, BUILD_TYPE )
4142
 SELECT nTOpv_id AS PV_ID,
4143
     pkgbe.BE_ID,
4144
     pkgbe.BUILD_TYPE
4145
   FROM PACKAGE_BUILD_ENV pkgbe
4146
  WHERE pkgbe.PV_ID = nFROMpv_id;
4147
---------------------------------------------Clone Package Version Processes-----------------------------------
4148
    INSERT INTO PACKAGE_PROCESSES ( PV_ID, PROC_ID )
4149
 SELECT nTOpv_id AS PV_ID,
4150
     pp.PROC_ID
4151
   FROM PACKAGE_PROCESSES pp
4152
   WHERE pp.PV_ID = nFROMpv_id;     
4153
---------------------------------------------------------------------------------------------------------------
4154
 
4155
 /* LOG ACTION */
4156
    SELECT pv.PKG_VERSION INTO FromVersion
4157
      FROM PACKAGE_VERSIONS pv
4158
     WHERE pv.PV_ID = nFROMpv_id;
4159
 
4160
    Log_Action ( nTOpv_id, 'clone_from', nUser_id,
4161
        'Details cloned from: '|| FromVersion );
4162
 
4163
---------------------------------------------------------------------------------------------------------------
4164
 
4165
END Basic_Clone;
4166
/
4167
 
4168
CREATE OR REPLACE PROCEDURE Remove_Components ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE ) IS
4169
/* ---------------------------------------------------------------------------
4170
    Version: 3.0.0
4171
   --------------------------------------------------------------------------- */
4172
 
4173
 
4174
BEGIN
4175
 
4176
  --- Delete From RELEASE_COMPONENTS
4177
  DELETE FROM RELEASE_COMPONENTS
4178
  WHERE PV_ID = nPvId;
4179
 
4180
END Remove_Components;
4181
/
4182
 
4183
CREATE OR REPLACE PROCEDURE check_new_patches (
4184
   nrtagid   IN   release_content.rtag_id%TYPE
4185
)
4186
IS
4187
/* ---------------------------------------------------------------------------
4188
    Version: 3.0
4189
   --------------------------------------------------------------------------- */
4190
BEGIN
4191
   /*--------------- Business Rules Here -------------------*/
4192
   /*IF nRtagId NOT IN (SELECT RTAG_ID FROM RELEASE_TAGS ) THEN
4193
      RAISE_APPLICATION_ERROR (-20000, 'Please contact the person in charge of Release Manager now.' );
4194
   END IF
4195
 
4196
   /*-------------------------------------------------------*/
4197
   UPDATE release_content rc
4198
      SET rc.pkg_state = 5                          -- enumPKG_STATE_NEW_PATCH
4199
    WHERE rc.pv_id IN (
4200
             SELECT prod.pv_id
4201
               FROM (SELECT   pp.pv_id AS orig_parent_id,
4202
                              COUNT (*) AS num_of_patches
4203
                         FROM release_content rc, package_patches pp
4204
                        WHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagid
4205
                     GROUP BY pp.pv_id) orig,
4206
                    (SELECT   prodpp.pv_id, pp.pv_id AS parent_id,
4207
                              COUNT (*) AS num_of_patches
4208
                         FROM release_content rc,
4209
                              package_patches pp,
4210
                              package_dependencies dep,
4211
                              package_versions pv,
4212
                              package_patches prodpp
4213
                        WHERE rc.pv_id = pp.pv_id
4214
                          AND rc.rtag_id = nrtagid
4215
                          AND pp.patch_id = dep.dpv_id
4216
                          AND dep.pv_id = pv.pv_id
4217
                          AND pv.is_patch = 'Y'
4218
                          AND pv.dlocked = 'Y'
4219
                          AND prodpp.patch_id = dep.pv_id
4220
                     GROUP BY prodpp.pv_id, pp.pv_id) prod,
4221
                    release_content rc
4222
              WHERE orig.orig_parent_id = prod.pv_id
4223
                AND orig.num_of_patches != prod.num_of_patches
4224
                AND rc.rtag_id = nrtagid
4225
                AND rc.pv_id = prod.pv_id
4226
                AND rc.pkg_state = 0
4227
             UNION
4228
             SELECT   prodpp.pv_id
4229
                 FROM release_content rc,
4230
                      package_patches pp,
4231
                      package_dependencies dep,
4232
                      package_versions pv,
4233
                      package_patches prodpp
4234
                WHERE rc.pv_id = pp.pv_id
4235
                  AND rc.rtag_id = nrtagid
4236
                  AND pp.patch_id = dep.dpv_id
4237
                  AND dep.pv_id = pv.pv_id
4238
                  AND pv.is_patch = 'Y'
4239
                  AND pv.dlocked = 'Y'
4240
                  AND prodpp.patch_id = dep.pv_id
4241
             GROUP BY prodpp.pv_id, pp.pv_id
4242
             MINUS
4243
             SELECT   pp.pv_id
4244
                 FROM release_content rc, package_patches pp
4245
                WHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagid
4246
             GROUP BY pp.pv_id);
4247
END check_new_patches;
4248
/
4249
 
4250
CREATE OR REPLACE PROCEDURE Sync_Projects_New_Version   ( nPv_id     IN NUMBER,
4251
                sSyncRtagsInList  IN VARCHAR2,
4252
                                              nUser_id     IN NUMBER ) IS
4253
/* ---------------------------------------------------------------------------
4254
    Version: 3.0.0
4255
   --------------------------------------------------------------------------- */
4256
 
4257
 CURSOR sync_rtags_cur IS
4258
        SELECT rc.RTAG_ID, rc.BASE_VIEW_ID, pv.pv_id
4259
    FROM release_content rc,
4260
        package_versions pv,
4261
         package_versions opv
4262
   WHERE rc.pv_id = pv.pv_id
4263
     AND opv.pkg_id = pv.pkg_id
4264
     AND NVL(opv.v_ext, '|LINK_A_NULL|') = NVL(pv.v_ext, '|LINK_A_NULL|')
4265
     AND opv.pv_id = nPv_id
4266
     AND rtag_id IN ( SELECT *
4267
                     FROM THE (
4268
                      SELECT CAST( IN_LIST_NUMBER( sSyncRtagsInList ) AS RELMGR_NUMBER_TAB_t )
4269
                      FROM dual
4270
            )
4271
        );
4272
    sync_rtags_rec sync_rtags_cur%ROWTYPE;
4273
 
4274
BEGIN
4275
 
4276
 OPEN sync_rtags_cur;
4277
 FETCH sync_rtags_cur INTO sync_rtags_rec;
4278
 
4279
 WHILE sync_rtags_cur%FOUND
4280
 LOOP
4281
  DELETE FROM RELEASE_CONTENT
4282
   WHERE rtag_id = sync_rtags_rec.rtag_id
4283
        AND pv_id = sync_rtags_rec.pv_id;
4284
 
4285
  INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )
4286
         VALUES ( sync_rtags_rec.rtag_id,
4287
              nPv_id,
4288
      sync_rtags_rec.BASE_VIEW_ID,
4289
               Ora_Sysdate,
4290
               nUser_id,
4291
 
4292
                );
4293
 
4294
--   UPDATE RELEASE_CONTENT
4295
--         SET pv_id = nPv_id,
4296
--             insert_stamp = Ora_Sysdate,
4297
--             insertor_id = nUser_id
4298
--       WHERE rtag_id = sync_rtags_rec.rtag_id
4299
--         AND pv_id = sync_rtags_rec.pv_id;
4300
 
4301
  FETCH sync_rtags_cur INTO sync_rtags_rec;
4302
 END LOOP;
4303
 
4304
 CLOSE sync_rtags_cur;
4305
 
4306
END Sync_Projects_New_Version;
4307
/
4308
 
4309
CREATE OR REPLACE PROCEDURE Update_Package_Dependency ( NNpv_id IN NUMBER,
4310
                                                        SSdep_name IN PACKAGES.pkg_name%TYPE,
4311
                                                        SSdep_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
4312
                                                        CCbuild_type IN PACKAGE_DEPENDENCIES.build_type%TYPE,
4313
                                                        NNuser_id IN NUMBER,
4314
                                                        NNdelete_old_dependency IN NUMBER
4315
                                                       ) IS
4316
/* ---------------------------------------------------------------------------
4317
    Version: 3.3
4318
   --------------------------------------------------------------------------- */
4319
 
4320
    retPV_ID NUMBER;
4321
    SSV_EXT PACKAGE_VERSIONS.v_ext%TYPE;
4322
 DepIsPatch PACKAGE_VERSIONS.is_patch%TYPE;
4323
    PvIsPatch PACKAGE_VERSIONS.is_patch%TYPE;
4324
    NNpkg_id NUMBER;
4325
    NNdpkg_id NUMBER;
4326
 
4327
BEGIN
4328
    --- Seed database with package_name and version if required ---
4329
    Seed_Package_Names_Versions ( SSdep_name, SSdep_version, NNuser_id, retPV_ID );
4330
 
4331
    -- get v_ext,pkg_id of current dependency
4332
    SELECT v_ext, pkg_id, is_patch INTO SSV_EXT, NNdpkg_id, DepIsPatch
4333
      FROM PACKAGE_VERSIONS
4334
     WHERE pv_id = retPV_ID;
4335
 
4336
    -- get pkg_id of parent package
4337
    SELECT pkg_id, is_patch INTO NNpkg_id, PvIsPatch
4338
      FROM PACKAGE_VERSIONS
4339
     WHERE pv_id = NNpv_id;
4340
 
4341
 
4342
 IF ( (PvIsPatch IS NULL) AND (DepIsPatch IS NULL) ) OR
4343
     ( (PvIsPatch IS NOT NULL) )THEN
4344
 
4345
     IF NNdelete_old_dependency = 1 THEN
4346
         /* Used for CUSTOM dependency add/edit */
4347
 
4348
         --- Remove old dependency ---
4349
            IF (PvIsPatch IS NULL) THEN
4350
             -- Do it for Packages
4351
          DELETE FROM PACKAGE_DEPENDENCIES
4352
           WHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN
4353
              (
4354
              SELECT dep.*
4355
                FROM PACKAGE_DEPENDENCIES dep,
4356
                     PACKAGE_VERSIONS dpv,
4357
                     PACKAGE_VERSIONS pv
4358
               WHERE dep.dpv_id = dpv.pv_id
4359
                 AND dep.pv_id = NNpv_id
4360
                 AND pv.pv_id = retPV_ID
4361
                 AND dpv.pkg_id = pv.pkg_id
4362
                 AND NVL(dpv.v_ext, '|LINK_A_NULL|') = NVL(SSV_EXT, '|LINK_A_NULL|')
4363
              );
4364
            ELSE
4365
             -- Do it for Patches
4366
                DELETE FROM PACKAGE_DEPENDENCIES
4367
           WHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN
4368
              (
4369
              SELECT dep.*
4370
                FROM PACKAGE_DEPENDENCIES dep
4371
               WHERE dep.dpv_id = retPV_ID
4372
                 AND dep.pv_id = NNpv_id
4373
              );
4374
   END IF;
4375
 
4376
     END IF;
4377
 
4378
     /* NOTE: for JATS, ANTS dependency update, it is expected that all dependencies are removed. */
4379
 
4380
     --- Add new dependency ---
4381
     INSERT INTO PACKAGE_DEPENDENCIES ( pv_id, dpv_id, pkg_id, dpkg_id, build_type )
4382
     VALUES ( NNpv_id, retPV_ID, NNpkg_id, NNdpkg_id, CCbuild_type );
4383
 
4384
 END IF;
4385
 
4386
END Update_Package_Dependency;
4387
/
4388
 
4389
CREATE OR REPLACE FUNCTION 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;
4390
/
4391
 
4392
CREATE OR REPLACE PACKAGE PK_APP_UTILS IS
4393
/*
4394
------------------------------
4395
||  Last Modified:  S.Vukovic
4396
||  Modified Date:  26/Apr/2005
4397
||  Spec Version:   1.0
4398
------------------------------
4399
*/
4400
 
4401
 TYPE typeCur IS REF CURSOR;
4402
 
4403
    /*================================================================================================*/
4404
 
4405
 PROCEDURE GET_CURRENT_PARAMETERS ( ProjId IN VARCHAR2, RtagId IN VARCHAR2, records OUT typeCur);
4406
 
4407
 /*================================================================================================*/
4408
 
4409
END PK_APP_UTILS;
4410
/
4411
 
4412
CREATE OR REPLACE PROCEDURE Log_Project_Action ( nProjId IN NUMBER,
4413
             enumActionTypeName IN VARCHAR2,
4414
                                           nUserId IN NUMBER,
4415
             sAdditionalComments IN VARCHAR2 DEFAULT NULL,
4416
             nRtagId IN NUMBER  ) IS
4417
/* ---------------------------------------------------------------------------
4418
    Version: 3.0
4419
   --------------------------------------------------------------------------- */
4420
 
4421
    ActionTypeId NUMBER;
4422
 
4423
BEGIN
4424
 
4425
    -- Get Action Type FK
4426
    SELECT act.ACTTYPE_ID INTO ActionTypeId
4427
      FROM ACTION_TYPE act
4428
     WHERE act.NAME = enumActionTypeName;
4429
 
4430
 
4431
    INSERT INTO PROJECT_ACTION_LOG ( USER_ID, ACTION_DATETIME, PROJ_ID, DESCRIPTION, ACTTYPE_ID, RTAG_ID)
4432
    VALUES ( nUserId, ORA_SYSDATETIME, nProjId, sAdditionalComments, ActionTypeId, nRtagId);
4433
 
4434
 
4435
END Log_Project_Action;
4436
/
4437
 
4438
CREATE OR REPLACE PROCEDURE RELEASE_MANAGER_MAILOUT  (
4439
  sender      IN VARCHAR2,
4440
  recipient   IN VARCHAR2,
4441
  ccrecipient IN VARCHAR2,
4442
  subject     IN VARCHAR2,
4443
  message     IN VARCHAR2
4444
  ) IS
4445
 
4446
  crlf VARCHAR2(2):= UTL_TCP.CRLF;
4447
  connection utl_smtp.connection;
4448
  mailhost VARCHAR2(30) := 'aupera03.aupera.erggroup.com';
4449
  header VARCHAR2(1000);
4450
 
4451
BEGIN
4452
 
4453
  --
4454
  -- Start the connection.
4455
  --
4456
  connection := utl_smtp.open_connection(mailhost,25);
4457
 
4458
  header:= 'Date: '||TO_CHAR(SYSDATE,'dd Mon yy hh24:mi:ss')||crlf||
4459
     'From: '||sender||''||crlf||
4460
  'Subject: '||subject||crlf||
4461
       'To: '||recipient||crlf||
4462
       'CC: '||ccrecipient;
4463
 
4464
  --
4465
  -- Handshake with the SMTP server
4466
  --
4467
  utl_smtp.helo(connection, mailhost);
4468
  utl_smtp.mail(connection, sender);
4469
  utl_smtp.rcpt(connection, recipient);
4470
  utl_smtp.rcpt(connection, ccrecipient);
4471
  utl_smtp.open_data(connection);
4472
  --
4473
  -- Write the header
4474
  --
4475
  utl_smtp.write_data(connection, header);
4476
  --
4477
  -- The crlf is required to distinguish that what comes next is not simply part of the header..
4478
  --
4479
  utl_smtp.write_data(connection, crlf ||message);
4480
  utl_smtp.close_data(connection);
4481
  utl_smtp.quit(connection);
4482
 
4483
EXCEPTION
4484
  WHEN UTL_SMTP.INVALID_OPERATION THEN
4485
    dbms_output.put_line(' Invalid Operation in SMTP transaction.');
4486
  WHEN UTL_SMTP.TRANSIENT_ERROR THEN
4487
    dbms_output.put_line(' Temporary problems with sending email - try again later.');
4488
  WHEN UTL_SMTP.PERMANENT_ERROR THEN
4489
    dbms_output.put_line(' Errors in code for SMTP transaction.');
4490
 
4491
END RELEASE_MANAGER_MAILOUT;
4492
/
4493
 
4494
CREATE OR REPLACE FUNCTION IN_LIST_VARCHAR2 ( sInList IN VARCHAR2, cSeparator IN VARCHAR2 ) RETURN RELMGR_VARCHAR2_TAB_t IS
4495
 
4496
/* ---------------------------------------------------------------------------
4497
    Version: 3.1
4498
   --------------------------------------------------------------------------- */
4499
 
4500
    cItemCollection    RELMGR_VARCHAR2_TAB_t := RELMGR_VARCHAR2_TAB_t();
4501
 pos       NUMBER;
4502
 in_list      VARCHAR2(4000) := sInList || cSeparator;
4503
 val       VARCHAR2(4000);
4504
 
4505
BEGIN
4506
 
4507
 IF NOT sInList IS NULL
4508
 THEN
4509
  LOOP
4510
         EXIT WHEN in_list IS NULL;
4511
         pos := INSTR ( in_list, cSeparator );
4512
   val := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
4513
 
4514
   IF (NOT val IS NULL) THEN
4515
          cItemCollection.extend;
4516
          cItemCollection(cItemCollection.count) := val;
4517
   END IF;
4518
 
4519
         in_list := SUBSTR ( in_list, pos+1 );
4520
  END LOOP;
4521
 END IF;
4522
 
4523
 RETURN cItemCollection;
4524
END IN_LIST_VARCHAR2;
4525
/
4526
 
4527
CREATE OR REPLACE PROCEDURE New_Package_Name ( SSpkg_name IN PACKAGES.pkg_name%TYPE,
4528
                                               retPKG_ID OUT NUMBER ) IS
4529
/* ---------------------------------------------------------------------------
4530
    Version: 3.0.0
4531
   --------------------------------------------------------------------------- */
4532
 
4533
    CURSOR packages_cur IS
4534
        SELECT pkg.pkg_id
4535
          FROM packages pkg
4536
         WHERE pkg.pkg_name = SSpkg_name;
4537
    packages_rec packages_cur%ROWTYPE;
4538
 
4539
 
4540
BEGIN
4541
 
4542
    /* ---------------------------------------------------- */
4543
    /* Find if package name exists                          */
4544
    /* ---------------------------------------------------- */
4545
 
4546
    OPEN packages_cur;
4547
    FETCH packages_cur INTO packages_rec;
4548
 
4549
    IF packages_cur%NOTFOUND
4550
    THEN
4551
        -- Create new pkg_name --
4552
        SELECT SEQ_PKG_ID.nextval INTO retPKG_ID FROM DUAL;
4553
 
4554
        INSERT INTO packages ( pkg_id, pkg_name )
4555
        VALUES ( retPKG_ID, SSpkg_name );
4556
 
4557
    ELSE
4558
        retPKG_ID := packages_rec.pkg_id;
4559
 
4560
    END IF;
4561
 
4562
 
4563
    CLOSE packages_cur;
4564
 
4565
END New_Package_Name;
4566
/
4567
 
4568
CREATE OR REPLACE PROCEDURE UPDATE_PROCESSES
4569
IS
4570
 
4571
proc_id NUMBER;
4572
/******************************************************************************
4573
   NAME:       DELETE_DO_NOT_RIPPLE
4574
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
4575
               IS RELEASED
4576
 
4577
   REVISIONS:
4578
   Ver        Date        Author           Description
4579
   ---------  ----------  ---------------  ------------------------------------
4580
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
4581
 
4582
   NOTES:
4583
 
4584
   Automatically available Auto Replace Keywords:
4585
      Object Name:     DELETE_DO_NOT_RIPPLE
4586
      Sysdate:         21/04/2006
4587
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
4588
      Username:         (set in TOAD Options, Procedure Editor)
4589
      Table Name:       (set in the "New PL/SQL Object" dialog)
4590
 
4591
******************************************************************************/
4592
   CURSOR ripple_cur
4593
   IS
4594
      select proc_id,  proc_name, run_as, pkg_owner, is_interface from processes;
4595
 
4596
   ripple_rec   ripple_cur%ROWTYPE;
4597
BEGIN
4598
   OPEN ripple_cur;
4599
 
4600
   FETCH ripple_cur
4601
    INTO ripple_rec;
4602
 
4603
   WHILE ripple_cur%FOUND
4604
   LOOP
4605
 
4606
 
4607
update deployment_manager.processes_config 
4608
set proc_id = ripple_rec.proc_id
4609
where pkg_health_tag = ripple_rec.proc_name
4610
and cmd_interface IS NULL
4611
and pkg_owner IS NULL
4612
and is_interface IS NULL; 
4613
 
4614
 
4615
      FETCH ripple_cur
4616
       INTO ripple_rec;
4617
   END LOOP;
4618
END UPDATE_PROCESSES;
4619
/
4620
 
4621
CREATE OR REPLACE PROCEDURE Build_Tree ( nRtag_id IN NUMBER,
4622
                     retSessionNum OUT NUMBER ) IS
4623
 
4624
/* ---------------------------------------------------------------------------
4625
    Version: 3.0.0
4626
   --------------------------------------------------------------------------- */
4627
    rowCnt    NUMBER := 0;      -- Iterations counter
4628
    iteration   NUMBER := 1;                  -- Maximum number of iterations allowed.
4629
    maxIterations  NUMBER := 50;          -- This will prevent infinite loops if cyrcular dependencies are found
4630
 UP_THE_TREE  CONSTANT NUMBER DEFAULT 1;
4631
 DOWN_THE_TREE  CONSTANT NUMBER DEFAULT -1;
4632
    sessionNum   NUMBER;
4633
 levelNum  NUMBER;
4634
 
4635
BEGIN
4636
    SELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;
4637
 
4638
 /*
4639
 ||    Start UP THE TREE
4640
 */
4641
 
4642
 
4643
 /* Packages with no dependencies */    
4644
    INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
4645
  SELECT sessionNum AS SESSION_NUM,
4646
      iteration AS LEVEL_NUM,
4647
      UP_THE_TREE AS DIRECTION,
4648
      rc.pv_id, pv.pkg_id, pv.v_ext
4649
    FROM release_content rc,
4650
        package_versions pv
4651
   WHERE rc.rtag_id = nRtag_id
4652
     AND rc.pv_id = pv.pv_id
4653
   MINUS
4654
  SELECT sessionNum AS SESSION_NUM, 
4655
      iteration AS LEVEL_NUM,
4656
      UP_THE_TREE AS DIRECTION,
4657
      dep.pv_id, pv.pkg_id, pv.v_ext
4658
    FROM package_dependencies dep,
4659
        package_versions pv
4660
   WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtag_id )
4661
     AND dep.pv_id = pv.pv_id;
4662
 
4663
 
4664
 /* Browse UP the build tree */    
4665
 iteration := iteration + 1;
4666
    LOOP
4667
 
4668
  INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
4669
   SELECT DISTINCT 
4670
          sessionNum AS SESSION_NUM,
4671
          iteration AS LEVEL_NUM,
4672
       UP_THE_TREE AS DIRECTION, 
4673
       rdep.pv_id, rdep.pkg_id, rdep.v_ext
4674
     FROM (  
4675
           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
4676
             FROM package_dependencies dep,
4677
                  release_content rc,
4678
         package_versions pv,
4679
         package_versions dpv
4680
            WHERE dep.pv_id = rc.pv_id
4681
              AND rc.rtag_id = nRtag_id
4682
        AND dep.pv_id = pv.pv_id
4683
        AND dep.dpv_id = dpv.pv_id
4684
     ) rdep,
4685
     temp_tree_browse ttb
4686
    WHERE rdep.dpkg_id  = ttb.pkg_id
4687
      AND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext,'|LINK_A_NULL|')
4688
      AND ttb.SESSION_NUM = sessionNum
4689
      AND ttb.LEVEL_NUM = iteration - 1 
4690
   MINUS
4691
   /* Packages with all depencencies NOT matched */  
4692
   SELECT DISTINCT 
4693
          sessionNum AS SESSION_NUM,
4694
          iteration AS LEVEL_NUM, 
4695
       UP_THE_TREE AS DIRECTION,
4696
       rdep.pv_id, rdep.pkg_id, rdep.v_ext
4697
     FROM (  
4698
           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
4699
             FROM package_dependencies dep,
4700
                  release_content rc,
4701
         package_versions pv,
4702
         package_versions dpv
4703
            WHERE dep.pv_id = rc.pv_id
4704
              AND rc.rtag_id = nRtag_id
4705
        AND dep.pv_id = pv.pv_id
4706
        AND dep.dpv_id = dpv.pv_id
4707
     ) rdep,
4708
     (
4709
      SELECT tb.*
4710
        FROM temp_tree_browse tb
4711
       WHERE tb.SESSION_NUM = sessionNum
4712
     ) ttb
4713
    WHERE rdep.dpkg_id  = ttb.pkg_id (+)
4714
      AND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext (+),'|LINK_A_NULL|')
4715
      AND ttb.SESSION_NUM IS NULL;
4716
 
4717
  rowCnt := SQL%ROWCOUNT;
4718
  IF rowCnt > 0 THEN
4719
           iteration := iteration + 1;
4720
  END IF;
4721
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
4722
    END LOOP;
4723
 
4724
 /*---------------------------------------------------------------------------------------------------------------------*/
4725
 
4726
 /*     Check for unresolved dependencies
4727
 ||  
4728
 */
4729
 /* UNRESOLVED */
4730
  SELECT COUNT(*) INTO rowCnt
4731
    FROM (
4732
    SELECT pv.pv_id, pv.pkg_id, pv.v_ext
4733
     FROM release_content rc,
4734
         package_versions pv
4735
    WHERE rc.rtag_id = nRtag_id
4736
      AND rc.pv_id = pv.pv_id    
4737
   MINUS
4738
   SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
4739
     FROM temp_tree_browse ttb
4740
    WHERE ttb.session_num = sessionNum
4741
   );
4742
 
4743
 
4744
 
4745
  IF rowCnt > 0 
4746
  THEN
4747
    /*     Circular dependencies detected.
4748
   ||     Try to resolve build order from the top now.
4749
   ||  Start DOWN THE TREE
4750
   */
4751
 
4752
  iteration := 0; 
4753
   /* Top Level packages */ 
4754
  INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )    
4755
   SELECT sessionNum AS SESSION_NUM,
4756
          iteration AS LEVEL_NUM,
4757
       DOWN_THE_TREE AS DIRECTION,
4758
       pv.pv_id, pv.pkg_id, pv.v_ext
4759
     FROM (     
4760
     /* Packages no one depends on ( Top level packages )*/
4761
     ( 
4762
     /* All parents*/ 
4763
     SELECT pv.pkg_id, pv.v_ext
4764
             FROM package_dependencies dep,
4765
                  release_content rc,
4766
         package_versions pv
4767
            WHERE dep.pv_id = rc.pv_id
4768
              AND rc.rtag_id = nRtag_id
4769
        AND dep.pv_id = pv.pv_id
4770
      MINUS
4771
      /* All children */
4772
     SELECT dpv.pkg_id, dpv.v_ext
4773
             FROM package_dependencies dep,
4774
                  release_content rc,
4775
         package_versions dpv
4776
            WHERE dep.pv_id = rc.pv_id
4777
              AND rc.rtag_id = nRtag_id
4778
        AND dep.dpv_id = dpv.pv_id
4779
      ) 
4780
      MINUS
4781
     /* Packages with resolved dependencies from UP THE TREE */ 
4782
     SELECT ttb.pkg_id, ttb.v_ext
4783
       FROM temp_tree_browse ttb
4784
      WHERE ttb.session_num = sessionNum
4785
      ) tpkg,
4786
      package_versions pv,
4787
      release_content rc
4788
   WHERE rc.rtag_id = nRtag_id
4789
     AND rc.pv_id = pv.pv_id
4790
     AND tpkg.pkg_id = pv.pkg_id
4791
     AND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');
4792
 
4793
 
4794
   /* Keep taking packages which no one depende on */     
4795
   iteration := iteration - 1;  
4796
   LOOP   
4797
      INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
4798
     SELECT sessionNum AS SESSION_NUM,
4799
            iteration AS LEVEL_NUM,
4800
            DOWN_THE_TREE AS DIRECTION,
4801
            pv.pv_id, pv.pkg_id, pv.v_ext
4802
       FROM (     
4803
       /* All Unresolved */
4804
       (
4805
       SELECT pv.pkg_id, pv.v_ext
4806
         FROM release_content rc,
4807
             package_versions pv
4808
        WHERE rc.rtag_id = nRtag_id
4809
          AND rc.pv_id = pv.pv_id    
4810
       MINUS
4811
       SELECT ttb.pkg_id, ttb.v_ext
4812
         FROM temp_tree_browse ttb
4813
        WHERE ttb.session_num = sessionNum
4814
       )
4815
        MINUS
4816
       (  
4817
        /* Children of Unresolved */  
4818
       SELECT dpv.pkg_id, dpv.V_EXT
4819
         FROM (
4820
         SELECT pv.pv_id, pv.pkg_id, pv.v_ext
4821
           FROM release_content rc,
4822
               package_versions pv
4823
          WHERE rc.rtag_id = nRtag_id
4824
            AND rc.pv_id = pv.pv_id    
4825
         MINUS
4826
         SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
4827
           FROM temp_tree_browse ttb
4828
          WHERE ttb.session_num = sessionNum
4829
           ) unr,
4830
           package_dependencies dep,
4831
           package_versions dpv
4832
        WHERE unr.pv_id = dep.pv_id
4833
          AND dep.dpv_id = dpv.pv_id
4834
        )  
4835
        ) tpkg,
4836
        package_versions pv,
4837
        release_content rc
4838
     WHERE rc.rtag_id = nRtag_id
4839
       AND rc.pv_id = pv.pv_id
4840
       AND tpkg.pkg_id = pv.pkg_id
4841
       AND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');
4842
 
4843
            rowCnt := SQL%ROWCOUNT;
4844
         IF rowCnt > 0 THEN
4845
            iteration := iteration - 1;
4846
   END IF;
4847
            EXIT WHEN (rowCnt < 1);
4848
      END LOOP;
4849
 
4850
  END IF;
4851
 
4852
 
4853
 /*---------------------------------------------------------------------------------------------------------------------*/
4854
 
4855
 /* 
4856
 ||   Save results from temp table
4857
 */ 
4858
 /* Clean up build_order table */
4859
 DELETE FROM BUILD_ORDER WHERE rtag_id = nRtag_id;
4860
 
4861
 /* Save UP THE TREE */
4862
 INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )
4863
  SELECT nRtag_id AS rtag_id,
4864
      ttb.level_num AS step_num, 
4865
      ttb.PV_ID
4866
    FROM temp_tree_browse ttb
4867
   WHERE ttb.session_num = sessionNum
4868
     AND ttb.direction = UP_THE_TREE; 
4869
 
4870
 /*Get last step_num */
4871
 SELECT MAX(ttb.level_num) + 1 INTO levelNum
4872
 FROM temp_tree_browse ttb WHERE ttb.session_num = sessionNum AND ttb.DIRECTION = UP_THE_TREE;
4873
 
4874
 /* UNRESOLVED */
4875
  SELECT COUNT(*) INTO rowCnt
4876
    FROM (
4877
    SELECT pv.pv_id, pv.pkg_id, pv.v_ext
4878
     FROM release_content rc,
4879
         package_versions pv
4880
    WHERE rc.rtag_id = nRtag_id
4881
      AND rc.pv_id = pv.pv_id    
4882
   MINUS
4883
   SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
4884
     FROM temp_tree_browse ttb
4885
    WHERE ttb.session_num = sessionNum
4886
   );
4887
 
4888
 
4889
 IF rowCnt > 0
4890
 THEN
4891
  /* Save unresolved packages */
4892
   INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID, UNRESOLVED )
4893
      SELECT  nRtag_id AS rtag_id,
4894
        levelNum AS step_num, 
4895
        upv.PV_ID,
4896
     'Y' AS UNRESOLVED
4897
      FROM (
4898
      SELECT pv.pv_id, pv.pkg_id, pv.v_ext
4899
       FROM release_content rc,
4900
           package_versions pv
4901
      WHERE rc.rtag_id = nRtag_id
4902
        AND rc.pv_id = pv.pv_id    
4903
     MINUS
4904
     SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
4905
       FROM temp_tree_browse ttb
4906
      WHERE ttb.session_num = sessionNum
4907
     ) upv;
4908
 END IF; 
4909
 
4910
 /* Save DOWN THE TREE */
4911
 levelNum := 1000;
4912
 INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )
4913
  SELECT nRtag_id AS rtag_id,
4914
      levelNum + ttb.level_num  AS step_num, 
4915
      ttb.PV_ID
4916
    FROM temp_tree_browse ttb
4917
   WHERE ttb.session_num = sessionNum
4918
     AND ttb.direction = DOWN_THE_TREE;
4919
 
4920
 
4921
 /*---------------------------------------------------------------------------------------------------------------------*/
4922
 
4923
 /* Clean up temp table */
4924
 DELETE FROM TEMP_TREE_BROWSE WHERE session_num = sessionNum;
4925
 
4926
 retSessionNum := sessionNum;
4927
END Build_Tree;
4928
/
4929
 
4930
CREATE OR REPLACE PACKAGE PK_BUILDAPI IS
4931
/*
4932
------------------------------
4933
||  Last Modified:  S.Vukovic
4934
||  Modified Date:  30/Mar/2005
4935
||  Spec Version:   1.0
4936
------------------------------
4937
*/
4938
 
4939
 /*================================================================================================*/
4940
 PROCEDURE Add_Product_Component ( nPvId IN NUMBER,
4941
          sOsName IN VARCHAR2,
4942
          sOrigFilePath IN VARCHAR2,
4943
          sFileName IN VARCHAR2,
4944
          sDestFilePath IN VARCHAR2,
4945
          nByteSize IN NUMBER,
4946
          sCRCcksum IN VARCHAR2 );
4947
 
4948
 PROCEDURE Remove_All_Product_Components ( nPvId IN NUMBER, sOsName IN VARCHAR2 );
4949
    /*================================================================================================*/
4950
 FUNCTION Get_OsId ( sOsName IN VARCHAR2 ) RETURN NUMBER;
4951
 /*================================================================================================*/
4952
 
4953
END PK_BUILDAPI;
4954
/
4955
 
4956
CREATE OR REPLACE PROCEDURE Remove_Patch ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,
4957
             nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,
4958
                                           nUserId IN NUMBER ) IS
4959
/* ---------------------------------------------------------------------------
4960
    Version: 4.0
4961
   --------------------------------------------------------------------------- */
4962
 
4963
PatchVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
4964
 
4965
CURSOR curPatch IS
4966
 SELECT pp.PV_ID,
4967
     pp.PATCH_ID,
4968
        ROWNUM AS NEW_INSTALL_ORDER
4969
   FROM PACKAGE_PATCHES pp
4970
  WHERE pp.PV_ID = nPvId
4971
 ORDER BY pp.INSTALL_ORDER;
4972
recPatch curPatch%ROWTYPE;
4973
 
4974
BEGIN
4975
 
4976
  -- Delete Patch
4977
     DELETE
4978
       FROM PACKAGE_PATCHES pp
4979
      WHERE pp.PV_ID = nPvId
4980
        AND pp.PATCH_ID = nPatchId;
4981
 
4982
 
4983
 -- Redo Install Order
4984
    OPEN curPatch;
4985
 FETCH curPatch INTO recPatch;
4986
 
4987
 WHILE curPatch%FOUND
4988
 LOOP
4989
 
4990
  UPDATE PACKAGE_PATCHES pp SET
4991
   pp.INSTALL_ORDER = recPatch.NEW_INSTALL_ORDER
4992
  WHERE pp.PV_ID = nPvId
4993
    AND pp.PATCH_ID = recPatch.PATCH_ID;
4994
 
4995
  FETCH curPatch INTO recPatch;
4996
 END LOOP;
4997
 
4998
 CLOSE curPatch;
4999
 
5000
 
5001
 
5002
 
5003
    /* LOG ACTION */
5004
    SELECT pv.PKG_VERSION INTO PatchVersion
5005
      FROM PACKAGE_VERSIONS pv
5006
     WHERE pv.PV_ID = nPatchId;
5007
 
5008
    Log_Action ( nPvId, 'patch_remove', nUserId,
5009
           'Version: '|| PatchVersion );
5010
 
5011
END Remove_Patch;
5012
/
5013
 
5014
CREATE OR REPLACE TYPE "RELMGR_NUMBER_TAB_T" as TABLE of NUMBER
5015
/
5016
 
5017
CREATE OR REPLACE PROCEDURE Add_Component ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE,
5018
                    sFileName IN RELEASE_COMPONENTS.FILE_NAME%TYPE,
5019
           sFilePath IN RELEASE_COMPONENTS.FILE_PATH%TYPE DEFAULT NULL,
5020
           nByteSize IN RELEASE_COMPONENTS.BYTE_SIZE%TYPE,
5021
           sCRCcksum IN RELEASE_COMPONENTS.CRC_CKSUM%TYPE DEFAULT NULL,
5022
           sCRCmodcrc IN RELEASE_COMPONENTS.CRC_MODCRC%TYPE DEFAULT NULL
5023
                                           ) IS
5024
/* ---------------------------------------------------------------------------
5025
    Version: 3.0.0
5026
   --------------------------------------------------------------------------- */
5027
 
5028
 
5029
BEGIN
5030
 
5031
  --- Insert into RELEASE_COMPONENTS
5032
  INSERT INTO RELEASE_COMPONENTS ( PV_ID, FILE_NAME, FILE_PATH, BYTE_SIZE, CRC_CKSUM, CRC_MODCRC )
5033
  VALUES ( nPvId, sFileName, sFilePath, nByteSize, sCRCcksum, sCRCmodcrc  );
5034
 
5035
 
5036
 
5037
 
5038
END Add_Component;
5039
/
5040
 
5041
CREATE OR REPLACE FUNCTION ORA_SYSDATETIME
5042
RETURN DATE
5043
IS
5044
/* ---------------------------------------------------------------------------
5045
    Version: 3.0.0
5046
   --------------------------------------------------------------------------- */
5047
BEGIN
5048
 
5049
    RETURN TO_DATE( TO_CHAR( SYSDATE,'DD-MON-YYYY HH24:MI:SS' ),'DD-MON-YYYY HH24:MI:SS' );
5050
END ORA_SYSDATETIME;
5051
/
5052
 
5053
CREATE OR REPLACE PROCEDURE New_Additional_Note ( pnPv_id IN NUMBER,
5054
                                                  psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,
5055
                                                  psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,
5056
                                                  pnUser_id IN NUMBER,
5057
                                                  outErrCode OUT NUMBER
5058
                                                 ) IS
5059
/* ---------------------------------------------------------------------------
5060
    Version: 3.0.0
5061
   --------------------------------------------------------------------------- */
5062
 
5063
    newID NUMBER;
5064
 
5065
 CURSOR an_duplicate_cur IS
5066
        SELECT note_id
5067
          FROM ADDITIONAL_NOTES
5068
         WHERE pv_id = pnPv_id
5069
           AND note_title = psNote_title;
5070
    an_duplicate_rec an_duplicate_cur%ROWTYPE;
5071
 
5072
BEGIN
5073
 outErrCode := -1;  -- Set default return error code to ERROR state
5074
 
5075
 OPEN an_duplicate_cur;
5076
    FETCH an_duplicate_cur INTO an_duplicate_rec;
5077
 
5078
    IF an_duplicate_cur%NOTFOUND
5079
    THEN
5080
  /* No duplicate titles */
5081
  -- Get new ID --
5082
     SELECT SEQ_ADDITIONAL_NOTES.NEXTVAL INTO newID FROM DUAL;
5083
 
5084
  --- Add Additional Note ---
5085
     INSERT INTO ADDITIONAL_NOTES ( note_id, pv_id, note_title, note_body, mod_date, mod_user  )
5086
     VALUES (  newID, pnPv_id, psNote_title, psNote_body, Ora_Sysdate, pnUser_id );
5087
  outErrCode := 0;  -- Set return to SUCCESS
5088
 END IF;
5089
 
5090
 CLOSE an_duplicate_cur;
5091
END New_Additional_Note;
5092
/
5093
 
5094
CREATE OR REPLACE PROCEDURE REMOVE_PROJECT_VIEW_OWNER (nProjId IN NUMBER,
5095
                       nViewId IN NUMBER,
5096
                sUserIdList IN VARCHAR2,
5097
                nUserId IN NUMBER ) IS
5098
 
5099
GroupId NUMBER;               
5100
 
5101
 
5102
 
5103
/******************************************************************************
5104
   NAME:       UPDATE_VIEW
5105
   PURPOSE:    
5106
 
5107
   REVISIONS:
5108
   Ver        Date        Author             Description
5109
   ---------  ----------  ---------------  ------------------------------------
5110
   1.0        10/04/2006     Rupesh Solanki     1. Created this procedure.
5111
 
5112
   NOTES:
5113
 
5114
   Automatically available Auto Replace Keywords:
5115
      Object Name:     UPDATE_VIEW
5116
      Sysdate:         10/04/2006
5117
      Date and Time:   10/04/2006, 1:55:19 PM, and 10/04/2006 1:55:19 PM
5118
      Username:         (set in TOAD Options, Procedure Editor)
5119
      Table Name:       (set in the "New PL/SQL Object" dialog)
5120
 
5121
******************************************************************************/
5122
 
5123
BEGIN
5124
  SELECT GROUP_EMAIL_ID into GroupId
5125
  FROM AUTOBUILD_FAILURE
5126
  WHERE PROJ_ID = nProjId
5127
  AND VIEW_ID = nViewId;
5128
 
5129
  DELETE FROM MEMBERS_GROUP
5130
  WHERE GROUP_EMAIL_ID = GroupId
5131
  AND USER_ID IN (
5132
  SELECT * FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual ) 
5133
  );
5134
 
5135
 
5136
 
5137
END REMOVE_PROJECT_VIEW_OWNER;
5138
/
5139
 
5140
CREATE OR REPLACE PROCEDURE New_Patch ( SSpatch_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
5141
                    NNparent_id IN NUMBER,
5142
                                        sPatchIdList IN VARCHAR2,
5143
          NNuser_id IN NUMBER ) IS
5144
/* ---------------------------------------------------------------------------
5145
    Version: 3.5
5146
   --------------------------------------------------------------------------- */
5147
 
5148
    patchPv_id    NUMBER;
5149
 parPkg_id   NUMBER;
5150
    LastInstallOrder NUMBER;
5151
    isPatchDlocked PACKAGE_VERSIONS.DLOCKED%TYPE;
5152
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
5153
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
5154
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
5155
 oPatchDepCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
5156
 
5157
 CURSOR parent_cur IS
5158
        SELECT pv.*, pkg.pkg_name
5159
          FROM package_versions pv,
5160
         packages pkg
5161
         WHERE pv.pv_id = NNparent_id
5162
     AND pv.pkg_id = pkg.pkg_id;
5163
    parent_rec parent_cur%ROWTYPE;
5164
 
5165
    CURSOR patch_cur IS
5166
        SELECT pv.*, pg.pkg_name
5167
          FROM package_versions pv,
5168
         packages pg
5169
         WHERE pv.pkg_id = parPkg_id
5170
     AND pv.pkg_version = SSpatch_version
5171
     AND pv.pkg_id = pg.pkg_id;
5172
    patch_rec patch_cur%ROWTYPE;
5173
 
5174
 CURSOR releases_cur IS
5175
        SELECT rc.pv_id
5176
    FROM release_content rc
5177
   WHERE rc.pv_id = patch_rec.pv_id;
5178
    releases_rec releases_cur%ROWTYPE;
5179
 
5180
 
5181
BEGIN
5182
 
5183
 -- Get Last Install Order
5184
    SELECT Count(*) INTO LastInstallOrder
5185
   FROM PACKAGE_PATCHES pp
5186
  WHERE pp.PV_ID = NNparent_id;
5187
 
5188
 
5189
    -- Get parent details
5190
 OPEN parent_cur;
5191
    FETCH parent_cur INTO parent_rec;
5192
 parPkg_id := parent_rec.pkg_id;
5193
 
5194
 
5195
 -- Find if patch exists in database
5196
    OPEN patch_cur;
5197
    FETCH patch_cur INTO patch_rec;
5198
 
5199
 
5200
    -- Parent must be official
5201
    IF parent_rec.dlocked = 'Y' THEN
5202
 
5203
     IF patch_cur%NOTFOUND
5204
     THEN
5205
         isPatchDlocked := 'N';
5206
 
5207
         -- Create new patch version --
5208
         SELECT SEQ_PV_ID.nextval INTO patchPv_id FROM DUAL;
5209
 
5210
 
5211
         Split_version ( SSpatch_version, SSV_MM, SSV_NMM, SSV_EXT );
5212
 
5213
         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 )
5214
       VALUES (
5215
         patchPv_id,
5216
                        parPkg_id,
5217
                        SSpatch_version,
5218
                        isPatchDlocked,
5219
                        ORA_SYSDATE,
5220
                        NNuser_id,
5221
                        ORA_SYSDATETIME,
5222
                        NNuser_id,
5223
                        SSV_MM,
5224
                        SSV_NMM,
5225
                        SSV_EXT,
5226
                        parent_rec.src_path,
5227
                        'This is a patch to ' || parent_rec.pkg_name || ' ' || parent_rec.pkg_version,
5228
                        NNuser_id,
5229
         'Y',
5230
                           patchPv_id
5231
         );
5232
 
5233
   INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )
5234
          ( SELECT NNparent_id AS pv_id,
5235
                pv.pv_id AS patch_id,
5236
                         LastInstallOrder + 1 AS INSTALL_ORDER
5237
           FROM package_versions pv
5238
       WHERE pv.pv_id = patchPv_id
5239
         AND pv.is_patch = 'Y' );
5240
 
5241
         /* LOG ACTION */
5242
            Log_Action ( patchPv_id, 'new_version', NNuser_id,
5243
                'Patch version created: '|| SSpatch_version );
5244
 
5245
         Log_Action ( NNparent_id, 'patch_add', NNuser_id,
5246
                'New patch created and attached: '|| SSpatch_version );
5247
 
5248
 
5249
     ELSE
5250
 
5251
      patchPv_id := patch_rec.pv_id;
5252
      isPatchDlocked := patch_rec.dlocked;
5253
 
5254
   -- Find if pv_id exists in release content (i.e. it cannot be a patch)
5255
      OPEN releases_cur;
5256
      FETCH releases_cur INTO releases_rec;
5257
 
5258
   IF releases_cur%NOTFOUND
5259
      THEN
5260
    -- This pv_id is trully a patch, hence add Y to column IS_PATCH
5261
    UPDATE package_versions SET
5262
        is_patch = 'Y'
5263
        WHERE pv_id = patchPv_id;
5264
 
5265
    INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )
5266
           ( SELECT NNparent_id AS pv_id,
5267
                 pv.pv_id AS patch_id,
5268
                             LastInstallOrder + 1 AS INSTALL_ORDER
5269
            FROM package_versions pv
5270
        WHERE pv.pv_id = patchPv_id
5271
          AND pv.is_patch = 'Y' );
5272
 
5273
   END IF;
5274
 
5275
   CLOSE releases_cur;
5276
 
5277
            /* LOG ACTION */
5278
         Log_Action ( NNparent_id, 'patch_add', NNuser_id,
5279
                'Patch version was found and attached: '|| SSpatch_version );
5280
 
5281
     END IF;
5282
 
5283
 
5284
 
5285
 
5286
    END IF;
5287
 
5288
 
5289
 
5290
    /* Create Patch Dependencies */
5291
    oPatchDepCollector := IN_LIST_NUMBER ( sPatchIdList );
5292
 
5293
 
5294
    -- Make sure patch is unofficial before altering its dependencies
5295
    IF (oPatchDepCollector.COUNT > 0) AND (isPatchDlocked = 'N') THEN
5296
     -- Delete Existing Dependencies
5297
        DELETE
5298
          FROM PACKAGE_DEPENDENCIES dep
5299
         WHERE dep.PV_ID = patchPv_id;
5300
 
5301
 
5302
        -- Insert new dependencies
5303
        INSERT INTO PACKAGE_DEPENDENCIES ( PV_ID, DPV_ID, PKG_ID, DPKG_ID, BUILD_TYPE )
5304
        SELECT patchPv_id AS PV_ID,
5305
            pv.PV_ID AS DPV_ID,
5306
               parPkg_id AS PKG_ID,
5307
               pv.PKG_ID AS DPKG_ID,
5308
               'L' AS BUILD_TYPE
5309
          FROM PACKAGE_VERSIONS pv
5310
         WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPatchDepCollector AS RELMGR_NUMBER_TAB_t ) ) );
5311
 
5312
 
5313
    END IF;
5314
 
5315
 
5316
    CLOSE parent_cur;
5317
    CLOSE patch_cur;
5318
END New_Patch;
5319
/
5320
 
5321
CREATE OR REPLACE PROCEDURE test
5322
IS
5323
 
5324
proc_id NUMBER;
5325
/******************************************************************************
5326
   NAME:       DELETE_DO_NOT_RIPPLE
5327
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
5328
               IS RELEASED
5329
 
5330
   REVISIONS:
5331
   Ver        Date        Author           Description
5332
   ---------  ----------  ---------------  ------------------------------------
5333
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
5334
 
5335
   NOTES:
5336
 
5337
   Automatically available Auto Replace Keywords:
5338
      Object Name:     DELETE_DO_NOT_RIPPLE
5339
      Sysdate:         21/04/2006
5340
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
5341
      Username:         (set in TOAD Options, Procedure Editor)
5342
      Table Name:       (set in the "New PL/SQL Object" dialog)
5343
 
5344
******************************************************************************/
5345
   CURSOR ripple_cur
5346
   IS
5347
      select distinct pkg_health_tag, cmd_interface, pkg_owner, is_interface from deployment_manager.processes_config;
5348
 
5349
   ripple_rec   ripple_cur%ROWTYPE;
5350
BEGIN
5351
   OPEN ripple_cur;
5352
 
5353
   FETCH ripple_cur
5354
    INTO ripple_rec;
5355
 
5356
   WHILE ripple_cur%FOUND
5357
   LOOP
5358
 
5359
   select deployment_manager.seq_proc_id.nextval into proc_id from dual;
5360
 
5361
insert into processes (PROC_ID, PROC_NAME, RUN_AS, PKG_OWNER, IS_INTERFACE) 
5362
values(proc_id, ripple_rec.pkg_health_tag, ripple_rec.cmd_interface, ripple_rec.pkg_owner, ripple_rec.is_interface);
5363
 
5364
      FETCH ripple_cur
5365
       INTO ripple_rec;
5366
   END LOOP;
5367
END test;
5368
/
5369
 
5370
CREATE OR REPLACE PROCEDURE Seed_Package_Names_Versions_Te ( SSpkg_name IN PACKAGES.pkg_name%TYPE,
5371
                                                          SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
5372
                                                          NNuser_id IN NUMBER,
5373
                                                          retPV_ID OUT NUMBER,
5374
                nCloneFromPvId IN NUMBER DEFAULT NULL ) IS
5375
/* ---------------------------------------------------------------------------
5376
    Version: 4.0
5377
   --------------------------------------------------------------------------- */
5378
 
5379
    parPkg_id   NUMBER;
5380
    parPv_id    NUMBER;
5381
    cloneFrom_pv_id NUMBER;
5382
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
5383
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
5384
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
5385
 VExt PACKAGE_VERSIONS.V_EXT%TYPE;
5386
 
5387
    CURSOR packages_cur IS
5388
        SELECT pkg_id FROM PACKAGES
5389
        WHERE pkg_name = SSpkg_name;
5390
    packages_rec packages_cur%ROWTYPE;
5391
 
5392
    CURSOR package_versions_cur IS
5393
        SELECT pv_id FROM PACKAGE_VERSIONS
5394
        WHERE pkg_id = parPkg_id
5395
        AND pkg_version = SSpkg_version;
5396
    package_versions_rec package_versions_cur%ROWTYPE;
5397
 
5398
    CURSOR clone_package_versions_cur IS
5399
        SELECT MAX(pv_id) AS pv_id
5400
          FROM PACKAGE_VERSIONS
5401
         WHERE pkg_id = parPkg_id
5402
           AND NVL(v_ext,'LINK_A_NULL') = NVL(SSV_EXT,'LINK_A_NULL');
5403
    clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
5404
 
5405
BEGIN
5406
    /* -------------------------------------------- */
5407
    /* Find if pkg_name exists and seed if required */
5408
    /* -------------------------------------------- */
5409
    OPEN packages_cur;
5410
    FETCH packages_cur INTO packages_rec;
5411
 
5412
    IF packages_cur%NOTFOUND
5413
    THEN
5414
        /* INSERT into packages table */
5415
        SELECT SEQ_PKG_ID.NEXTVAL INTO parPkg_id FROM DUAL;
5416
        INSERT INTO PACKAGES ( pkg_id, pkg_name ) VALUES ( parPkg_id, SSpkg_name );
5417
 
5418
    ELSE
5419
        parPkg_id := packages_rec.pkg_id;
5420
 
5421
    END IF;
5422
 
5423
    CLOSE packages_cur;
5424
 
5425
 
5426
 
5427
    /* ---------------------------------------------------- */
5428
    /* Find if package_version exists and seed if required  */
5429
    /* ---------------------------------------------------- */
5430
    OPEN package_versions_cur;
5431
    FETCH package_versions_cur INTO package_versions_rec;
5432
 
5433
    IF package_versions_cur%NOTFOUND
5434
    THEN
5435
        SELECT SEQ_PV_ID.NEXTVAL INTO parPv_id FROM DUAL;
5436
 
5437
        /* LOG ACTION */
5438
        Log_Action ( parPv_id, 'new_version', NNuser_id,
5439
            'New package version: '|| SSpkg_version );
5440
 
5441
        Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
5442
 
5443
        /* Find similar pkg_name + ext to clone from */
5444
        OPEN clone_package_versions_cur;
5445
        FETCH clone_package_versions_cur INTO clone_package_versions_rec;
5446
 
5447
 
5448
        IF NOT clone_package_versions_rec.pv_id IS NULL OR VExt <> SSV_EXT
5449
        THEN
5450
            /* CLONE details from similar version  OR  from nCloneFromPvId */
5451
   IF ( NOT nCloneFromPvId IS NULL) THEN
5452
             cloneFrom_pv_id := nCloneFromPvId;
5453
   ELSE
5454
    cloneFrom_pv_id := clone_package_versions_rec.pv_id;
5455
   END IF;
5456
 
5457
            -- Clone Package Version Details --
5458
            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,
5459
                                           src_path, pv_description, PV_OVERVIEW, LAST_PV_ID, owner_id, BUILD_TYPE )
5460
                SELECT parPv_id         AS pv_id,
5461
                       parPkg_id        AS pkg_id,
5462
                       SSpkg_version    AS pkg_version,
5463
                       'N'              AS dlocked,
5464
                       Ora_Sysdate      AS created_stamp,
5465
                       NNuser_id        AS creator_id,
5466
                       Ora_Sysdatetime  AS modified_stamp,
5467
                       NNuser_id        AS modifier_id,
5468
                       SSV_MM           AS V_MM,
5469
                       SSV_NMM          AS V_NMM,
5470
                       SSV_EXT          AS V_EXT,
5471
                       pv.src_path,
5472
                       pv.pv_description,
5473
                       pv.PV_OVERVIEW,
5474
                       cloneFrom_pv_id  AS LAST_PV_ID,
5475
                       pv.owner_id,
5476
        pv.BUILD_TYPE
5477
                  FROM PACKAGE_VERSIONS pv
5478
                 WHERE pv.pv_id = cloneFrom_pv_id;
5479
 
5480
            Basic_Clone ( cloneFrom_pv_id, parPv_id, NULL, NNuser_id, parPkg_id, 0 );
5481
 
5482
        ELSE
5483
            /* BRAND NEW version + ext */
5484
            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 )
5485
         VALUES (
5486
                    parPv_id,
5487
                    parPkg_id,
5488
                    SSpkg_version,
5489
                    'N',
5490
                    Ora_Sysdate,
5491
                    NNuser_id,
5492
                    Ora_Sysdatetime,
5493
                    NNuser_id,
5494
                    SSV_MM,
5495
                    SSV_NMM,
5496
                    SSV_EXT,
5497
                    NNuser_id,
5498
                    parPv_id,
5499
     'M'
5500
                   );
5501
 
5502
        END IF;
5503
 
5504
        CLOSE clone_package_versions_cur;
5505
        retPV_ID := parPv_id;
5506
 
5507
    ELSE
5508
        retPV_ID := package_versions_rec.pv_id;
5509
 
5510
    END IF;
5511
 
5512
    CLOSE package_versions_cur;
5513
 
5514
 
5515
 
5516
 
5517
END Seed_Package_Names_Versions_Te;
5518
/
5519
 
5520
CREATE OR REPLACE PROCEDURE Ignore_Dependency_Warnings ( nRtagId IN IGNORE_WARNINGS.RTAG_ID%TYPE,
5521
               nPvId IN IGNORE_WARNINGS.PV_ID%TYPE,
5522
                                                         sIgnoreIdList IN VARCHAR2,
5523
                                                         bDoPatchIgnore IN BOOLEAN DEFAULT FALSE,
5524
                                                         nUserId IN NUMBER DEFAULT NULL ) IS
5525
/* ---------------------------------------------------------------------------
5526
    Version: 5.0
5527
   --------------------------------------------------------------------------- */
5528
 
5529
oIgnoreIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
5530
ReleaseLocation VARCHAR2(4000);
5531
ActionTypeId NUMBER;
5532
 
5533
BEGIN
5534
 
5535
 
5536
    IF (NOT bDoPatchIgnore) THEN
5537
     /* Manual Ignore Warnings */
5538
        oIgnoreIdCollector := IN_LIST_NUMBER ( sIgnoreIdList );
5539
 
5540
 
5541
        /* Log Action */
5542
        -- Get Release Location
5543
        SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
5544
    FROM PROJECTS proj,
5545
        RELEASE_TAGS rt
5546
   WHERE rt.PROJ_ID = proj.PROJ_ID
5547
     AND rt.RTAG_ID = nRtagId;
5548
 
5549
        -- Get Action Type Id for IGNORE_ON
5550
        SELECT act.ACTTYPE_ID INTO ActionTypeId
5551
       FROM ACTION_TYPE act
5552
      WHERE act.NAME = 'ignore_on';
5553
 
5554
        -- Get Ignored (Current MINUS Old)
5555
        INSERT INTO ACTION_LOG ( USER_ID, ACTION_DATETIME, PV_ID, DESCRIPTION, ACTTYPE_ID )
5556
  SELECT nUserId, ORA_SYSDATETIME, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeId
5557
    FROM (
5558
        SELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_ID
5559
          FROM PACKAGE_VERSIONS pv
5560
         WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
5561
        MINUS
5562
        SELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_ID
5563
          FROM IGNORE_WARNINGS igw
5564
         WHERE igw.RTAG_ID = nRtagId
5565
           AND igw.PV_ID = nPvId
5566
         ) qry,
5567
         PACKAGE_VERSIONS pv,
5568
         PACKAGES pkg,
5569
         RELEASE_CONTENT rc,
5570
         PACKAGE_VERSIONS rpv
5571
   WHERE pv.PKG_ID = pkg.PKG_ID
5572
     AND rc.RTAG_ID = nRtagId
5573
     AND rc.PV_ID = rpv.PV_ID
5574
     AND rpv.PKG_ID = pv.PKG_ID
5575
     AND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )
5576
     AND qry.DPV_ID = pv.PV_ID;
5577
 
5578
 
5579
        -- Get Action Type Id for IGNORE_OFF
5580
        SELECT act.ACTTYPE_ID INTO ActionTypeId
5581
       FROM ACTION_TYPE act
5582
      WHERE act.NAME = 'ignore_off';
5583
 
5584
        -- Get UnIgnored (Old MINUS Current)
5585
        INSERT INTO ACTION_LOG ( USER_ID, ACTION_DATETIME, PV_ID, DESCRIPTION, ACTTYPE_ID )
5586
  SELECT nUserId, ORA_SYSDATETIME, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeId
5587
    FROM (
5588
        SELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_ID
5589
            FROM IGNORE_WARNINGS igw
5590
           WHERE igw.RTAG_ID = nRtagId
5591
             AND igw.PV_ID = nPvId
5592
                MINUS
5593
                SELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_ID
5594
            FROM PACKAGE_VERSIONS pv
5595
           WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
5596
         ) qry,
5597
         PACKAGE_VERSIONS pv,
5598
         PACKAGES pkg,
5599
         RELEASE_CONTENT rc,
5600
         PACKAGE_VERSIONS rpv
5601
   WHERE pv.PKG_ID = pkg.PKG_ID
5602
     AND rc.RTAG_ID = nRtagId
5603
     AND rc.PV_ID = rpv.PV_ID
5604
     AND rpv.PKG_ID = pv.PKG_ID
5605
     AND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )
5606
     AND qry.DPV_ID = pv.PV_ID;
5607
 
5608
 
5609
 
5610
        -- Delete Current Ignore Warnings
5611
     DELETE
5612
       FROM IGNORE_WARNINGS igw
5613
      WHERE igw.RTAG_ID = nRtagId
5614
        AND igw.PV_ID = nPvId
5615
        AND igw.IS_PATCH_IGNORE IS NULL;
5616
 
5617
 
5618
        IF (oIgnoreIdCollector.COUNT > 0) THEN
5619
      -- Insert Ignore Warnings
5620
      INSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID )
5621
      SELECT nRtagId,
5622
             nPvId,
5623
                pv.PV_ID AS DPV_ID
5624
           FROM PACKAGE_VERSIONS pv
5625
          WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
5626
        END IF;
5627
 
5628
 
5629
  -- Touch Release if package is in Release Area
5630
  IF PK_ENVIRONMENT.GET_PACKAGE_AREA ( nPvId, nRtagId ) = 2 THEN
5631
   Touch_Release (nRtagId);
5632
  END IF;
5633
 
5634
 ELSE
5635
        /* Patch Ignore Warnings */
5636
 
5637
        -- Delete Current Patch Ignore Warnings
5638
     DELETE
5639
       FROM IGNORE_WARNINGS igw
5640
      WHERE igw.RTAG_ID = nRtagId
5641
        AND igw.IS_PATCH_IGNORE = 'Y';
5642
 
5643
 
5644
        -- Delete Manual Ignores that need to be Patch Ignores
5645
     DELETE
5646
       FROM IGNORE_WARNINGS igw
5647
      WHERE ( RTAG_ID, PV_ID, DPV_ID ) IN
5648
          (
5649
    SELECT DISTINCT
5650
                       nRtagId,
5651
        err.PV_ID,
5652
                       err.ERR_DPV AS DPV_ID
5653
      FROM
5654
           (
5655
           /* Full Release Contents used for reference*/
5656
           SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext --, rpv.pkg_version, rpv.v_nmm, rpv.v_mm
5657
             FROM release_content rel, package_versions rpv
5658
            WHERE rel.pv_id = rpv.pv_id
5659
              AND rtag_id = nRtagId
5660
           ) frc,
5661
           (
5662
            /* DPV_IDs not fount in release*/
5663
            SELECT dep.pv_id, dep.dpv_id AS err_dpv
5664
              FROM package_dependencies dep
5665
             WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
5666
               AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
5667
           ) err,
5668
           (
5669
            SELECT DISTINCT pp.PV_ID, dep.DPV_ID
5670
              FROM PACKAGE_PATCHES pp,
5671
                  PACKAGE_DEPENDENCIES dep,
5672
                  RELEASE_CONTENT rc
5673
             WHERE rc.RTAG_ID = nRtagId
5674
               AND rc.PV_ID = pp.PV_ID
5675
               AND dep.PV_ID = pp.PATCH_ID
5676
           ) pp,
5677
           package_versions errpkg,
5678
           package_versions errpv
5679
     WHERE err.err_dpv = errpv.pv_id
5680
       AND errpv.pkg_id = frc.pkg_id(+)
5681
       AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
5682
       AND err.pv_id = errpkg.pv_id
5683
       AND err.PV_ID = pp.PV_ID
5684
       AND frc.PV_ID = pp.DPV_ID
5685
   );
5686
 
5687
        /*
5688
        ---------------------------------------------------
5689
        --  Make sure that select statement above and below are same
5690
        ---------------------------------------------------
5691
        */
5692
 
5693
 
5694
  -- Insert Patch Ignores
5695
  INSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE )
5696
  SELECT DISTINCT
5697
      nRtagId,
5698
         err.PV_ID,
5699
         err.ERR_DPV AS DPV_ID,
5700
         'Y'
5701
    FROM
5702
         (
5703
         /* Full Release Contents used for reference*/
5704
         SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext --, rpv.pkg_version, rpv.v_nmm, rpv.v_mm
5705
           FROM release_content rel, package_versions rpv
5706
          WHERE rel.pv_id = rpv.pv_id
5707
            AND rtag_id = nRtagId
5708
         ) frc,
5709
         (
5710
          /* DPV_IDs not fount in release*/
5711
          SELECT dep.pv_id, dep.dpv_id AS err_dpv
5712
            FROM package_dependencies dep
5713
           WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
5714
             AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
5715
         ) err,
5716
         (
5717
          SELECT DISTINCT pp.PV_ID, dep.DPV_ID
5718
            FROM PACKAGE_PATCHES pp,
5719
                PACKAGE_DEPENDENCIES dep,
5720
                RELEASE_CONTENT rc
5721
           WHERE rc.RTAG_ID = nRtagId
5722
             AND rc.PV_ID = pp.PV_ID
5723
             AND dep.PV_ID = pp.PATCH_ID
5724
         ) pp,
5725
         package_versions errpkg,
5726
         package_versions errpv
5727
   WHERE err.err_dpv = errpv.pv_id
5728
     AND errpv.pkg_id = frc.pkg_id(+)
5729
     AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
5730
     AND err.pv_id = errpkg.pv_id
5731
     AND err.PV_ID = pp.PV_ID
5732
     AND frc.PV_ID = pp.DPV_ID;
5733
 
5734
 
5735
    END IF;
5736
 
5737
 
5738
END Ignore_Dependency_Warnings;
5739
/
5740
 
5741
CREATE OR REPLACE PROCEDURE Change_Package_State ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
5742
            nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS
5743
/* ---------------------------------------------------------------------------
5744
    Version: 4.0
5745
   --------------------------------------------------------------------------- */
5746
 
5747
BEGIN
5748
 
5749
    -- Unlock Package
5750
    UPDATE RELEASE_CONTENT rc SET
5751
     rc.PKG_STATE = 0
5752
    WHERE rc.PV_ID = nPvId
5753
 AND rc.RTAG_ID = nRtagId;
5754
 
5755
    /* LOG ACTION */
5756
   /* Log_Action ( nPvId, 'unlock_package', nUserId );*/
5757
 
5758
END Change_Package_State;
5759
/
5760
 
5761
CREATE OR REPLACE PROCEDURE New_Unit_Test ( nPv_id IN NUMBER,
5762
                                            nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,
5763
                                            sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,
5764
                                            sNumOfTest IN UNIT_TESTS.NUMOF_TEST%TYPE,
5765
                                            sDpkg_path IN VARCHAR2,
5766
                                            sResults IN VARCHAR2,
5767
                                            sCompletion_date IN VARCHAR2,
5768
                                            nCompleted_by IN NUMBER,
5769
           enumTEST_TYPE_AUTOMATIC IN NUMBER,
5770
           enumTEST_TYPE_NOT_DONE IN NUMBER,
5771
           outFileName OUT VARCHAR2
5772
                                           ) IS
5773
/* ---------------------------------------------------------------------------
5774
    Version: 3.2.0
5775
   --------------------------------------------------------------------------- */
5776
 
5777
    FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';
5778
 
5779
    newID NUMBER;
5780
    ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;
5781
    ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;
5782
 
5783
BEGIN
5784
 
5785
 -- Get new ID --
5786
    SELECT SEQ_UNIT_TESTS.NEXTVAL INTO newID FROM DUAL;
5787
 
5788
       IF nTestTypeId = enumTEST_TYPE_AUTOMATIC THEN
5789
        ResultsURL := sResults;
5790
       ELSE
5791
        IF (sResults <> '') OR ( NOT sResults IS NULL ) THEN
5792
         outFileName := FILENAME_PREFIX || newID ||'_'|| sResults;
5793
      ResultsAttachment := sDpkg_path || '/' || outFileName;
5794
           END IF;
5795
       END IF;
5796
 
5797
 -- Remove NOT_DONE entry if exists
5798
 DELETE FROM UNIT_TESTS
5799
  WHERE pv_id = nPv_id
5800
    AND test_types_fk = enumTEST_TYPE_NOT_DONE;
5801
 
5802
 --- Add Additional Note ---
5803
    INSERT INTO UNIT_TESTS ( TEST_ID,
5804
        PV_ID,
5805
        TEST_TYPES_FK,
5806
        TEST_SUMMARY,
5807
        COMPLETION_DATE,
5808
        COMPLETED_BY,
5809
        RESULTS_URL,
5810
        RESULTS_ATTACHMENT_NAME,
5811
        NUMOF_TEST )
5812
    VALUES (
5813
        newID,
5814
           nPv_id,
5815
           nTestTypeId,
5816
           sTest_summary,
5817
           TO_DATE( sCompletion_date,'DD/MM/YYYY' ),
5818
           nCompleted_by,
5819
           ResultsURL,
5820
           ResultsAttachment,
5821
     sNumOfTest );
5822
 
5823
END New_Unit_Test;
5824
/
5825
 
5826
CREATE OR REPLACE PROCEDURE UnRipple_Package ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
5827
                     nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
5828
            nUserId IN NUMBER ) IS
5829
/* ---------------------------------------------------------------------------
5830
    Version: 4.0
5831
   --------------------------------------------------------------------------- */
5832
 
5833
BEGIN
5834
 
5835
    -- Unlock Package
5836
    INSERT INTO DO_NOT_RIPPLE (RTAG_ID, PV_ID)
5837
 VALUES (nRtagId, nPvId);
5838
 
5839
    /* LOG ACTION */
5840
    Log_Action ( nPvId, 'unripple_package', nUserId );
5841
 
5842
END UnRipple_Package;
5843
/
5844
 
5845
CREATE OR REPLACE PROCEDURE Ripple_Package ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
5846
                      nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
5847
            nUserId IN NUMBER ) IS
5848
/* ---------------------------------------------------------------------------
5849
    Version: 4.0
5850
   --------------------------------------------------------------------------- */
5851
 
5852
BEGIN
5853
 
5854
    -- Lock Package
5855
    DELETE FROM DO_NOT_RIPPLE
5856
 WHERE PV_ID = nPvId
5857
 AND RTAG_ID = nRtagId;
5858
 
5859
    /* LOG ACTION */
5860
    Log_Action ( nPvId, 'ripple_package', nUserId );
5861
 
5862
END Ripple_Package;
5863
/
5864
 
5865
CREATE OR REPLACE PROCEDURE Set_Package_Build_Env ( nPvId IN PACKAGE_BUILD_ENV.PV_ID%TYPE,
5866
                      sBuildEnvIdList IN VARCHAR2 ) IS
5867
/* ---------------------------------------------------------------------------
5868
    Version: 3.0.0
5869
   --------------------------------------------------------------------------- */
5870
 
5871
 
5872
BEGIN
5873
 
5874
   -- Delete Current Build Env settings
5875
   DELETE FROM PACKAGE_BUILD_ENV
5876
   WHERE pv_id = nPvId;
5877
 
5878
   -- Reset flag to N
5879
   UPDATE PACKAGE_VERSIONS SET
5880
    IS_BUILD_ENV_REQUIRED = 'N'
5881
   WHERE PV_ID = nPvId;
5882
 
5883
 
5884
   -- Set new Build Env
5885
   IF NOT sBuildEnvIdList IS NULL THEN
5886
      -- Insert into PACKAGE_BUILD_ENV
5887
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
5888
   SELECT nPvId AS PV_ID,
5889
      be.BE_ID
5890
     FROM BUILD_ENVIRONMENTS be
5891
    WHERE be.BE_ID IN (
5892
               SELECT *
5893
              FROM THE ( SELECT CAST( IN_LIST_NUMBER( sBuildEnvIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
5894
             );
5895
 
5896
    -- Set flag to N
5897
    UPDATE PACKAGE_VERSIONS SET
5898
     IS_BUILD_ENV_REQUIRED = 'Y'
5899
    WHERE PV_ID = nPvId;
5900
 
5901
   END IF;
5902
 
5903
 
5904
END Set_Package_Build_Env;
5905
/
5906
 
5907
CREATE OR REPLACE PROCEDURE Split_Version ( SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
5908
                                            SSV_MM OUT PACKAGE_VERSIONS.V_MM%TYPE,
5909
                                            SSV_NMM OUT PACKAGE_VERSIONS.V_NMM%TYPE,
5910
                                            SSV_EXT OUT PACKAGE_VERSIONS.V_EXT%TYPE  ) IS
5911
/* ---------------------------------------------------------------------------
5912
    Version: 3.0.0
5913
   --------------------------------------------------------------------------- */
5914
 
5915
    TYPE VERSION_COMPONENTS_TYPE IS TABLE OF VARCHAR2(50)
5916
        INDEX BY BINARY_INTEGER;
5917
 
5918
    version_components VERSION_COMPONENTS_TYPE;
5919
    lastDot NUMBER := 0;
5920
    currDot NUMBER := 0;
5921
 
5922
BEGIN
5923
    currDot := INSTR ( SSpkg_version, '.', -1 );      -- Find 1st dot from the right
5924
 
5925
    IF ( currDot > 0 )
5926
    THEN
5927
        -- YES dot separator found --
5928
        SSV_EXT := GET_V_EXT( SSpkg_version );
5929
 
5930
        IF NOT SSV_EXT IS NULL
5931
        THEN
5932
            lastDot := currDot;
5933
            currDot := INSTR ( SSpkg_version, '.', -1, 2 );   -- Find 2nd dot from the right
5934
 
5935
            IF ( currDot > 0 )
5936
            THEN
5937
                -- XXXX.M.E
5938
                SSV_MM := SUBSTR ( SSpkg_version, currDot + 1, lastDot - currDot - 1);
5939
                SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot ) || SSV_EXT;
5940
            ELSE
5941
                -- XXXX.E
5942
                SSV_MM := NULL;
5943
                SSV_NMM := SSpkg_version;
5944
            END IF;
5945
 
5946
        ELSE
5947
            -- XXXX.M
5948
            SSV_MM := SUBSTR ( SSpkg_version, currDot + 1, LENGTH(SSpkg_version) - currDot );
5949
            SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot );
5950
 
5951
        END IF;
5952
 
5953
    ELSE
5954
        -- NO dot separator found --
5955
        -- XXXXXX
5956
        SSV_MM  := NULL;
5957
        SSV_NMM := SSpkg_version;
5958
        SSV_EXT := NULL;
5959
 
5960
    END IF;
5961
 
5962
END Split_Version;
5963
/
5964
 
5965
CREATE OR REPLACE FUNCTION RELEASE_MODE ( nRtagId IN NUMBER ) RETURN CHAR IS
5966
 
5967
/* ---------------------------------------------------------------------------
5968
    Version: 3.0.0
5969
   --------------------------------------------------------------------------- */
5970
 
5971
   returnValue CHAR(1);
5972
 
5973
BEGIN
5974
 
5975
    /*--------------- Business Rules Here -------------------*/
5976
 /*-------------------------------------------------------*/
5977
 
5978
 -- Get release mode
5979
 SELECT rt.OFFICIAL INTO returnValue
5980
   FROM RELEASE_TAGS rt
5981
  WHERE rt.RTAG_ID = nRtagId;
5982
 
5983
 RETURN returnValue;
5984
 
5985
END RELEASE_MODE;
5986
/
5987
 
5988
CREATE OR REPLACE PROCEDURE Unlock_Package ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
5989
            nUserId IN NUMBER ) IS
5990
/* ---------------------------------------------------------------------------
5991
    Author: Rupesh Solanki
5992
 
5993
 Version: 4.0
5994
   --------------------------------------------------------------------------- */
5995
   STATE CHAR;
5996
 
5997
BEGIN
5998
 
5999
 SELECT DLOCKED INTO STATE
6000
 FROM PACKAGE_VERSIONS
6001
 WHERE PV_ID = nPvId; 
6002
 
6003
 IF STATE = 'A' THEN --It was made official for autobuilds
6004
  -- Unlock Package
6005
  UPDATE PACKAGE_VERSIONS pv SET
6006
  pv.DLOCKED = 'P'
6007
  WHERE pv.PV_ID = nPvId; 
6008
 ELSE
6009
  -- Unlock Package
6010
  UPDATE PACKAGE_VERSIONS pv SET
6011
  pv.DLOCKED = 'N'
6012
  WHERE pv.PV_ID = nPvId; 
6013
 
6014
 END IF;    
6015
 
6016
    /* LOG ACTION */
6017
    Log_Action ( nPvId, 'unlock_package', nUserId );
6018
 
6019
END Unlock_Package;
6020
/
6021
 
6022
CREATE OR REPLACE PROCEDURE Touch_Release_Bulk ( nRtagIdList IN VARCHAR2 ) IS
6023
/* ---------------------------------------------------------------------------
6024
    Version: 3.0
6025
   --------------------------------------------------------------------------- */
6026
 
6027
oRTagIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
6028
 
6029
BEGIN
6030
  oRTagIdCollector := IN_LIST_NUMBER ( nRtagIdList );
6031
 
6032
  -- Touch Release for Rebuild
6033
     UPDATE RELEASE_TAGS rt SET
6034
      rt.REBUILD_ENV = 'Y',
6035
        rt.REBUILD_STAMP = 0
6036
      WHERE rt.RTAG_ID IN ( SELECT * FROM TABLE ( CAST ( oRTagIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
6037
 
6038
 
6039
END Touch_Release_Bulk;
6040
/
6041
 
6042
CREATE OR REPLACE PACKAGE PK_PLANNED IS
6043
/*
6044
------------------------------
6045
||  Last Modified:  S.Vukovic
6046
||  Modified Date:  6/May/2005
6047
||  Spec Version:   1.0
6048
------------------------------
6049
*/
6050
 
6051
 TYPE typeCur IS REF CURSOR;
6052
 
6053
    /*================================================================================================*/
6054
 PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
6055
 PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
6056
 FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
6057
 PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ); 
6058
 PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
6059
 /*================================================================================================*/
6060
 
6061
END PK_PLANNED;
6062
/
6063
 
6064
CREATE OR REPLACE PROCEDURE Pending_Package ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
6065
            nUserId IN NUMBER ) IS
6066
/* ---------------------------------------------------------------------------
6067
    Version: 4.0
6068
   --------------------------------------------------------------------------- */
6069
 
6070
BEGIN
6071
 
6072
    -- Lock Package
6073
    UPDATE PACKAGE_VERSIONS pv SET
6074
     pv.DLOCKED = 'A'
6075
    WHERE pv.PV_ID = nPvId;
6076
 
6077
    /* LOG ACTION */
6078
    Log_Action ( nPvId, 'lock_package', nUserId );
6079
END Pending_Package;
6080
/
6081
 
6082
CREATE OR REPLACE PROCEDURE Seed_Package_Names_Versions2 ( SSpkg_name IN PACKAGES.pkg_name%TYPE,
6083
                                                          SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
6084
                                                          NNuser_id IN NUMBER,
6085
                                                          retPV_ID OUT NUMBER,
6086
                nCloneFromPvId IN NUMBER DEFAULT NULL ) IS
6087
/* ---------------------------------------------------------------------------
6088
    Version: 4.0
6089
   --------------------------------------------------------------------------- */
6090
 
6091
    parPkg_id   NUMBER;
6092
    parPv_id    NUMBER;
6093
    cloneFrom_pv_id NUMBER;
6094
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
6095
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
6096
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
6097
 
6098
    CURSOR packages_cur IS
6099
        SELECT pkg_id FROM PACKAGES
6100
        WHERE pkg_name = SSpkg_name;
6101
    packages_rec packages_cur%ROWTYPE;
6102
 
6103
    CURSOR package_versions_cur IS
6104
        SELECT pv_id FROM PACKAGE_VERSIONS
6105
        WHERE pkg_id = parPkg_id
6106
        AND pkg_version = SSpkg_version;
6107
    package_versions_rec package_versions_cur%ROWTYPE;
6108
 
6109
    CURSOR clone_package_versions_cur IS
6110
        SELECT MAX(pv_id) AS pv_id
6111
          FROM PACKAGE_VERSIONS
6112
         WHERE pkg_id = parPkg_id
6113
           AND NVL(v_ext,'LINK_A_NULL') = NVL(SSV_EXT,'LINK_A_NULL');
6114
    clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
6115
 
6116
BEGIN
6117
    /* -------------------------------------------- */
6118
    /* Find if pkg_name exists and seed if required */
6119
    /* -------------------------------------------- */
6120
    OPEN packages_cur;
6121
    FETCH packages_cur INTO packages_rec;
6122
 
6123
    IF packages_cur%NOTFOUND
6124
    THEN
6125
        /* INSERT into packages table */
6126
        SELECT SEQ_PKG_ID.NEXTVAL INTO parPkg_id FROM DUAL;
6127
        INSERT INTO PACKAGES ( pkg_id, pkg_name ) VALUES ( parPkg_id, SSpkg_name );
6128
 
6129
    ELSE
6130
        parPkg_id := packages_rec.pkg_id;
6131
 
6132
    END IF;
6133
 
6134
    CLOSE packages_cur;
6135
 
6136
 
6137
 
6138
    /* ---------------------------------------------------- */
6139
    /* Find if package_version exists and seed if required  */
6140
    /* ---------------------------------------------------- */
6141
    OPEN package_versions_cur;
6142
    FETCH package_versions_cur INTO package_versions_rec;
6143
 
6144
    IF package_versions_cur%NOTFOUND
6145
    THEN
6146
        SELECT SEQ_PV_ID.NEXTVAL INTO parPv_id FROM DUAL;
6147
 
6148
        /* LOG ACTION */
6149
        Log_Action ( parPv_id, 'new_version', NNuser_id,
6150
            'New package version: '|| SSpkg_version );
6151
 
6152
        Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
6153
 
6154
 
6155
 
6156
 
6157
 
6158
            /* CLONE details from similar version  OR  from nCloneFromPvId */
6159
   IF ( NOT nCloneFromPvId IS NULL) THEN
6160
             cloneFrom_pv_id := nCloneFromPvId;
6161
   ELSE
6162
    cloneFrom_pv_id := clone_package_versions_rec.pv_id;
6163
   END IF;
6164
 
6165
            -- Clone Package Version Details --
6166
            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,
6167
                                           src_path, pv_description, PV_OVERVIEW, LAST_PV_ID, owner_id, BUILD_TYPE, IS_BUILD_ENV_REQUIRED )
6168
                SELECT parPv_id         AS pv_id,
6169
                       parPkg_id        AS pkg_id,
6170
                       SSpkg_version    AS pkg_version,
6171
                       'N'              AS dlocked,
6172
                       Ora_Sysdate      AS created_stamp,
6173
                       NNuser_id        AS creator_id,
6174
                       Ora_Sysdatetime  AS modified_stamp,
6175
                       NNuser_id        AS modifier_id,
6176
                       SSV_MM           AS V_MM,
6177
                       SSV_NMM          AS V_NMM,
6178
                       SSV_EXT          AS V_EXT,
6179
                       pv.src_path,
6180
                       pv.pv_description,
6181
                       pv.PV_OVERVIEW,
6182
                       cloneFrom_pv_id  AS LAST_PV_ID,
6183
                       pv.owner_id,
6184
        pv.BUILD_TYPE,
6185
        pv.IS_BUILD_ENV_REQUIRED
6186
                  FROM PACKAGE_VERSIONS pv
6187
                 WHERE pv.pv_id = cloneFrom_pv_id;
6188
 
6189
            Basic_Clone ( cloneFrom_pv_id, parPv_id, NULL, NNuser_id, parPkg_id, 0 );
6190
 
6191
        retPV_ID := parPv_id;
6192
 
6193
    ELSE
6194
        retPV_ID := package_versions_rec.pv_id;
6195
 
6196
    END IF;
6197
 
6198
    CLOSE package_versions_cur;
6199
 
6200
 
6201
 
6202
 
6203
END Seed_Package_Names_Versions2;
6204
/
6205
 
6206
CREATE OR REPLACE PROCEDURE delete_do_not_ripple
6207
IS
6208
/******************************************************************************
6209
   NAME:       DELETE_DO_NOT_RIPPLE
6210
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
6211
               IS RELEASED
6212
 
6213
   REVISIONS:
6214
   Ver        Date        Author           Description
6215
   ---------  ----------  ---------------  ------------------------------------
6216
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
6217
 
6218
   NOTES:
6219
 
6220
   Automatically available Auto Replace Keywords:
6221
      Object Name:     DELETE_DO_NOT_RIPPLE
6222
      Sysdate:         21/04/2006
6223
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
6224
      Username:         (set in TOAD Options, Procedure Editor)
6225
      Table Name:       (set in the "New PL/SQL Object" dialog)
6226
 
6227
******************************************************************************/
6228
   CURSOR ripple_cur /*Create a record set to store the ripple data*/
6229
   IS
6230
      SELECT   dnr.rtag_id, dnr.pv_id AS last_pv_id, pv.pv_id AS new_pv_id
6231
          FROM release_content rc, do_not_ripple dnr, package_versions pv
6232
         WHERE rc.pv_id = pv.pv_id
6233
           AND rc.rtag_id = dnr.rtag_id
6234
           AND pv.dlocked = 'Y'
6235
           AND pv.last_pv_id = dnr.pv_id
6236
           AND pv.pv_id != dnr.pv_id
6237
      ORDER BY last_pv_id;
6238
 
6239
   ripple_rec   ripple_cur%ROWTYPE;
6240
BEGIN
6241
   OPEN ripple_cur;
6242
 
6243
   FETCH ripple_cur
6244
    INTO ripple_rec;
6245
 
6246
   WHILE ripple_cur%FOUND
6247
   LOOP
6248
      DELETE FROM do_not_ripple
6249
            WHERE rtag_id = ripple_rec.rtag_id
6250
              AND pv_id = ripple_rec.last_pv_id;
6251
 
6252
      FETCH ripple_cur
6253
       INTO ripple_rec;
6254
   END LOOP;
6255
END delete_do_not_ripple;
6256
/
6257
 
6258
CREATE OR REPLACE FUNCTION IN_LIST_NUMBER ( sInList IN VARCHAR2 ) RETURN RELMGR_NUMBER_TAB_t IS
6259
 
6260
/* ---------------------------------------------------------------------------
6261
    Version: 3.0.0
6262
   --------------------------------------------------------------------------- */
6263
 
6264
    sync_rtags     RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
6265
 pos       NUMBER;
6266
 in_list      VARCHAR2(4000) := sInList || ',';
6267
 
6268
BEGIN
6269
 
6270
 IF NOT sInList IS NULL
6271
 THEN
6272
  LOOP
6273
         EXIT WHEN in_list IS NULL;
6274
         pos := INSTR ( in_list, ',' );
6275
         sync_rtags.extend;
6276
         sync_rtags(sync_rtags.count) := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
6277
         in_list := SUBSTR ( in_list, pos+1 );
6278
  END LOOP;
6279
 END IF;
6280
 
6281
 RETURN sync_rtags;
6282
END IN_LIST_NUMBER;
6283
/
6284
 
6285
CREATE OR REPLACE PROCEDURE delete_autobuild_failure_info
6286
IS
6287
/******************************************************************************
6288
   NAME:       DELETE_AUTOBUILD_FAILURE_INFO
6289
   PURPOSE:
6290
 
6291
   REVISIONS:
6292
   Ver        Date        Author           Description
6293
   ---------  ----------  ---------------  ------------------------------------
6294
   1.0        2/06/2006    Rupesh Solanki      1. Created this procedure.
6295
 
6296
   NOTES:
6297
 
6298
   Automatically available Auto Replace Keywords:
6299
      Object Name:     DELETE_AUTOBUILD_FAILURE_INFO
6300
      Sysdate:         2/06/2006
6301
      Date and Time:   2/06/2006, 8:44:25 AM, and 2/06/2006 8:44:25 AM
6302
      Username:         (set in TOAD Options, Procedure Editor)
6303
      Table Name:       (set in the "New PL/SQL Object" dialog)
6304
 
6305
******************************************************************************/
6306
BEGIN
6307
   DELETE FROM autobuild_failure
6308
         WHERE group_email_id NOT IN (SELECT group_email_id
6309
                                        FROM members_group);
6310
END delete_autobuild_failure_info;
6311
/
6312
 
6313
CREATE OR REPLACE PROCEDURE PAOLO_Build_Tree ( nRtag_id IN NUMBER ) IS
6314
 
6315
    sessionNumber NUMBER := 0;
6316
    iteration NUMBER := 1; 
6317
    rowCnt NUMBER := 0;
6318
    maxIterations  NUMBER := 50;
6319
 
6320
BEGIN
6321
 
6322
 
6323
    INSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )
6324
    SELECT sessionNumber, iteration, rc.PV_ID
6325
      FROM RELEASE_CONTENT rc
6326
     WHERE rc.RTAG_ID = nRtag_id;
6327
 
6328
    iteration := iteration + 1;
6329
    LOOP
6330
 
6331
        INSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )
6332
  SELECT sessionNumber,     
6333
               iteration,
6334
               dep.DPV_ID
6335
          FROM TEMP_TREE_BROWSE ttb,
6336
               PACKAGE_DEPENDENCIES dep
6337
         WHERE dep.PV_ID = ttb.PV_ID 
6338
           AND ttb.LEVEL_NUM = iteration - 1 
6339
 
6340
         MINUS  
6341
 
6342
        SELECT sessionNumber, iteration, ttb.PV_ID
6343
          FROM TEMP_TREE_BROWSE ttb;   
6344
 
6345
 
6346
 
6347
 
6348
  rowCnt := SQL%ROWCOUNT;
6349
  IF rowCnt > 0 THEN
6350
           iteration := iteration + 1;
6351
  END IF;
6352
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
6353
    END LOOP; 
6354
 
6355
END PAOLO_Build_Tree;
6356
/
6357
 
6358
CREATE OR REPLACE PROCEDURE Lock_Package ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
6359
            nUserId IN NUMBER ) IS
6360
/* ---------------------------------------------------------------------------
6361
    Version: 4.0
6362
   --------------------------------------------------------------------------- */
6363
 
6364
BEGIN
6365
 
6366
    -- Lock Package
6367
    UPDATE PACKAGE_VERSIONS pv SET
6368
     pv.DLOCKED = 'Y'
6369
    WHERE pv.PV_ID = nPvId;
6370
 
6371
    /* LOG ACTION */
6372
    Log_Action ( nPvId, 'lock_package', nUserId );
6373
 
6374
END Lock_Package;
6375
/
6376
 
6377
CREATE OR REPLACE PROCEDURE Log_Action_Bulk ( nPvIdList IN VARCHAR2,
6378
              enumActionTypeName IN ACTION_TYPE.NAME%TYPE,
6379
                                            nUserId IN ACTION_LOG.USER_ID%TYPE,
6380
              sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL  ) IS
6381
/* ---------------------------------------------------------------------------
6382
    Version: 3.0
6383
   --------------------------------------------------------------------------- */
6384
 
6385
    ActionTypeId NUMBER;
6386
    oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
6387
 
6388
BEGIN
6389
 
6390
    oPvIdCollector := IN_LIST_NUMBER ( nPvIdList );
6391
 
6392
    -- Get Action Type FK
6393
    SELECT act.ACTTYPE_ID INTO ActionTypeId
6394
      FROM ACTION_TYPE act
6395
     WHERE act.NAME = enumActionTypeName;
6396
 
6397
    -- Log Action
6398
    INSERT INTO ACTION_LOG ( USER_ID, ACTION_DATETIME, PV_ID, DESCRIPTION, ACTTYPE_ID )
6399
    SELECT nUserId,
6400
        ORA_SYSDATETIME,
6401
           pv.PV_ID,
6402
           sAdditionalComments,
6403
           ActionTypeId
6404
      FROM PACKAGE_VERSIONS pv
6405
     WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
6406
 
6407
 
6408
END Log_Action_Bulk;
6409
/
6410
 
6411
CREATE OR REPLACE PROCEDURE Rename_Package_Version ( NNpv_id IN NUMBER,
6412
                                                     SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
6413
              cBuildType IN CHAR,
6414
                                                     NNuser_id IN NUMBER,
6415
                                                     errMessage OUT VARCHAR2 ) IS
6416
/* ---------------------------------------------------------------------------
6417
    Version: 3.2
6418
   --------------------------------------------------------------------------- */
6419
 
6420
    sPackageVersion VARCHAR2(4000);
6421
 sLabel VARCHAR2(4000) := NULL;
6422
    OldPkgVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
6423
 
6424
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
6425
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
6426
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
6427
 
6428
    CURSOR package_versions_cur IS
6429
        SELECT pv_id
6430
        FROM package_versions
6431
       WHERE pkg_id IN ( SELECT pkg_id FROM package_versions WHERE pv_id = NNpv_id )
6432
         AND pkg_version = SSpkg_version;
6433
    package_versions_rec package_versions_cur%ROWTYPE;
6434
 
6435
 
6436
BEGIN
6437
 
6438
    /* ---------------------------------------------------- */
6439
    /* Find if package_version exists                       */
6440
    /* ---------------------------------------------------- */
6441
 
6442
 errMessage := NULL;
6443
 
6444
 
6445
 -- Get previous version
6446
 SELECT pv.PKG_VERSION INTO OldPkgVersion
6447
      FROM PACKAGE_VERSIONS pv
6448
     WHERE pv.PV_ID = NNpv_id;
6449
 
6450
 
6451
 sPackageVersion := SSpkg_version;
6452
 
6453
 
6454
 IF OldPkgVersion != sPackageVersion THEN
6455
 
6456
     OPEN package_versions_cur;
6457
     FETCH package_versions_cur INTO package_versions_rec;
6458
 
6459
     IF package_versions_cur%NOTFOUND
6460
     THEN
6461
 
6462
   -- Split current version in parts
6463
      Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
6464
 
6465
 
6466
      -- Automated built config
6467
   IF (cBuildType = 'A') THEN
6468
    sPackageVersion := '('|| NNpv_id ||')'|| SSV_EXT; -- Make sure that version is still unique
6469
   END IF;
6470
 
6471
 
6472
         -- Packge version not found, hence rename it.
6473
         UPDATE package_versions
6474
            SET pkg_version = sPackageVersion,
6475
                v_mm = SSV_MM,
6476
                v_nmm = SSV_NMM,
6477
                v_ext = SSV_EXT,
6478
                modified_stamp = ORA_SYSDATETIME,
6479
                modifier_id = NNuser_id,
6480
       build_type = cBuildType,
6481
       pkg_label = NULL
6482
          WHERE pv_id = NNpv_id;
6483
 
6484
 
6485
   IF (cBuildType = 'A') THEN
6486
    sLabel := GET_AUTOMATED_LABEL( NNpv_id );
6487
    UPDATE PACKAGE_VERSIONS pv SET
6488
     pv.PKG_LABEL = sLabel
6489
           WHERE pv_id = NNpv_id;
6490
   END IF;
6491
 
6492
   /* LOG ACTION */
6493
        Log_Action ( NNpv_id, 'rename', NNuser_id, 'From '|| OldPkgVersion ||' to '|| SSpkg_version );
6494
 
6495
     ELSE
6496
         -- Package version exists. Cannot proceed.
6497
         errMessage := 'enum_MSG_VERSION_EXISTS';
6498
 
6499
     END IF;
6500
 
6501
     CLOSE package_versions_cur;
6502
 
6503
 END IF;
6504
 
6505
 
6506
 
6507
 
6508
END Rename_Package_Version;
6509
/
6510
 
6511
CREATE OR REPLACE FUNCTION IS_VERSION_EXTENSION (SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE) RETURN BOOLEAN
6512
IS
6513
/* ---------------------------------------------------------------------------
6514
    Version: 3.0.0
6515
   --------------------------------------------------------------------------- */
6516
 
6517
BEGIN
6518
    IF LENGTH ( TRIM (TRANSLATE (SSV_EXT, '.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',' ') ) ) > 0
6519
    THEN
6520
        RETURN FALSE;
6521
    ELSE
6522
        RETURN TRUE;
6523
    END IF;
6524
 
6525
END IS_VERSION_EXTENSION;
6526
/
6527
 
6528
CREATE OR REPLACE PROCEDURE CLONED_PACKAGE_PROCESSES
6529
IS
6530
 
6531
proc_id NUMBER;
6532
/******************************************************************************
6533
   NAME:       DELETE_DO_NOT_RIPPLE
6534
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
6535
               IS RELEASED
6536
 
6537
   REVISIONS:
6538
   Ver        Date        Author           Description
6539
   ---------  ----------  ---------------  ------------------------------------
6540
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
6541
 
6542
   NOTES:
6543
 
6544
   Automatically available Auto Replace Keywords:
6545
      Object Name:     DELETE_DO_NOT_RIPPLE
6546
      Sysdate:         21/04/2006
6547
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
6548
      Username:         (set in TOAD Options, Procedure Editor)
6549
      Table Name:       (set in the "New PL/SQL Object" dialog)
6550
 
6551
******************************************************************************/
6552
   CURSOR ripple_cur
6553
   IS
6554
      select distinct proc_id, prod_id from deployment_manager.processes_config;
6555
 
6556
   ripple_rec   ripple_cur%ROWTYPE;
6557
BEGIN
6558
   OPEN ripple_cur;
6559
 
6560
   FETCH ripple_cur
6561
    INTO ripple_rec;
6562
 
6563
   WHILE ripple_cur%FOUND
6564
   LOOP
6565
 
6566
 
6567
 
6568
insert into package_processes (PROC_ID, PV_ID) 
6569
values( ripple_rec.proc_id, ripple_rec.prod_id);
6570
 
6571
      FETCH ripple_cur
6572
       INTO ripple_rec;
6573
   END LOOP;
6574
END CLONED_PACKAGE_PROCESSES;
6575
/
6576
 
6577
CREATE OR REPLACE PROCEDURE DT_SETPROPERTYBYID ( PARAM_ID   IN NUMBER, PARAM_PROPERTY IN VARCHAR2, PARAM_VALUE  IN VARCHAR2, PARAM_LVALUE  IN LONG RAW ) AS BEGIN DECLARE X NUMBER(40);
6578
 BEGIN SELECT COUNT(*) INTO X FROM MICROSOFTDTPROPERTIES WHERE OBJECTID=PARAM_ID AND PROPERTY=PARAM_PROPERTY;
6579
 IF X = 0 THEN INSERT INTO MICROSOFTDTPROPERTIES (ID, PROPERTY, OBJECTID, VALUE, LVALUE, VERSION) VALUES (MICROSOFTSEQDTPROPERTIES.NEXTVAL, PARAM_PROPERTY, PARAM_ID, PARAM_VALUE, PARAM_LVALUE, 0);
6580
 ELSE UPDATE MICROSOFTDTPROPERTIES SET VALUE=PARAM_VALUE, LVALUE=PARAM_LVALUE, VERSION=VERSION+1 WHERE OBJECTID=PARAM_ID AND PROPERTY=PARAM_PROPERTY;
6581
 END IF;
6582
 END;
6583
 END DT_SETPROPERTYBYID;
6584
/
6585
 
6586
CREATE OR REPLACE PROCEDURE Seed_Package_Names_Versions ( SSpkg_name IN PACKAGES.pkg_name%TYPE,
6587
                                                          SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
6588
                                                          NNuser_id IN NUMBER,
6589
                                                          retPV_ID OUT NUMBER,
6590
                nCloneFromPvId IN NUMBER DEFAULT NULL ) IS
6591
/* ---------------------------------------------------------------------------
6592
    Version: 4.0
6593
   --------------------------------------------------------------------------- */
6594
 
6595
    parPkg_id   NUMBER;
6596
    parPv_id    NUMBER;
6597
    cloneFrom_pv_id NUMBER;
6598
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
6599
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
6600
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
6601
 
6602
    CURSOR packages_cur IS
6603
        SELECT pkg_id FROM PACKAGES
6604
        WHERE pkg_name = SSpkg_name;
6605
    packages_rec packages_cur%ROWTYPE;
6606
 
6607
    CURSOR package_versions_cur IS
6608
        SELECT pv_id FROM PACKAGE_VERSIONS
6609
        WHERE pkg_id = parPkg_id
6610
        AND pkg_version = SSpkg_version;
6611
    package_versions_rec package_versions_cur%ROWTYPE;
6612
 
6613
    CURSOR clone_package_versions_cur IS
6614
        SELECT MAX(pv_id) AS pv_id
6615
          FROM PACKAGE_VERSIONS
6616
         WHERE pkg_id = parPkg_id
6617
           AND NVL(v_ext,'LINK_A_NULL') = NVL(SSV_EXT,'LINK_A_NULL');
6618
    clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
6619
 
6620
BEGIN
6621
    /* -------------------------------------------- */
6622
    /* Find if pkg_name exists and seed if required */
6623
    /* -------------------------------------------- */
6624
    OPEN packages_cur;
6625
    FETCH packages_cur INTO packages_rec;
6626
 
6627
    IF packages_cur%NOTFOUND
6628
    THEN
6629
        /* INSERT into packages table */
6630
        SELECT SEQ_PKG_ID.NEXTVAL INTO parPkg_id FROM DUAL;
6631
        INSERT INTO PACKAGES ( pkg_id, pkg_name ) VALUES ( parPkg_id, SSpkg_name );
6632
 
6633
    ELSE
6634
        parPkg_id := packages_rec.pkg_id;
6635
 
6636
    END IF;
6637
 
6638
    CLOSE packages_cur;
6639
 
6640
 
6641
 
6642
    /* ---------------------------------------------------- */
6643
    /* Find if package_version exists and seed if required  */
6644
    /* ---------------------------------------------------- */
6645
    OPEN package_versions_cur;
6646
    FETCH package_versions_cur INTO package_versions_rec;
6647
 
6648
    IF package_versions_cur%NOTFOUND
6649
    THEN
6650
        SELECT SEQ_PV_ID.NEXTVAL INTO parPv_id FROM DUAL;
6651
 
6652
        /* LOG ACTION */
6653
        Log_Action ( parPv_id, 'new_version', NNuser_id,
6654
            'New package version: '|| SSpkg_version );
6655
 
6656
        Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
6657
 
6658
        /* Find similar pkg_name + ext to clone from */
6659
        OPEN clone_package_versions_cur;
6660
        FETCH clone_package_versions_cur INTO clone_package_versions_rec;
6661
 
6662
 
6663
        IF NOT clone_package_versions_rec.pv_id IS NULL
6664
        THEN
6665
            /* CLONE details from similar version  OR  from nCloneFromPvId */
6666
   IF ( NOT nCloneFromPvId IS NULL) THEN
6667
             cloneFrom_pv_id := nCloneFromPvId;
6668
   ELSE
6669
    cloneFrom_pv_id := clone_package_versions_rec.pv_id;
6670
   END IF;
6671
 
6672
            -- Clone Package Version Details --
6673
            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,
6674
                                           src_path, pv_description, PV_OVERVIEW, LAST_PV_ID, owner_id, BUILD_TYPE, IS_BUILD_ENV_REQUIRED  )
6675
                SELECT parPv_id         AS pv_id,
6676
                       parPkg_id        AS pkg_id,
6677
                       SSpkg_version    AS pkg_version,
6678
                       'N'              AS dlocked,
6679
                       Ora_Sysdate      AS created_stamp,
6680
                       NNuser_id        AS creator_id,
6681
                       Ora_Sysdatetime  AS modified_stamp,
6682
                       NNuser_id        AS modifier_id,
6683
                       SSV_MM           AS V_MM,
6684
                       SSV_NMM          AS V_NMM,
6685
                       SSV_EXT          AS V_EXT,
6686
                       pv.src_path,
6687
                       pv.pv_description,
6688
                       pv.PV_OVERVIEW,
6689
                       cloneFrom_pv_id  AS LAST_PV_ID,
6690
                       pv.owner_id,
6691
        pv.BUILD_TYPE,
6692
        pv.IS_BUILD_ENV_REQUIRED
6693
                  FROM PACKAGE_VERSIONS pv
6694
                 WHERE pv.pv_id = cloneFrom_pv_id;
6695
 
6696
            Basic_Clone ( cloneFrom_pv_id, parPv_id, NULL, NNuser_id, parPkg_id, 0 );
6697
 
6698
        ELSE
6699
            /* BRAND NEW version + ext */
6700
            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 )
6701
         VALUES (
6702
                    parPv_id,
6703
                    parPkg_id,
6704
                    SSpkg_version,
6705
                    'N',
6706
                    Ora_Sysdate,
6707
                    NNuser_id,
6708
                    Ora_Sysdatetime,
6709
                    NNuser_id,
6710
                    SSV_MM,
6711
                    SSV_NMM,
6712
                    SSV_EXT,
6713
                    NNuser_id,
6714
                    parPv_id,
6715
     'M'
6716
                   );
6717
 
6718
        END IF;
6719
 
6720
        CLOSE clone_package_versions_cur;
6721
        retPV_ID := parPv_id;
6722
 
6723
    ELSE
6724
        retPV_ID := package_versions_rec.pv_id;
6725
 
6726
    END IF;
6727
 
6728
    CLOSE package_versions_cur;
6729
 
6730
 
6731
 
6732
 
6733
END Seed_Package_Names_Versions;
6734
/
6735
 
6736
CREATE OR REPLACE PROCEDURE Remove_Runtime ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
6737
            nRuntimeId IN RUNTIME_DEPENDENCIES.RTD_ID%TYPE,
6738
                                             nUserId IN NUMBER ) IS
6739
/* ---------------------------------------------------------------------------
6740
    Version: 3.0
6741
   --------------------------------------------------------------------------- */
6742
 
6743
   RuntimeDependency VARCHAR2(4000);
6744
 
6745
BEGIN
6746
 
6747
 -- Get Runtime dependency
6748
    SELECT pkg.PKG_NAME ||' '|| pv.PKG_VERSION  INTO RuntimeDependency
6749
   FROM RUNTIME_DEPENDENCIES rtd,
6750
       PACKAGES pkg,
6751
        PACKAGE_VERSIONS pv
6752
  WHERE rtd.PV_ID = nPvId
6753
    AND pv.PKG_ID = pkg.PKG_ID
6754
    AND rtd.RTD_ID = pv.PV_ID
6755
    AND rtd.RTD_ID = nRuntimeId;
6756
 
6757
 
6758
 -- Delete Document
6759
    DELETE
6760
      FROM RUNTIME_DEPENDENCIES rtd
6761
     WHERE rtd.PV_ID = nPvId
6762
       AND rtd.RTD_ID = nRuntimeId;
6763
 
6764
 
6765
    /* LOG ACTION */
6766
    Log_Action ( nPvId, 'runtime_remove', nUserId,
6767
           'Runtime package: '|| RuntimeDependency );
6768
 
6769
 
6770
END Remove_Runtime;
6771
/
6772
 
6773
CREATE OR REPLACE PROCEDURE Deprecate_Package (nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
6774
                     nRtagId IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,
6775
                     nPkgId IN DEPRECATED_PACKAGES.PKG_ID%TYPE,
6776
              sComments IN DEPRECATED_PACKAGES.COMMENTS%TYPE,
6777
              nUserId IN NUMBER) IS
6778
ext VARCHAR2(50);
6779
 
6780
 
6781
 
6782
 
6783
BEGIN
6784
 
6785
 --Extract the package version extension
6786
 SELECT V_EXT into ext
6787
 FROM PACKAGE_VERSIONS
6788
 WHERE PV_ID = nPvId; 
6789
 
6790
    -- Deprecate Package
6791
    INSERT INTO DEPRECATED_PACKAGES (RTAG_ID, PKG_ID, COMMENTS, V_EXT)
6792
 VALUES (nRtagId, nPkgId, sComments, ext);
6793
 
6794
 IF ext IS NOT NULL THEN
6795
    UPDATE RELEASE_CONTENT 
6796
    SET PKG_ID = nPkgId, DEPRECATED_STATE = 6
6797
    WHERE RTAG_ID = nRtagId
6798
    AND PV_ID IN (SELECT PV.PV_ID 
6799
            FROM PACKAGE_VERSIONS PV, PACKAGES PKG
6800
       WHERE PKG.PKG_ID = PV.PKG_ID
6801
       AND PV.V_EXT = ext
6802
       AND PKG.PKG_ID = nPkgId
6803
      );      
6804
 ELSE
6805
    UPDATE RELEASE_CONTENT 
6806
    SET PKG_ID = nPkgId, DEPRECATED_STATE = 6
6807
    WHERE RTAG_ID = nRtagId
6808
    AND PV_ID IN (SELECT PV.PV_ID 
6809
            FROM PACKAGE_VERSIONS PV, PACKAGES PKG
6810
       WHERE PKG.PKG_ID = PV.PKG_ID
6811
       AND PV.V_EXT IS NULL
6812
       AND PKG.PKG_ID = nPkgId
6813
      );
6814
 END IF;
6815
 
6816
 UPDATE RELEASE_CONTENT
6817
 SET PKG_ID = nPkgId, DEPRECATED_STATE = 7
6818
 WHERE RTAG_ID = nRtagId
6819
 AND PV_ID IN (     SELECT DISTINCT
6820
              qry.PV_ID
6821
              FROM (
6822
            SELECT dep.*,
6823
           LEVEL AS LEVEL_NUM
6824
           FROM PACKAGE_DEPENDENCIES dep 
6825
         START WITH dep.DPV_ID IN ( nPvId ) 
6826
        CONNECT BY PRIOR dep.PV_ID = dep.DPV_ID
6827
         ) qry,
6828
        PACKAGES pkg,
6829
        PACKAGE_VERSIONS pv,
6830
        RELEASE_CONTENT rc
6831
         WHERE qry.PV_ID = pv.PV_ID AND pv.PKG_ID = pkg.PKG_ID
6832
        AND rc.RTAG_ID = nRtagId AND rc.PV_ID = qry.PV_ID
6833
        AND rc.DEPRECATED_STATE IS NULL
6834
     );    
6835
 
6836
    /* LOG ACTION */
6837
    /*Log_Action ( nPkgId, 'deprecated_package', nUserId );*/
6838
 
6839
 
6840
END Deprecate_Package;
6841
/
6842
 
6843
CREATE OR REPLACE PROCEDURE add_autobuild_failure_info (
6844
   nprojid     IN   NUMBER,
6845
   nviewid     IN   NUMBER,
6846
   suserlist   IN   VARCHAR2
6847
)
6848
IS
6849
   groupid   NUMBER;
6850
/******************************************************************************
6851
   NAME:       ADD_AUTOBUILD_FAILURE
6852
   PURPOSE:
6853
 
6854
   REVISIONS:
6855
   Ver        Date        Author           Description
6856
   ---------  ----------  ---------------  ------------------------------------
6857
   1.0        11/04/2006   Rupesh Solanki Created this procedure.
6858
 
6859
   NOTES:
6860
 
6861
   Automatically available Auto Replace Keywords:
6862
      Object Name:     ADD_AUTOBUILD_FAILURE
6863
      Sysdate:         11/04/2006
6864
      Date and Time:   11/04/2006, 9:28:28 AM, and 11/04/2006 9:28:28 AM
6865
      Username:         (set in TOAD Options, Procedure Editor)
6866
      Table Name:       (set in the "New PL/SQL Object" dialog)
6867
 
6868
******************************************************************************/
6869
BEGIN
6870
   BEGIN
6871
      SELECT group_email_id
6872
        INTO groupid
6873
        FROM autobuild_failure
6874
       WHERE proj_id = nprojid AND view_id = nviewid;
6875
   EXCEPTION
6876
      WHEN NO_DATA_FOUND
6877
      THEN
6878
         --  Create Next Sequence Id ---
6879
         SELECT seq_group_email_id.NEXTVAL
6880
           INTO groupid
6881
           FROM DUAL;
6882
 
6883
         INSERT INTO autobuild_failure
6884
                     (group_email_id, proj_id, view_id
6885
                     )
6886
              VALUES (groupid, nprojid, nviewid
6887
                     );
6888
   END;
6889
 
6890
   add_view_members (groupid, suserlist);
6891
END add_autobuild_failure_info;
6892
/
6893
 
6894
CREATE OR REPLACE PROCEDURE Update_Package_States ( NNrtag_id IN NUMBER,
6895
                                                    NNsession_num IN NUMBER ) IS
6896
/* ---------------------------------------------------------------------------
6897
    Version: 3.0.0
6898
   --------------------------------------------------------------------------- */
6899
 
6900
/* =============  STATE RULES =================== */
6901
/*
6902
   MNR   MRR   MN   MR    |   pkg_state
6903
   ------------------------------------
6904
 
6905
 
6906
 
6907
 
6908
   ------------------------------------
6909
 
6910
 
6911
 
6912
 
6913
   ------------------------------------
6914
    1     0     0     0   |      MINOR_READY
6915
    1     0     0     1   |      MAJOR
6916
    1     0     1     0   |      MINOR
6917
    1     0     1     1   |      MAJOR
6918
   ------------------------------------
6919
    1     1     0     0   |      MAJOR_READY
6920
    1     1     0     1   |      MAJOR
6921
    1     1     1     0   |      MAJOR
6922
    1     1     1     1   |      MAJOR
6923
   ------------------------------------
6924
*/
6925
 
6926
BEGIN
6927
    /*----------------------------------------------
6928
    ||              MINOR READY
6929
    */----------------------------------------------
6930
 
6931
    UPDATE release_content
6932
       SET pkg_state = 4
6933
     WHERE rtag_id = NNrtag_id
6934
       AND pv_id IN
6935
           (
6936
           SELECT DISTINCT pv_id
6937
           FROM temp_env_states
6938
           WHERE session_num = NNsession_num
6939
             AND level_num = 1
6940
             AND tes_state = 2
6941
           );
6942
 
6943
    /*----------------------------------------------
6944
    ||              MAJOR READY
6945
    */----------------------------------------------
6946
    UPDATE release_content
6947
       SET pkg_state = 3
6948
     WHERE rtag_id = NNrtag_id
6949
       AND pv_id IN
6950
           (
6951
           SELECT DISTINCT pv_id
6952
           FROM temp_env_states
6953
           WHERE session_num = NNsession_num
6954
             AND level_num = 1
6955
             AND tes_state IN (0,1)
6956
           );
6957
 
6958
    /*----------------------------------------------
6959
    ||                MINOR
6960
    */----------------------------------------------
6961
    UPDATE release_content
6962
       SET pkg_state = 2
6963
     WHERE rtag_id = NNrtag_id
6964
       AND pv_id IN
6965
           (
6966
           SELECT DISTINCT pv_id
6967
            FROM temp_env_states
6968
            WHERE session_num = NNsession_num
6969
              AND level_num >= 2
6970
              AND tes_state = 2
6971
            MINUS
6972
           SELECT pv_id
6973
             FROM release_content
6974
            WHERE rtag_id = NNrtag_id
6975
              AND pkg_state = 3
6976
           );
6977
 
6978
    /*----------------------------------------------
6979
    ||                MAJOR
6980
    */----------------------------------------------
6981
    UPDATE release_content
6982
       SET pkg_state = 1
6983
     WHERE rtag_id = NNrtag_id
6984
       AND pv_id IN
6985
           (
6986
           SELECT DISTINCT pv_id
6987
           FROM temp_env_states
6988
           WHERE session_num = NNsession_num
6989
             AND level_num >= 2
6990
             AND tes_state IN (0,1)
6991
           /* MAJOR EXCEPTION - When package has Major Ready and Minor */
6992
           UNION
6993
           SELECT DISTINCT tes.pv_id
6994
           FROM temp_env_states tes,
6995
                release_content rc
6996
           WHERE tes.session_num = NNsession_num
6997
             AND tes.level_num >= 2
6998
             AND tes.tes_state = 2
6999
             AND rtag_id = NNrtag_id
7000
             AND rc.pv_id = tes.pv_id
7001
             AND rc.pkg_state = 3
7002
           );
7003
 
7004
    /*----------------------------------------------
7005
    ||                 OK
7006
    */----------------------------------------------
7007
    UPDATE release_content
7008
       SET pkg_state = 0
7009
     WHERE rtag_id = NNrtag_id
7010
       AND pv_id IN
7011
           (
7012
           SELECT rc.pv_id
7013
             FROM release_content rc
7014
            WHERE rc.rtag_id = NNrtag_id
7015
              AND NOT rc.pv_id IN
7016
                    (
7017
                     SELECT DISTINCT pv_id
7018
                     FROM temp_env_states WHERE session_num = NNsession_num
7019
                    )
7020
           );
7021
 
7022
END Update_Package_States;
7023
/
7024
 
7025
CREATE OR REPLACE function 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;
7026
/
7027
 
7028
CREATE OR REPLACE TYPE "RELMGR_VARCHAR2_TAB_T"                                                                          as TABLE of VARCHAR2(4000)
7029
/
7030
 
7031
CREATE OR REPLACE PROCEDURE CHANGE_RELEASE_MODE ( nModeCode IN NUMBER, nRtagId IN NUMBER, UserId IN NUMBER ) IS
7032
/* ---------------------------------------------------------------------------
7033
    Version: 3.0.0
7034
   --------------------------------------------------------------------------- */
7035
 
7036
 cMode CHAR(1) := NULL;  
7037
 nProjId NUMBER; 
7038
 
7039
BEGIN
7040
 
7041
 
7042
 /*
7043
 Author: Rupesh Solanki
7044
 Modified: 24th October 2006
7045
 Reason: Added the archive mode state into Release Manager 
7046
 || 1 - Open Mode
7047
 || 2 - Restrictive Mode
7048
 || 3 - Closed Mode
7049
 || 4 - CCB Mode
7050
 || 5 - Archive Mode
7051
 */ 
7052
 -- Get project Id
7053
 SELECT rt.PROJ_ID INTO nProjId
7054
   FROM RELEASE_TAGS rt
7055
  WHERE rt.RTAG_ID = nRtagId; 
7056
 
7057
 IF nModeCode = 1 THEN
7058
  -- Open Mode
7059
  cMode := 'N';
7060
 
7061
  /* LOG ACTION */
7062
     Log_Project_Action ( nProjId, 'set_to_open_mode', UserId, 'Release is set to Open Mode', nRtagId );
7063
 
7064
 ELSIF nModeCode = 2 THEN
7065
  -- Restrictive Mode
7066
  cMode := 'R';
7067
 
7068
  /* LOG ACTION */
7069
     Log_Project_Action ( nProjId, 'set_to_restrictive_mode', UserId, 'Release is set to Restrictive Mode', nRtagId );
7070
 
7071
 ELSIF nModeCode = 3 THEN
7072
  -- Closed Mode
7073
  cMode := 'Y';
7074
 
7075
  /* LOG ACTION */
7076
     Log_Project_Action ( nProjId, 'set_to_closed_mode', UserId, 'Release is set to Closed Mode', nRtagId  );
7077
 
7078
 ELSIF nModeCode = 4 THEN
7079
  -- CCB Mode
7080
  cMode := 'C';
7081
 
7082
  /* LOG ACTION */
7083
     Log_Project_Action ( nProjId, 'set_to_ccb_mode', UserId, 'Release is set to CCB Mode', nRtagId  );
7084
 
7085
 ELSIF nModeCode = 5 THEN
7086
  -- Archive Mode
7087
  cMode := 'A';
7088
 
7089
  /* LOG ACTION */
7090
     Log_Project_Action ( nProjId, 'set_to_archive_mode', UserId, 'Release is set to Archive Mode', nRtagId  ); 
7091
 
7092
 
7093
 END IF;
7094
 
7095
 
7096
 
7097
 -- Now update table
7098
 IF NOT cMode IS NULL THEN
7099
  UPDATE RELEASE_TAGS rt SET
7100
  rt.OFFICIAL = cMode
7101
  WHERE rt.RTAG_ID = nRtagId;
7102
 
7103
 END IF;
7104
 
7105
 
7106
END CHANGE_RELEASE_MODE;
7107
/
7108
 
7109
CREATE OR REPLACE PROCEDURE Remove_Document ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
7110
             nDocId IN PACKAGE_DOCUMENTS.DOC_ID%TYPE,
7111
                                              nUserId IN NUMBER ) IS
7112
/* ---------------------------------------------------------------------------
7113
    Version: 3.0
7114
   --------------------------------------------------------------------------- */
7115
 
7116
   DocNumber PACKAGE_DOCUMENTS.DOC_NUM%TYPE;
7117
 
7118
BEGIN
7119
 
7120
 -- Get Doc Num
7121
    SELECT pd.DOC_NUM INTO DocNumber
7122
      FROM PACKAGE_DOCUMENTS pd
7123
     WHERE pd.PV_ID = nPvId
7124
       AND pd.DOC_ID = nDocId;
7125
 
7126
 
7127
 -- Delete Document
7128
    DELETE
7129
      FROM PACKAGE_DOCUMENTS pd
7130
     WHERE pd.PV_ID = nPvId
7131
       AND pd.DOC_ID = nDocId;
7132
 
7133
 
7134
    /* LOG ACTION */
7135
    Log_Action ( nPvId, 'document_remove', nUserId,
7136
           'Document number: '|| DocNumber );
7137
 
7138
 
7139
END Remove_Document;
7140
/
7141
 
7142
CREATE OR REPLACE PROCEDURE Update_Unit_Test ( nTest_id IN NUMBER,
7143
                     nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,   
7144
              nPv_id IN NUMBER,
7145
              nUserId IN NUMBER,
7146
                                            sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,
7147
              sNumof_test IN UNIT_TESTS.NUMOF_TEST%TYPE,
7148
                                            sCompletion_date IN VARCHAR2,
7149
              sDpkg_path IN VARCHAR2,
7150
              enumTEST_TYPE_AUTOMATIC IN NUMBER,
7151
              sResults IN VARCHAR2,
7152
              outFileName OUT VARCHAR2
7153
                                              ) IS
7154
/* ---------------------------------------------------------------------------
7155
    Version: 3.1.0
7156
   --------------------------------------------------------------------------- */
7157
 
7158
    FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';
7159
 
7160
    ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;
7161
    ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;
7162
 
7163
 
7164
BEGIN
7165
 
7166
       IF nTestTypeId = enumTEST_TYPE_AUTOMATIC THEN
7167
        ResultsURL := sResults;
7168
       ELSE
7169
        IF (sResults <> '') OR ( NOT sResults IS NULL ) THEN
7170
         outFileName := FILENAME_PREFIX || nTest_id ||'_'|| sResults;
7171
      ResultsAttachment := sDpkg_path || '/' || outFileName;
7172
           END IF;
7173
       END IF;
7174
 
7175
 --- Update Unit Test ---
7176
    UPDATE UNIT_TESTS SET
7177
           TEST_SUMMARY = sTest_summary,
7178
     NUMOF_TEST = sNumof_test,
7179
           COMPLETION_DATE = TO_DATE( sCompletion_date,'DD/MM/YYYY' ),
7180
     COMPLETED_BY = nUserId,
7181
     RESULTS_URL = ResultsURL,
7182
     RESULTS_ATTACHMENT_NAME = ResultsAttachment
7183
     WHERE TEST_ID = nTest_id
7184
       AND PV_ID = nPv_id;
7185
 
7186
END Update_Unit_Test;
7187
/
7188
 
7189
CREATE OR REPLACE PROCEDURE Update_Unit_Test_Test ( nTest_id IN NUMBER,
7190
                     nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,   
7191
              nPv_id IN NUMBER,
7192
              nUserId IN NUMBER,
7193
                                            sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,
7194
              sNumof_test IN UNIT_TESTS.NUMOF_TEST%TYPE,
7195
                                            sCompletion_date IN VARCHAR2,
7196
              sDpkg_path IN VARCHAR2,
7197
              enumTEST_TYPE_AUTOMATIC IN NUMBER,
7198
              sResults IN VARCHAR2,
7199
              outFileName OUT VARCHAR2
7200
                                              ) IS
7201
/* ---------------------------------------------------------------------------
7202
    Version: 3.1.0
7203
   --------------------------------------------------------------------------- */
7204
 
7205
    FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';
7206
 
7207
    ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;
7208
    ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;
7209
 
7210
 
7211
BEGIN
7212
 
7213
       IF nTestTypeId = enumTEST_TYPE_AUTOMATIC THEN
7214
        ResultsURL := sResults;
7215
       ELSE
7216
        IF (sResults <> '') OR ( NOT sResults IS NULL ) THEN
7217
         outFileName := FILENAME_PREFIX || nTest_id ||'_'|| sResults;
7218
      ResultsAttachment := sDpkg_path || '/' || outFileName;
7219
           END IF;
7220
       END IF;
7221
 
7222
       /* IF (sResults <> '') OR ( NOT sResults IS NULL ) THEN
7223
         outFileName := FILENAME_PREFIX || newID ||'_'|| sResults;
7224
      sResults_url:= 'doc' || '/' || 
7225
   ;
7226
        END IF;*/
7227
 --- Update Unit Test ---
7228
    UPDATE UNIT_TESTS SET
7229
           TEST_SUMMARY = sTest_summary,
7230
     NUMOF_TEST = sNumof_test,
7231
           COMPLETION_DATE = TO_DATE( sCompletion_date,'DD/MM/YYYY' ),
7232
     COMPLETED_BY = nUserId,
7233
     RESULTS_URL = ResultsURL,
7234
     RESULTS_ATTACHMENT_NAME = ResultsAttachment
7235
     WHERE TEST_ID = nTest_id
7236
       AND PV_ID = nPv_id;
7237
 
7238
END Update_Unit_Test_Test;
7239
/
7240
 
7241
CREATE OR REPLACE PROCEDURE Update_Additional_Note ( pnNote_id IN NUMBER,
7242
              pnPv_id IN NUMBER,
7243
                                                     psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,
7244
                                                     psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,
7245
                                                     pnUser_id IN NUMBER,
7246
                                                     outErrCode OUT NUMBER
7247
                                                    ) IS
7248
/* ---------------------------------------------------------------------------
7249
    Version: 3.0.1
7250
   --------------------------------------------------------------------------- */
7251
 
7252
    newID NUMBER;
7253
 
7254
    /* Disallow duplicate Note Titles */
7255
 CURSOR an_duplicate_cur IS
7256
        SELECT COUNT(*) AS cnt_note
7257
          FROM ADDITIONAL_NOTES
7258
         WHERE pv_id = pnPv_id
7259
           AND note_id != pnNote_id
7260
           AND note_title = psNote_title;
7261
    an_duplicate_rec an_duplicate_cur%ROWTYPE;
7262
 
7263
BEGIN
7264
 outErrCode := -1;  -- Set default return error code to ERROR state
7265
 
7266
 OPEN an_duplicate_cur;
7267
    FETCH an_duplicate_cur INTO an_duplicate_rec;
7268
 
7269
    IF an_duplicate_rec.cnt_note < 1
7270
    THEN
7271
  --- Update Additional Note ---
7272
     UPDATE ADDITIONAL_NOTES SET
7273
         note_title = psNote_title,
7274
         note_body = psNote_body,
7275
         mod_date = Ora_Sysdate,
7276
         mod_user = pnUser_id
7277
         WHERE note_id = pnNote_id
7278
           AND pv_id = pnPv_id;
7279
  outErrCode := 0;  -- Set return to SUCCESS
7280
 END IF;
7281
 
7282
 CLOSE an_duplicate_cur;
7283
END Update_Additional_Note;
7284
/
7285
 
7286
CREATE OR REPLACE PROCEDURE DT_DROPUSEROBJECTBYID ( PARAM_ID IN NUMBER ) AS BEGIN DELETE FROM MICROSOFTDTPROPERTIES WHERE OBJECTID = PARAM_ID; END DT_DROPUSEROBJECTBYID;
7287
/
7288
 
7289
CREATE OR REPLACE FUNCTION ORA_SYSDATE
7290
RETURN DATE
7291
IS
7292
/* ---------------------------------------------------------------------------
7293
    Version: 3.0.0
7294
   --------------------------------------------------------------------------- */
7295
BEGIN
7296
 
7297
    RETURN TO_DATE( TO_CHAR( SYSDATE,'DD-MON-YYYY' ),'DD-MON-YYYY' );
7298
END ORA_SYSDATE;
7299
/
7300
 
7301
CREATE OR REPLACE PROCEDURE Undeprecate_Package (nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
7302
                    nRtagId IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,
7303
                       nPkgId IN DEPRECATED_PACKAGES.PKG_ID%TYPE,
7304
                nUserId IN NUMBER) IS
7305
 
7306
ext VARCHAR2(50);
7307
PvIdList VARCHAR2(32767);
7308
nIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
7309
PvId NUMBER;
7310
sComments VARCHAR2(32767);
7311
 
7312
BEGIN
7313
 
7314
 
7315
 
7316
 --Extract the package extension
7317
 SELECT V_EXT into ext 
7318
 FROM PACKAGE_VERSIONS 
7319
 WHERE PV_ID = nPvId;
7320
 
7321
 --SELECT COMMENTS into sComments 
7322
 --FROM DEPRECATED_PACKAGES
7323
 --WHERE RTAG_ID = nRtagId
7324
 --AND V_EXT = ext
7325
 --AND PKG_ID = nPkgId;
7326
 
7327
 --SELECT PV_ID into PvIdList FROM
7328
 --RELEASE_CONTENT WHERE RTAG_ID = nRtagId
7329
 --AND PKG_STATE = 6
7330
 --AND PV_ID NOT IN nPvId;
7331
 
7332
 
7333
 IF ext IS NOT NULL THEN
7334
       -- Undeprecate Package
7335
       DELETE FROM DEPRECATED_PACKAGES 
7336
    WHERE RTAG_ID = nRtagId 
7337
    AND PKG_ID = nPkgId
7338
    AND V_EXT = ext; 
7339
 
7340
  UPDATE RELEASE_CONTENT 
7341
  SET PKG_ID = NULL, DEPRECATED_STATE = NULL
7342
  WHERE RTAG_ID = nRtagId
7343
  AND PV_ID IN (SELECT PV.PV_ID 
7344
         FROM PACKAGE_VERSIONS PV, PACKAGES PKG
7345
       WHERE PKG.PKG_ID = PV.PKG_ID
7346
       AND PKG.PKG_ID = nPkgId
7347
       AND PV.V_EXT = ext
7348
       UNION
7349
       SELECT DISTINCT
7350
               qry.PV_ID
7351
               FROM (
7352
             SELECT dep.*,
7353
            LEVEL AS LEVEL_NUM
7354
            FROM PACKAGE_DEPENDENCIES dep
7355
          START WITH dep.DPV_ID IN ( nPvId )
7356
         --AND dep.DPV_ID NOT IN ( SELECT PV_ID FROM RELEASE_CONTENT WHERE RTAG_ID = nRtagId AND PKG_STATE = 6 )
7357
         CONNECT BY PRIOR dep.PV_ID = dep.DPV_ID
7358
          ) qry,
7359
         PACKAGES pkg,
7360
         PACKAGE_VERSIONS pv,
7361
         RELEASE_CONTENT rc
7362
          WHERE qry.PV_ID = pv.PV_ID AND pv.PKG_ID = pkg.PKG_ID
7363
         AND rc.RTAG_ID = nRtagId AND rc.PV_ID = qry.PV_ID
7364
 
7365
      );  
7366
 
7367
 ELSE
7368
       -- Undeprecate Package
7369
       DELETE FROM DEPRECATED_PACKAGES 
7370
    WHERE RTAG_ID = nRtagId 
7371
    AND PKG_ID = nPkgId
7372
    AND V_EXT IS NULL; 
7373
 
7374
  UPDATE RELEASE_CONTENT 
7375
  SET PKG_ID = NULL, DEPRECATED_STATE = NULL
7376
  WHERE RTAG_ID = nRtagId
7377
  AND PV_ID IN (SELECT PV.PV_ID 
7378
         FROM PACKAGE_VERSIONS PV, PACKAGES PKG
7379
       WHERE PKG.PKG_ID = PV.PKG_ID
7380
       AND PKG.PKG_ID = nPkgId
7381
       AND PV.V_EXT IS NULL
7382
       UNION
7383
       SELECT DISTINCT
7384
               qry.PV_ID
7385
               FROM (
7386
             SELECT dep.*,
7387
            LEVEL AS LEVEL_NUM
7388
            FROM PACKAGE_DEPENDENCIES dep
7389
          START WITH dep.DPV_ID IN ( nPvId )
7390
         --AND dep.DPV_ID NOT IN ( SELECT PV_ID FROM RELEASE_CONTENT WHERE RTAG_ID = nRtagId AND PKG_STATE = 6 )
7391
         CONNECT BY PRIOR dep.PV_ID = dep.DPV_ID
7392
          ) qry,
7393
         PACKAGES pkg,
7394
         PACKAGE_VERSIONS pv,
7395
         RELEASE_CONTENT rc
7396
          WHERE qry.PV_ID = pv.PV_ID AND pv.PKG_ID = pkg.PKG_ID
7397
         AND rc.RTAG_ID = nRtagId AND rc.PV_ID = qry.PV_ID
7398
 
7399
      );      
7400
 
7401
 END IF;
7402
 
7403
 --IF PvIdList IS NOT NULL THEN
7404
 
7405
  --  nIdCollector := IN_LIST_NUMBER ( PvIdList );
7406
 
7407
  --  FOR i IN 1..nIdCollector.COUNT
7408
  --  LOOP
7409
 --    PvId := nIdCollector(i);
7410
 
7411
 
7412
 
7413
 --  Deprecate_Package (nPvId, nRtagId, nPkgId, sComments, nUserId );
7414
 --  END LOOP;
7415
 --END IF;
7416
 
7417
 Rebuild_environment(nRtagId);    
7418
 
7419
 
7420
 
7421
END Undeprecate_Package;
7422
/
7423
 
7424
CREATE OR REPLACE PROCEDURE Update_Unit_Test_Acceptance ( pnTest_id IN NUMBER,
7425
                pnPv_id IN NUMBER,
7426
                                           sAccepted IN UNIT_TESTS.TEST_ACCEPTED%TYPE,
7427
                sAcceptanceDate IN VARCHAR2,
7428
                sAcceptedBy IN NUMBER,
7429
                                           sReviewComments IN UNIT_TESTS.REVIEW_COMMENTS%TYPE,
7430
                cUpdateAcceptedStateOnly IN CHAR
7431
                                          ) IS
7432
/* ---------------------------------------------------------------------------
7433
    Version: 3.0.0
7434
   --------------------------------------------------------------------------- */
7435
 
7436
 
7437
 
7438
BEGIN
7439
 IF cUpdateAcceptedStateOnly = 'Y'
7440
 THEN
7441
  --- Update Accepted State Only ---
7442
  IF ( sAccepted IS NULL )
7443
  THEN
7444
   -- Clear alleptance
7445
   UPDATE UNIT_TESTS SET
7446
             TEST_ACCEPTED = NULL,
7447
             ACCEPTANCE_DATE = NULL,
7448
       ACCEPTED_BY = NULL,
7449
       REVIEW_COMMENTS = NULL
7450
       WHERE TEST_ID = pnTest_id
7451
         AND PV_ID = pnPv_id;
7452
 
7453
     ELSE
7454
   UPDATE UNIT_TESTS SET
7455
             TEST_ACCEPTED = sAccepted,
7456
             ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),
7457
       ACCEPTED_BY = sAcceptedBy
7458
       WHERE TEST_ID = pnTest_id
7459
         AND PV_ID = pnPv_id;
7460
 
7461
  END IF;
7462
 
7463
 
7464
 ELSE
7465
  --- Update Unit Test Acceptance ---
7466
     UPDATE UNIT_TESTS SET
7467
            TEST_ACCEPTED = sAccepted,
7468
      REVIEW_COMMENTS = sReviewComments,
7469
            ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),
7470
      ACCEPTED_BY = sAcceptedBy
7471
      WHERE TEST_ID = pnTest_id
7472
        AND PV_ID = pnPv_id;
7473
 
7474
 END IF;
7475
 
7476
END Update_Unit_Test_Acceptance;
7477
/
7478
 
7479
CREATE OR REPLACE PROCEDURE New_Version ( NNorig_pv_id IN NUMBER,
7480
                                          SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE DEFAULT NULL,
7481
                                          NNsetto_pv_id IN NUMBER DEFAULT NULL,
7482
                                          NNrtag_id IN NUMBER,
7483
                                          NNuser_id IN NUMBER,
7484
                                          enumISSUES_STATE_IMPORTED IN NUMBER,
7485
                                          retPv_id OUT NUMBER ) IS
7486
 
7487
 
7488
  TO BE REMOVED   !!!            
7489
 
7490
 
7491
 
7492
 
7493
/* ---------------------------------------------------------------------------
7494
    Version: 3.3
7495
   --------------------------------------------------------------------------- */
7496
 
7497
    ReleaseLocation VARCHAR2(4000);
7498
    origPkg_id PACKAGE_VERSIONS.pkg_id%TYPE;
7499
    origDlocked PACKAGE_VERSIONS.dlocked%TYPE;
7500
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
7501
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
7502
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
7503
    nIssuesTypes NUMBER;
7504
 
7505
    CURSOR package_versions_cur IS
7506
        SELECT pv.pv_id, pv.is_patch
7507
          FROM PACKAGE_VERSIONS pv
7508
         WHERE pv.pkg_version = SSpkg_version
7509
           AND pv.pkg_id IN ( SELECT DISTINCT origpv.pkg_id FROM PACKAGE_VERSIONS origpv WHERE origpv.pv_id = NNorig_pv_id );
7510
    package_versions_rec package_versions_cur%ROWTYPE;
7511
 
7512
    CURSOR clone_package_versions_cur IS
7513
        SELECT DISTINCT pkg_id, dlocked FROM PACKAGE_VERSIONS WHERE pv_id = NNorig_pv_id;
7514
    clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
7515
 
7516
BEGIN
7517
 IF NNsetto_pv_id IS NULL
7518
    THEN
7519
  -- SetToPv_id is not supplied, hence proceed.
7520
 
7521
     /* ---------------------------------------------------- */
7522
     /* Find id package_version exists                       */
7523
     /* ---------------------------------------------------- */
7524
 
7525
     OPEN package_versions_cur;
7526
     FETCH package_versions_cur INTO package_versions_rec;
7527
 
7528
     IF package_versions_cur%NOTFOUND
7529
     THEN
7530
         SELECT SEQ_PV_ID.NEXTVAL INTO retPv_id FROM DUAL;
7531
         Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
7532
 
7533
         OPEN clone_package_versions_cur;
7534
         FETCH clone_package_versions_cur INTO clone_package_versions_rec;
7535
         origPkg_id := clone_package_versions_rec.pkg_id;
7536
         origDlocked := clone_package_versions_rec.dlocked;
7537
         CLOSE clone_package_versions_cur;
7538
 
7539
         -- Clone Package Version Details --
7540
         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,
7541
                                        src_path, pv_description, PV_OVERVIEW, LAST_PV_ID, owner_id, IS_DEPLOYABLE, IS_BUILD_ENV_REQUIRED )
7542
             SELECT retPv_id         AS pv_id,
7543
                    origPkg_id       AS pkg_id,
7544
                    SSpkg_version    AS pkg_version,
7545
                    'N'              AS dlocked,
7546
                    Ora_Sysdate      AS created_stamp,
7547
                    NNuser_id        AS creator_id,
7548
                    Ora_Sysdatetime  AS modified_stamp,
7549
                    NNuser_id        AS modifier_id,
7550
                    SSV_MM           AS V_MM,
7551
                    SSV_NMM          AS V_NMM,
7552
                    SSV_EXT          AS V_EXT,
7553
                    pv.src_path,
7554
                    pv.pv_description,
7555
                       pv.PV_OVERVIEW,
7556
                       NNorig_pv_id  AS LAST_PV_ID,
7557
                    pv.owner_id,
7558
        pv.IS_DEPLOYABLE,
7559
        pv.IS_BUILD_ENV_REQUIRED
7560
               FROM PACKAGE_VERSIONS pv
7561
              WHERE pv.pv_id = NNorig_pv_id;
7562
 
7563
 
7564
         -- Set Issues Type for cloning ---
7565
         IF origDlocked = 'Y'
7566
         THEN
7567
             nIssuesTypes := enumISSUES_STATE_IMPORTED;
7568
         ELSE
7569
             nIssuesTypes := NULL;
7570
         END IF;
7571
 
7572
   Basic_Clone ( NNorig_pv_id, retPv_id, NNrtag_id, NNuser_id, origPkg_id, nIssuesTypes );
7573
 
7574
 
7575
 
7576
     ELSE
7577
         retPv_id := package_versions_rec.pv_id;
7578
 
7579
     END IF;
7580
 
7581
        CLOSE package_versions_cur;
7582
 
7583
 ELSE
7584
     retPv_id := NNsetto_pv_id;
7585
    END IF;
7586
 
7587
 
7588
    /* ---------------------------------------------------- */
7589
    /* Insert into Release Contents (EXCLUDE PATCHES)       */
7590
    /* ---------------------------------------------------- */
7591
 IF (package_versions_rec.is_patch != 'Y') OR (package_versions_rec.is_patch IS NULL) THEN
7592
     UPDATE RELEASE_CONTENT
7593
        SET pv_id = retPv_id,
7594
            insert_stamp = Ora_Sysdate,
7595
            insertor_id = NNuser_id
7596
      WHERE rtag_id = NNrtag_id
7597
        AND pv_id = NNorig_pv_id;
7598
 
7599
        /* LOG ACTION */
7600
        SELECT proj.PROJ_NAME ||' / '|| vt.VTREE_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
7601
    FROM PROJECTS proj,
7602
        VTREES vt,
7603
         RELEASE_TAGS rt
7604
   WHERE rt.VTREE_ID = vt.VTREE_ID
7605
     AND vt.PROJ_ID = proj.PROJ_ID
7606
     AND rt.RTAG_ID = NNrtag_id;
7607
 
7608
        Log_Action ( NNorig_pv_id, 'replaced_with', NNuser_id, 'Replacing version: '|| SSpkg_version ||' at '|| ReleaseLocation );
7609
     Log_Action ( retPv_id, 'add', NNuser_id, 'Location: '|| ReleaseLocation );
7610
 
7611
 END IF;
7612
 
7613
 
7614
END New_Version;
7615
/
7616
 
7617
CREATE OR REPLACE PROCEDURE Reset_Ignore_Warnings ( sPvIdList IN VARCHAR2,
7618
                                                    nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS
7619
/* ---------------------------------------------------------------------------
7620
    Version: 5.0
7621
   --------------------------------------------------------------------------- */
7622
 
7623
oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
7624
 
7625
BEGIN
7626
 oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
7627
 
7628
    -- Remove Ignore Warnings
7629
     DELETE
7630
       FROM ignore_warnings
7631
   WHERE (rtag_id, pv_id, dpv_id) IN
7632
      (
7633
       SELECT igw.rtag_id, igw.pv_id, igw.dpv_id
7634
         FROM ignore_warnings igw,
7635
              package_versions dpv,
7636
              package_versions pv
7637
        WHERE igw.dpv_id = dpv.pv_id
7638
          AND igw.rtag_id = nRTagId
7639
          AND dpv.pkg_id = pv.pkg_id
7640
          AND NVL(dpv.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|')
7641
          AND pv.pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
7642
         );
7643
 
7644
END Reset_Ignore_Warnings;
7645
/
7646
 
7647
CREATE OR REPLACE FUNCTION GET_V_EXT (SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE) RETURN VARCHAR2 IS
7648
 
7649
/* ---------------------------------------------------------------------------
7650
    Version: 3.0.0
7651
   --------------------------------------------------------------------------- */
7652
 
7653
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
7654
    lastDot NUMBER;
7655
 
7656
BEGIN
7657
    lastDot := INSTR (SSpkg_version, '.', -1);
7658
 
7659
    IF ( lastDot > 0 ) AND ( lastDot != LENGTH(SSpkg_version) )
7660
    THEN
7661
        -- YES dot separator found --
7662
        SSV_EXT := SUBSTR (SSpkg_version, lastDot, LENGTH(SSpkg_version)-lastDot+1);
7663
 
7664
        IF IS_VERSION_EXTENSION ( SSV_EXT )
7665
        THEN
7666
            RETURN SSV_EXT;
7667
        ELSE
7668
            RETURN NULL;
7669
        END IF;
7670
 
7671
    ELSE
7672
        -- NO dot separator found --
7673
        RETURN NULL;
7674
    END IF;
7675
 
7676
END GET_V_EXT;
7677
/
7678
 
7679
CREATE OR REPLACE PROCEDURE REMOVE_PACKAGE_INTEREST(nProjId IN PROJECTS.PROJ_ID%TYPE,
7680
                      nPkgId IN PACKAGES.PKG_ID%TYPE,
7681
               nUserId IN NUMBER
7682
                    ) IS
7683
 
7684
/******************************************************************************
7685
   NAME:       REMOVE_PACKAGE_INTEREST
7686
   PURPOSE:    To remove interest in a given package per project
7687
 
7688
   REVISIONS:
7689
   Ver        Date        Author           Description
7690
   ---------  ----------  ---------------  ------------------------------------
7691
   1.0        12/05/2006  Rupesh Solanki      1. Created this procedure.
7692
 
7693
   NOTES:
7694
 
7695
   Automatically available Auto Replace Keywords:
7696
      Object Name:     REMOVE_PACKAGE_INTEREST
7697
      Sysdate:         12/05/2006
7698
      Date and Time:   12/05/2006, 11:28:50 AM, and 12/05/2006 11:28:50 AM
7699
      Username:         (set in TOAD Options, Procedure Editor)
7700
      Table Name:       (set in the "New PL/SQL Object" dialog)
7701
 
7702
******************************************************************************/
7703
BEGIN
7704
 
7705
  --Delete from PACKAGE_INTEREST
7706
  DELETE FROM PACKAGE_INTEREST
7707
  WHERE PROJ_ID = nProjId
7708
  AND PKG_ID = nPkgId
7709
  AND USER_ID = nUserId;
7710
 
7711
END REMOVE_PACKAGE_INTEREST;
7712
/
7713
 
7714
CREATE OR REPLACE PROCEDURE Touch_Release ( nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS
7715
/* ---------------------------------------------------------------------------
7716
    Version: 3.0
7717
   --------------------------------------------------------------------------- */
7718
 
7719
 
7720
BEGIN
7721
 
7722
  -- Touch Release for Rebuild
7723
     UPDATE RELEASE_TAGS rt SET
7724
      rt.REBUILD_ENV = 'Y',
7725
        rt.REBUILD_STAMP = 0
7726
      WHERE rt.RTAG_ID = nRtagId;
7727
 
7728
 COMMIT;   
7729
 
7730
END Touch_Release;
7731
/
7732
 
7733
CREATE OR REPLACE PROCEDURE Update_Runtime_Dependency ( NNpv_id IN RUNTIME_DEPENDENCIES.pv_id%TYPE,
7734
                        NNrtd_id IN RUNTIME_DEPENDENCIES.rtd_id%TYPE,
7735
                        SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
7736
                 SSrtd_url IN RUNTIME_DEPENDENCIES.rtd_url%TYPE,
7737
                 SSrtd_comments IN RUNTIME_DEPENDENCIES.rtd_comments%TYPE,
7738
                 NNuser_id IN NUMBER ) IS
7739
/* ---------------------------------------------------------------------------
7740
    Version: 3.0.1
7741
   --------------------------------------------------------------------------- */
7742
 
7743
    retRTD_ID NUMBER;
7744
 CURSOR rtd_cur IS
7745
     SELECT pv.pkg_version, pkg.pkg_name
7746
    FROM runtime_dependencies rtd,
7747
         package_versions pv,
7748
      packages pkg
7749
   WHERE rtd.rtd_id = pv.pv_id
7750
     AND pv.pkg_id = pkg.pkg_id
7751
     AND rtd.pv_id = NNpv_id
7752
     AND rtd.rtd_id = NNrtd_id;
7753
    rtd_rec rtd_cur%ROWTYPE;
7754
 
7755
 CURSOR old_rtd_cur IS
7756
     SELECT pv.pv_id
7757
    FROM package_versions pv
7758
   WHERE pv.pkg_id IN ( SELECT rtdpv.pkg_id
7759
                FROM package_versions rtdpv
7760
          WHERE rtdpv.pv_id = NNrtd_id )
7761
     AND pv.pkg_version = SSrtd_version;
7762
 old_rtd_rec old_rtd_cur%ROWTYPE;
7763
 
7764
 
7765
BEGIN
7766
 
7767
    -- Get current runtime dependency details
7768
 OPEN rtd_cur;
7769
    FETCH rtd_cur INTO rtd_rec;
7770
 
7771
 
7772
 
7773
 
7774
 IF rtd_rec.pkg_version != SSrtd_version THEN
7775
           -- Version has changed, hence create new runtime dependency --
7776
     /* NOTE: You must create new version as updating just a version will affect
7777
          all packages using this runtime dependency and user does not expect that.
7778
          It is safer to create new version */
7779
  OPEN old_rtd_cur;
7780
  FETCH old_rtd_cur INTO old_rtd_rec;
7781
 
7782
 
7783
  IF old_rtd_cur%NOTFOUND
7784
  THEN
7785
   -- Version not found, hence Create New version --
7786
      Seed_Package_Names_Versions ( rtd_rec.pkg_name, SSrtd_version, NNuser_id, retRTD_ID );
7787
 
7788
   -- Update runtime dependency table --
7789
   UPDATE runtime_dependencies SET
7790
       rtd_id = retRTD_ID,
7791
       rtd_url = SSrtd_url,
7792
       rtd_comments = SSrtd_comments
7793
    WHERE pv_id = NNpv_id
7794
      AND rtd_id = NNrtd_id;
7795
 
7796
  ELSE
7797
   -- Update runtime dependency table --
7798
   UPDATE runtime_dependencies SET
7799
       rtd_id = old_rtd_rec.pv_id,
7800
       rtd_url = SSrtd_url,
7801
       rtd_comments = SSrtd_comments
7802
    WHERE pv_id = NNpv_id
7803
      AND rtd_id = NNrtd_id;
7804
 
7805
  END IF;
7806
 
7807
 
7808
  CLOSE old_rtd_cur;
7809
 
7810
 ELSE
7811
  --  Version has not changed, hence update everithing except version --
7812
  UPDATE runtime_dependencies SET
7813
      rtd_url = SSrtd_url,
7814
      rtd_comments = SSrtd_comments
7815
   WHERE pv_id = NNpv_id
7816
     AND rtd_id = NNrtd_id;
7817
 
7818
 
7819
 
7820
 END IF;
7821
 
7822
 
7823
 CLOSE rtd_cur;
7824
 
7825
END Update_Runtime_Dependency;
7826
/
7827
 
7828
CREATE OR REPLACE PROCEDURE Log_Action ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
7829
           enumActionTypeName IN ACTION_TYPE.NAME%TYPE,
7830
                                         nUserId IN ACTION_LOG.USER_ID%TYPE,
7831
           sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL  ) IS
7832
/* ---------------------------------------------------------------------------
7833
    Version: 3.0
7834
   --------------------------------------------------------------------------- */
7835
 
7836
    ActionTypeId NUMBER;
7837
 
7838
BEGIN
7839
 
7840
    -- Get Action Type FK
7841
    SELECT act.ACTTYPE_ID INTO ActionTypeId
7842
      FROM ACTION_TYPE act
7843
     WHERE act.NAME = enumActionTypeName;
7844
 
7845
 
7846
    INSERT INTO ACTION_LOG ( USER_ID, ACTION_DATETIME, PV_ID, DESCRIPTION, ACTTYPE_ID )
7847
    VALUES ( nUserId, ORA_SYSDATETIME, nPvId, sAdditionalComments, ActionTypeId );
7848
 
7849
 
7850
END Log_Action;
7851
/
7852
 
7853
CREATE OR REPLACE PACKAGE BODY PK_WORK_IN_PROGRESS IS
7854
 
7855
/*
7856
------------------------------
7857
||  Last Modified:  S.Vukovic
7858
||  Modified Date:  2/May/2005
7859
||  Body Version:   1.0
7860
------------------------------
7861
*/
7862
 
7863
 
7864
/*-------------------------------------------------------------------------------------------------------*/
7865
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
7866
 
7867
 oldPvId NUMBER;
7868
 ReleaseLocation VARCHAR2(4000);
7869
 sLocation VARCHAR2(4000) := NULL;
7870
 
7871
 
7872
BEGIN
7873
 /*--------------- Business Rules Here -------------------*/
7874
 /*-------------------------------------------------------*/
7875
 
7876
 BEGIN
7877
  -- Check if Exists in "Work in progress" anywhere in the world, except "Closed mode" releases
7878
  SELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME  INTO sLocation
7879
    FROM WORK_IN_PROGRESS wip,
7880
        RELEASE_TAGS rt,
7881
      PROJECTS proj
7882
   WHERE wip.PV_ID = newPvId
7883
     AND wip.RTAG_ID = rt.RTAG_ID
7884
     AND rt.OFFICIAL != 'Y'
7885
     AND rt.PROJ_ID = proj.PROJ_ID;
7886
 
7887
  EXCEPTION
7888
      WHEN NO_DATA_FOUND THEN
7889
          sLocation := NULL;
7890
 
7891
 END;        
7892
 
7893
 
7894
 
7895
 IF (sLocation IS NULL)  THEN
7896
 
7897
  -- Add to "Work in progress"
7898
  INSERT INTO WORK_IN_PROGRESS ( RTAG_ID, PV_ID, VIEW_ID )
7899
  VALUES( RtagId, newPvId, ViewId );
7900
 
7901
 
7902
     /* LOG ACTION */
7903
  SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
7904
    FROM PROJECTS proj,
7905
        RELEASE_TAGS rt
7906
   WHERE rt.PROJ_ID = proj.PROJ_ID
7907
     AND rt.RTAG_ID = RtagId;
7908
 
7909
  Log_Action ( newPvId, 'work_in_progress', UserId, 'Location: '|| ReleaseLocation );
7910
 
7911
 ELSE
7912
 
7913
  RAISE_APPLICATION_ERROR (-20000, 'This version is already in Work-In-Progress Area at '|| sLocation ||'.' );
7914
 
7915
 END IF;
7916
 
7917
END;
7918
/*-------------------------------------------------------------------------------------------------------*/
7919
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
7920
 
7921
 ReleaseLocation VARCHAR2(4000);
7922
 
7923
BEGIN
7924
 
7925
 /*--------------- Business Rules Here -------------------*/
7926
 /*-------------------------------------------------------*/
7927
 
7928
 
7929
 -- Get release location for logging pusposes
7930
 SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
7931
   FROM PROJECTS proj,
7932
       RELEASE_TAGS rt
7933
  WHERE rt.PROJ_ID = proj.PROJ_ID
7934
    AND rt.RTAG_ID = RtagId;
7935
 
7936
 
7937
 -- Delete from Work In Progress
7938
 DELETE
7939
   FROM WORK_IN_PROGRESS wip
7940
  WHERE wip.RTAG_ID = RtagId
7941
    AND wip.PV_ID = PvId;
7942
 
7943
 Log_Action ( PvId, 'delete_from_wip', UserId, 'Location: '|| ReleaseLocation );
7944
 
7945
 
7946
 
7947
 
7948
END;
7949
/*-------------------------------------------------------------------------------------------------------*/
7950
PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER ) IS
7951
 
7952
 nIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
7953
 ReleaseLocation VARCHAR2(4000);
7954
 PvId NUMBER;
7955
 
7956
BEGIN
7957
 
7958
 /*--------------- Business Rules Here -------------------*/
7959
 IF (PvIdList IS NULL)
7960
 THEN
7961
  RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
7962
 END IF;
7963
 /*-------------------------------------------------------*/
7964
 
7965
 
7966
 nIdCollector := IN_LIST_NUMBER ( PvIdList );
7967
 
7968
 
7969
 -- Get release location for logging pusposes
7970
 SELECT proj.PROJ_NAME  ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
7971
   FROM PROJECTS proj,
7972
       RELEASE_TAGS rt
7973
  WHERE rt.PROJ_ID = proj.PROJ_ID
7974
    AND rt.RTAG_ID = RtagId;
7975
 
7976
 
7977
 FOR i IN 1..nIdCollector.COUNT
7978
 LOOP
7979
  PvId := nIdCollector(i);
7980
 
7981
  -- Delete from Work In Progress
7982
  DELETE
7983
    FROM WORK_IN_PROGRESS wip
7984
   WHERE wip.RTAG_ID = RtagId
7985
     AND wip.PV_ID = PvId;
7986
 
7987
  Log_Action ( PvId, 'remove_from_work_in_progress', UserId, 'Location: '|| ReleaseLocation );
7988
 
7989
 END LOOP;
7990
 
7991
 
7992
END;
7993
/*-------------------------------------------------------------------------------------------------------*/
7994
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
7995
 
7996
 ReturnValue NUMBER;
7997
 
7998
BEGIN
7999
 SELECT wip.VIEW_ID INTO ReturnValue
8000
   FROM WORK_IN_PROGRESS wip
8001
  WHERE wip.RTAG_ID = RtagId
8002
    AND wip.PV_ID = PvId;
8003
 
8004
 RETURN ReturnValue;
8005
END;
8006
/*-------------------------------------------------------------------------------------------------------*/
8007
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
8008
 
8009
 IsBaseView CHAR(1);
8010
 
8011
BEGIN
8012
 
8013
 -- Check if the view is BASE VIEW
8014
 SELECT vi.BASE_VIEW INTO IsBaseView
8015
   FROM VIEWS vi
8016
  WHERE vi.VIEW_ID = ViewId;
8017
 
8018
 IF (IsBaseView = 'Y') THEN 
8019
  -- Get Base view content
8020
  OPEN RecordSet FOR
8021
  SELECT 0 AS PKG_STATE,
8022
      NULL AS DEPRECATED_STATE,
8023
      pv.pv_id, 
8024
      pkg.pkg_name, 
8025
      pv.pkg_version, 
8026
      pv.dlocked, 
8027
      pv.pv_description,
8028
      pv.BUILD_TYPE
8029
    FROM WORK_IN_PROGRESS rel,
8030
         packages pkg,
8031
         package_versions pv
8032
   WHERE pv.pkg_id = pkg.pkg_id
8033
     AND rel.pv_id = pv.pv_id
8034
     AND rel.VIEW_ID = ViewId
8035
     AND rel.RTAG_ID = RtagId
8036
   ORDER BY UPPER(pkg.PKG_NAME);
8037
 
8038
 
8039
 ELSE  
8040
 
8041
   -- Get non base view content
8042
  OPEN RecordSet FOR
8043
  SELECT 0 AS PKG_STATE,
8044
      NULL AS DEPRECATED_STATE,
8045
      pv.pv_id, 
8046
      pkg.pkg_name, 
8047
      pv.pkg_version, 
8048
      pv.dlocked, 
8049
      pv.pv_description,
8050
      pv.BUILD_TYPE
8051
    FROM WORK_IN_PROGRESS rel,
8052
         packages pkg,
8053
         package_versions pv,
8054
      VIEW_DEF vd
8055
   WHERE pv.pkg_id = pkg.pkg_id
8056
     AND rel.pv_id = pv.pv_id
8057
     AND vd.VIEW_ID = ViewId
8058
     AND vd.PKG_ID = pv.PKG_ID
8059
     AND rel.RTAG_ID = RtagId
8060
   ORDER BY UPPER(pkg.PKG_NAME);
8061
 
8062
 
8063
 END IF;   
8064
 
8065
 
8066
END;
8067
/*-------------------------------------------------------------------------------------------------------*/
8068
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
8069
 
8070
BEGIN
8071
 
8072
 UPDATE WORK_IN_PROGRESS wip SET
8073
 wip.VIEW_ID = NewViewId
8074
 WHERE wip.PV_ID = PvId
8075
   AND wip.RTAG_ID = RtagId;
8076
 
8077
END;
8078
/*-------------------------------------------------------------------------------------------------------*/
8079
END PK_WORK_IN_PROGRESS;
8080
/
8081
 
8082
CREATE OR REPLACE PACKAGE BODY pk_package
8083
IS
8084
/*
8085
------------------------------
8086
||  Last Modified:  R. Solanki
8087
||  Modified Date:  09/03/2006
8088
||  Body Version:   1.7
8089
------------------------------
8090
*/
8091
 
8092
   /*-------------------------------------------------------------------------------------------------------*/
8093
   PROCEDURE new_version (
8094
      nlastpvid                   IN       NUMBER,
8095
      snewpkgversion              IN       VARCHAR2 DEFAULT NULL,
8096
      cbuildtype                  IN       CHAR,
8097
      nsettopvid                  IN       NUMBER DEFAULT NULL,
8098
      nrtagid                     IN       NUMBER,
8099
      nuserid                     IN       NUMBER,
8100
      enumissues_state_imported   IN       NUMBER,
8101
      returnpvid                  OUT      NUMBER
8102
   )
8103
   IS
8104
      origpkg_id                   package_versions.pkg_id%TYPE;
8105
      origdlocked                  package_versions.dlocked%TYPE;
8106
      ssv_mm                       package_versions.v_mm%TYPE;
8107
      ssv_nmm                      package_versions.v_nmm%TYPE;
8108
      ssv_ext                      package_versions.v_ext%TYPE;
8109
      spackageversion              VARCHAR2 (4000);
8110
      nissuestypes                 NUMBER;
8111
      nviewid                      NUMBER;
8112
      reccount                     NUMBER;
8113
      isreleased                   package_versions.dlocked%TYPE       := 'N';
8114
      slabel                       VARCHAR2 (4000)                    := NULL;
8115
 
8116
      CURSOR package_versions_cur
8117
      IS
8118
         SELECT pv.pv_id, pv.is_patch, pv.dlocked
8119
           FROM package_versions pv
8120
          WHERE pv.pkg_version = snewpkgversion
8121
            AND pv.pkg_id IN (SELECT DISTINCT origpv.pkg_id
8122
                                         FROM package_versions origpv
8123
                                        WHERE origpv.pv_id = nlastpvid);
8124
 
8125
      package_versions_rec         package_versions_cur%ROWTYPE;
8126
 
8127
      CURSOR clone_package_versions_cur
8128
      IS
8129
         SELECT DISTINCT pkg_id, dlocked
8130
                    FROM package_versions
8131
                   WHERE pv_id = nlastpvid;
8132
 
8133
      clone_package_versions_rec   clone_package_versions_cur%ROWTYPE;
8134
   BEGIN
8135
      spackageversion := snewpkgversion;
8136
 
8137
      IF nsettopvid IS NULL
8138
      THEN
8139
         -- SetToPv_id is not supplied, hence proceed.
8140
 
8141
         /* ---------------------------------------------------- */
8142
/* Find id package_version exists                       */
8143
/* ---------------------------------------------------- */
8144
         OPEN package_versions_cur;
8145
 
8146
         FETCH package_versions_cur
8147
          INTO package_versions_rec;
8148
 
8149
         IF package_versions_cur%NOTFOUND
8150
         THEN
8151
            ---  Create brand new package ---
8152
            SELECT seq_pv_id.NEXTVAL
8153
              INTO returnpvid
8154
              FROM DUAL;
8155
 
8156
            -- Split Version to get extention + other
8157
            split_version (spackageversion, ssv_mm, ssv_nmm, ssv_ext);
8158
 
8159
            -- Get previous package to clone from
8160
            OPEN clone_package_versions_cur;
8161
 
8162
            FETCH clone_package_versions_cur
8163
             INTO clone_package_versions_rec;
8164
 
8165
            origpkg_id := clone_package_versions_rec.pkg_id;
8166
            origdlocked := clone_package_versions_rec.dlocked;
8167
 
8168
            CLOSE clone_package_versions_cur;
8169
 
8170
            -- Automated built config
8171
            IF (cbuildtype = 'A')
8172
            THEN
8173
               spackageversion := '(' || returnpvid || ')' || ssv_ext;
8174
                                    -- Make sure that version is still unique
8175
            END IF;
8176
 
8177
            -- Clone Package Version Details --
8178
            INSERT INTO package_versions
8179
                        (pv_id, pkg_id, pkg_version, dlocked, created_stamp,
8180
                         creator_id, modified_stamp, modifier_id, v_mm, v_nmm,
8181
                         v_ext, src_path, pv_description, pv_overview,
8182
                         last_pv_id, owner_id, is_deployable,
8183
                         is_build_env_required, build_type, bs_id)
8184
               SELECT returnpvid AS pv_id, origpkg_id AS pkg_id,
8185
                      spackageversion AS pkg_version, 'N' AS dlocked,
8186
                      ora_sysdate AS created_stamp, nuserid AS creator_id,
8187
                      ora_sysdatetime AS modified_stamp,
8188
                      nuserid AS modifier_id, ssv_mm AS v_mm,
8189
                      ssv_nmm AS v_nmm, ssv_ext AS v_ext, pv.src_path,
8190
                      pv.pv_description, pv.pv_overview,
8191
                      nlastpvid AS last_pv_id, pv.owner_id, pv.is_deployable,
8192
                      pv.is_build_env_required, cbuildtype, pv.bs_id
8193
                 FROM package_versions pv
8194
                WHERE pv.pv_id = nlastpvid;
8195
 
8196
            -- Set Issues Type for cloning ---
8197
            IF origdlocked = 'Y'
8198
            THEN
8199
               nissuestypes := enumissues_state_imported;
8200
            ELSE
8201
               nissuestypes := NULL;
8202
            END IF;
8203
 
8204
            -- Update Label for automated built
8205
            IF (cbuildtype = 'A')
8206
            THEN
8207
               slabel := get_automated_label (returnpvid);
8208
 
8209
               UPDATE package_versions pv
8210
                  SET pv.pkg_label = slabel
8211
                WHERE pv.pv_id = returnpvid;
8212
            END IF;
8213
 
8214
            basic_clone (nlastpvid,
8215
                         returnpvid,
8216
                         nrtagid,
8217
                         nuserid,
8218
                         origpkg_id,
8219
                         nissuestypes
8220
                        );
8221
         ELSE
8222
            --- Package already exists, hence reuse ---
8223
            returnpvid := package_versions_rec.pv_id;
8224
            isreleased := package_versions_rec.dlocked;
8225
         END IF;
8226
 
8227
         CLOSE package_versions_cur;
8228
      ELSE
8229
         returnpvid := nsettopvid;
8230
      END IF;
8231
   END new_version;
8232
 
8233
/*-------------------------------------------------------------------------------------------------------*/
8234
   PROCEDURE change_state (
8235
      pvid       IN   NUMBER,
8236
      newstate   IN   package_versions.dlocked%TYPE,
8237
      userid     IN   NUMBER
8238
   )
8239
   IS
8240
   BEGIN
8241
      -- Set package in Released mode
8242
      UPDATE package_versions pv
8243
         SET pv.dlocked = newstate,
8244
             pv.modified_stamp = ora_sysdatetime,
8245
             pv.modifier_id = userid
8246
       WHERE pv.pv_id = pvid;
8247
 
8248
      -- Log action --
8249
      IF newstate = 'Y'
8250
      THEN
8251
         -- RELEASED --
8252
         log_action (pvid,
8253
                     'makeofficial',
8254
                     userid,
8255
                     'Package state change to: Released'
8256
                    );
8257
      ELSIF newstate = 'N'
8258
      THEN
8259
         -- UNLOCKED --
8260
         log_action (pvid,
8261
                     'makeunofficial',
8262
                     userid,
8263
                     'Package state change to: Ulocked'
8264
                    );
8265
      ELSIF newstate = 'P'
8266
      THEN
8267
         -- PENDING APPROVAL --
8268
         log_action (pvid,
8269
                     'add_to_planned',
8270
                     userid,
8271
                     'Package state change to: Pending Approval'
8272
                    );
8273
      ELSIF newstate = 'R'
8274
      THEN
8275
         -- REJECTED --
8276
         log_action (pvid,
8277
                     'reject_package',
8278
                     userid,
8279
                     'Package state change to: Rejected'
8280
                    );
8281
      ELSIF newstate = 'A'
8282
      THEN
8283
         -- APPROVED --
8284
         log_action (pvid,
8285
                     'approve_package',
8286
                     userid,
8287
                     'Package state change to: Approved'
8288
                    );
8289
      END IF;
8290
   END;
8291
 
8292
/*-------------------------------------------------------------------------------------------------------*/
8293
   PROCEDURE destroy_package (
8294
      pvid               IN       NUMBER,
8295
      overridewarnings   IN       CHAR DEFAULT 'N',
8296
      problemstring      OUT      VARCHAR2
8297
   )
8298
   IS
8299
      LOCKED     CHAR;
8300
      pkgid      NUMBER;
8301
      ROWCOUNT   NUMBER;
8302
   BEGIN
8303
      /*
8304
      || This will destroy all package details from database.
8305
      || It will only be used to remove unwanted work in progress packages,
8306
      || or mestaken versions
8307
      */
8308
 
8309
      /*--------------- Business Rules Here -------------------*/
8310
      problemstring := NULL;
8311
 
8312
      IF overridewarnings = 'N'
8313
      THEN
8314
         -- Package must not be official
8315
         SELECT pv.dlocked
8316
           INTO LOCKED
8317
           FROM package_versions pv
8318
          WHERE pv.pv_id = pvid;
8319
 
8320
         IF LOCKED = 'Y'
8321
         THEN
8322
            problemstring :=
8323
                  problemstring
8324
               || '- Package is locked and released.'
8325
               || UTL_TCP.crlf;
8326
         END IF;
8327
 
8328
         -- Cannot remove if used in BOMs
8329
         SELECT COUNT (osc.prod_id)
8330
           INTO ROWCOUNT
8331
           FROM deployment_manager.os_contents osc
8332
          WHERE osc.prod_id = pvid;
8333
 
8334
         IF ROWCOUNT > 0
8335
         THEN
8336
            problemstring :=
8337
                  problemstring
8338
               || '- Package is part of Bill-Of-Material (BOM) in Deployment Manager.'
8339
               || UTL_TCP.crlf;
8340
         END IF;
8341
 
8342
         -- Cannot remove if Referenced as build dependency
8343
         SELECT COUNT (dep.pv_id)
8344
           INTO ROWCOUNT
8345
           FROM package_dependencies dep
8346
          WHERE dep.dpv_id = pvid;
8347
 
8348
         IF ROWCOUNT > 0
8349
         THEN
8350
            problemstring :=
8351
                  problemstring
8352
               || '- Package is referenced by other package as build dependency.'
8353
               || UTL_TCP.crlf;
8354
         END IF;
8355
 
8356
         -- Cannot remove if Referenced as runtime dependency
8357
         SELECT COUNT (rd.pv_id)
8358
           INTO ROWCOUNT
8359
           FROM runtime_dependencies rd
8360
          WHERE rd.rtd_id = pvid;
8361
 
8362
         IF ROWCOUNT > 0
8363
         THEN
8364
            problemstring :=
8365
                  problemstring
8366
               || '- Package is referenced by other package as runtime dependency.'
8367
               || UTL_TCP.crlf;
8368
         END IF;
8369
 
8370
         -- Cannot remove if Referenced as patch
8371
         SELECT COUNT (pp.pv_id)
8372
           INTO ROWCOUNT
8373
           FROM package_patches pp
8374
          WHERE pp.patch_id = pvid;
8375
 
8376
         IF ROWCOUNT > 0
8377
         THEN
8378
            problemstring :=
8379
                  problemstring
8380
               || '- Package is used as patch by other package.'
8381
               || UTL_TCP.crlf;
8382
         END IF;
8383
      END IF;
8384
 
8385
/*-------------------------------------------------------*/
8386
      IF (problemstring IS NULL)
8387
      THEN
8388
         --- Remove From Work in Progress
8389
         DELETE FROM work_in_progress wip
8390
               WHERE wip.pv_id = pvid;
8391
 
8392
         --- Remove From Pending
8393
         DELETE FROM planned pl
8394
               WHERE pl.pv_id = pvid;
8395
 
8396
         --- Remove From Released area
8397
         DELETE FROM release_content rc
8398
               WHERE rc.pv_id = pvid;
8399
 
8400
         ---Remove From Package Processes
8401
         DELETE FROM package_processes pp
8402
               WHERE pp.pv_id = pvid;
8403
 
8404
         --- Remove Dependencies
8405
         DELETE FROM package_dependencies dep
8406
               WHERE dep.pv_id = pvid;
8407
 
8408
         DELETE FROM package_dependencies dep
8409
               WHERE dep.dpv_id = pvid;
8410
 
8411
         --- Remove Runtime dependencies
8412
         DELETE FROM runtime_dependencies rtd
8413
               WHERE rtd.pv_id = pvid;
8414
 
8415
         DELETE FROM runtime_dependencies rtd
8416
               WHERE rtd.rtd_id = pvid;
8417
 
8418
         --- Remove components
8419
         DELETE FROM product_components pc
8420
               WHERE pc.pv_id = pvid;
8421
 
8422
         DELETE FROM release_components rc
8423
               WHERE rc.pv_id = pvid;
8424
 
8425
         --- Remove From Notification History
8426
         DELETE FROM notification_history nh
8427
               WHERE nh.pv_id = pvid;
8428
 
8429
         --- Remove From Ignore Warnings
8430
         DELETE FROM ignore_warnings iw
8431
               WHERE iw.pv_id = pvid;
8432
 
8433
         --- Remove From Additional Notes
8434
         DELETE FROM additional_notes an
8435
               WHERE an.pv_id = pvid;
8436
 
8437
         --- Remove From CQ Issues
8438
         DELETE FROM cq_issues cq
8439
               WHERE cq.pv_id = pvid;
8440
 
8441
         --- Remove from Package Patches
8442
         DELETE FROM package_patches pp
8443
               WHERE pp.pv_id = pvid;
8444
 
8445
         DELETE FROM package_patches pp
8446
               WHERE pp.patch_id = pvid;
8447
 
8448
         --- Remove From Package Documents
8449
         DELETE FROM package_documents pd
8450
               WHERE pd.pv_id = pvid;
8451
 
8452
         --- Remove from Code Review
8453
         DELETE FROM code_reviews cr
8454
               WHERE cr.pv_id = pvid;
8455
 
8456
         --- Remove from Unit Tests
8457
         DELETE FROM unit_tests ut
8458
               WHERE ut.pv_id = pvid;
8459
 
8460
         --- Remove from Package BuildEnv
8461
         DELETE FROM package_build_env pbe
8462
               WHERE pbe.pv_id = pvid;
8463
 
8464
         --- Remove from Build Order
8465
         DELETE FROM build_order bo
8466
               WHERE bo.pv_id = pvid;
8467
 
8468
         --- Remove from Note Manager
8469
         DELETE FROM note_manager nm
8470
               WHERE nm.nid = pvid;
8471
 
8472
         --- Remove from Action log
8473
         DELETE FROM action_log al
8474
               WHERE al.pv_id = pvid;
8475
 
8476
		 --- Remove from Do Not Ripple 
8477
		 DELETE FROM DO_NOT_RIPPLE dnr
8478
		 	   WHERE dnr.PV_ID = pvid;
8479
 
8480
		 --- Remove from Jira Issues 
8481
		 DELETE FROM JIRA_ISSUES jira
8482
		 	   WHERE jira.PV_ID = pvid;
8483
 
8484
         --- Finally Remove From Package Versions
8485
         --- Get Package name
8486
         SELECT pv.pkg_id
8487
           INTO pkgid
8488
           FROM package_versions pv
8489
          WHERE pv.pv_id = pvid;
8490
 
8491
         DELETE FROM package_versions pv
8492
               WHERE pv.pv_id = pvid;
8493
 
8494
         --- Remove package name if not used any more
8495
         SELECT COUNT (pv.pv_id)
8496
           INTO ROWCOUNT
8497
           FROM package_versions pv
8498
          WHERE pv.pkg_id = pkgid;
8499
 
8500
         IF ROWCOUNT < 1
8501
         THEN
8502
            DELETE FROM PACKAGES pkg
8503
                  WHERE pkg.pkg_id = pkgid;
8504
         END IF;
8505
      END IF;
8506
   END;
8507
 
8508
/*-------------------------------------------------------------------------------------------------------*/
8509
   PROCEDURE new_patch (
8510
      snewpatchversion   IN       package_versions.pkg_version%TYPE,
8511
      nparentpvid        IN       NUMBER,
8512
      spatchidlist       IN       VARCHAR2,
8513
      nuserid            IN       NUMBER,
8514
      returnpatchid      OUT      NUMBER
8515
   )
8516
   IS
8517
      patchpv_id           NUMBER;
8518
      parpkg_id            NUMBER;
8519
      lastinstallorder     NUMBER;
8520
      ispatchdlocked       package_versions.dlocked%TYPE;
8521
      ssv_mm               package_versions.v_mm%TYPE;
8522
      ssv_nmm              package_versions.v_nmm%TYPE;
8523
      ssv_ext              package_versions.v_ext%TYPE;
8524
      opatchdepcollector   relmgr_number_tab_t      := relmgr_number_tab_t
8525
                                                                          ();
8526
 
8527
      CURSOR parent_cur
8528
      IS
8529
         SELECT pv.*, pkg.pkg_name
8530
           FROM package_versions pv, PACKAGES pkg
8531
          WHERE pv.pv_id = nparentpvid AND pv.pkg_id = pkg.pkg_id;
8532
 
8533
      parent_rec           parent_cur%ROWTYPE;
8534
 
8535
      CURSOR patch_cur
8536
      IS
8537
         SELECT pv.*, pg.pkg_name
8538
           FROM package_versions pv, PACKAGES pg
8539
          WHERE pv.pkg_id = parpkg_id
8540
            AND pv.pkg_version = snewpatchversion
8541
            AND pv.pkg_id = pg.pkg_id;
8542
 
8543
      patch_rec            patch_cur%ROWTYPE;
8544
 
8545
      CURSOR releases_cur
8546
      IS
8547
         SELECT rc.pv_id
8548
           FROM release_content rc
8549
          WHERE rc.pv_id = patch_rec.pv_id;
8550
 
8551
      releases_rec         releases_cur%ROWTYPE;
8552
   BEGIN
8553
      -- Get Last Install Order
8554
      SELECT COUNT (*)
8555
        INTO lastinstallorder
8556
        FROM package_patches pp
8557
       WHERE pp.pv_id = nparentpvid;
8558
 
8559
      -- Get parent details
8560
      OPEN parent_cur;
8561
 
8562
      FETCH parent_cur
8563
       INTO parent_rec;
8564
 
8565
      parpkg_id := parent_rec.pkg_id;
8566
 
8567
      -- Find if patch exists in database
8568
      OPEN patch_cur;
8569
 
8570
      FETCH patch_cur
8571
       INTO patch_rec;
8572
 
8573
      -- Parent must be official
8574
      IF parent_rec.dlocked = 'Y'
8575
      THEN
8576
         IF patch_cur%NOTFOUND
8577
         THEN
8578
            ispatchdlocked := 'N';
8579
 
8580
            -- Create new patch version --
8581
            SELECT seq_pv_id.NEXTVAL
8582
              INTO patchpv_id
8583
              FROM DUAL;
8584
 
8585
            split_version (snewpatchversion, ssv_mm, ssv_nmm, ssv_ext);
8586
 
8587
            INSERT INTO package_versions
8588
                        (pv_id, pkg_id, pkg_version,
8589
                         dlocked, created_stamp, creator_id,
8590
                         modified_stamp, modifier_id, v_mm, v_nmm, v_ext,
8591
                         src_path,
8592
                         pv_description,
8593
                         owner_id, is_patch, last_pv_id, build_type
8594
                        )
8595
                 VALUES (patchpv_id, parpkg_id, snewpatchversion,
8596
                         ispatchdlocked, ora_sysdate, nuserid,
8597
                         ora_sysdatetime, nuserid, ssv_mm, ssv_nmm, ssv_ext,
8598
                         parent_rec.src_path,
8599
                            'This is a patch to '
8600
                         || parent_rec.pkg_name
8601
                         || ' '
8602
                         || parent_rec.pkg_version,
8603
                         nuserid, 'Y', patchpv_id, 'M'
8604
                        );
8605
 
8606
            INSERT INTO package_patches
8607
                        (pv_id, patch_id, install_order)
8608
               (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
8609
                       lastinstallorder + 1 AS install_order
8610
                  FROM package_versions pv
8611
                 WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
8612
 
8613
            /* LOG ACTION */
8614
            log_action (patchpv_id,
8615
                        'new_version',
8616
                        nuserid,
8617
                        'Patch version created: ' || snewpatchversion
8618
                       );
8619
            log_action (nparentpvid,
8620
                        'patch_add',
8621
                        nuserid,
8622
                        'New patch created and attached: ' || snewpatchversion
8623
                       );
8624
         ELSE
8625
            patchpv_id := patch_rec.pv_id;
8626
            ispatchdlocked := patch_rec.dlocked;
8627
 
8628
            -- Find if pv_id exists in release content (i.e. it cannot be a patch)
8629
            OPEN releases_cur;
8630
 
8631
            FETCH releases_cur
8632
             INTO releases_rec;
8633
 
8634
            IF releases_cur%NOTFOUND
8635
            THEN
8636
               -- This pv_id is trully a patch, hence add Y to column IS_PATCH
8637
               UPDATE package_versions
8638
                  SET is_patch = 'Y'
8639
                WHERE pv_id = patchpv_id;
8640
 
8641
               INSERT INTO package_patches
8642
                           (pv_id, patch_id, install_order)
8643
                  (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
8644
                          lastinstallorder + 1 AS install_order
8645
                     FROM package_versions pv
8646
                    WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
8647
            END IF;
8648
 
8649
            CLOSE releases_cur;
8650
 
8651
            /* LOG ACTION */
8652
            log_action (nparentpvid,
8653
                        'patch_add',
8654
                        nuserid,
8655
                           'Patch version was found and attached: '
8656
                        || snewpatchversion
8657
                       );
8658
         END IF;
8659
      END IF;
8660
 
8661
      /* Create Patch Dependencies */
8662
      opatchdepcollector := in_list_number (spatchidlist);
8663
 
8664
      -- Make sure patch is unofficial before altering its dependencies
8665
      IF (opatchdepcollector.COUNT > 0) AND (ispatchdlocked = 'N')
8666
      THEN
8667
         -- Delete Existing Dependencies
8668
         DELETE FROM package_dependencies dep
8669
               WHERE dep.pv_id = patchpv_id;
8670
 
8671
         -- Insert new dependencies
8672
         INSERT INTO package_dependencies
8673
                     (pv_id, dpv_id, pkg_id, dpkg_id, build_type)
8674
            SELECT patchpv_id AS pv_id, pv.pv_id AS dpv_id,
8675
                   parpkg_id AS pkg_id, pv.pkg_id AS dpkg_id,
8676
                   'L' AS build_type
8677
              FROM package_versions pv
8678
             WHERE pv.pv_id IN (
8679
                      SELECT *
8680
                        FROM TABLE
8681
                                (CAST
8682
                                    (opatchdepcollector AS relmgr_number_tab_t)
8683
                                ));
8684
      END IF;
8685
 
8686
      -- Return patch_id
8687
      returnpatchid := patchpv_id;
8688
 
8689
      CLOSE parent_cur;
8690
 
8691
      CLOSE patch_cur;
8692
   EXCEPTION
8693
      WHEN DUP_VAL_ON_INDEX
8694
      THEN
8695
         raise_application_error (-20000,
8696
                                     'Patch version '
8697
                                  || snewpatchversion
8698
                                  || ' already exist.'
8699
                                 );
8700
   END;
8701
 
8702
/*-------------------------------------------------------------------------------------------------------*/
8703
   PROCEDURE obsolete_patch (
8704
      patchid            IN   NUMBER,
8705
      isobsolete         IN   CHAR,
8706
      obsoletecomments   IN   VARCHAR2,
8707
      userid             IN   NUMBER
8708
   )
8709
   IS
8710
   BEGIN
8711
      -- Update patch
8712
      UPDATE package_versions pv
8713
         SET pv.is_obsolete = isobsolete,
8714
             pv.obsolete_comments = obsoletecomments
8715
       WHERE pv.pv_id = patchid;
8716
 
8717
      /*
8718
      -- Update patch children
8719
      UPDATE PACKAGE_VERSIONS pv SET
8720
      pv.IS_OBSOLETE = IsObsolete,
8721
      pv.OBSOLETE_COMMENTS = ObsoleteComments
8722
      WHERE pv.PV_ID IN (
8723
                     SELECT DISTINCT dep.DPV_ID
8724
                       FROM PACKAGE_DEPENDENCIES dep
8725
                      WHERE dep.PV_ID = PatchId
8726
                     );
8727
 
8728
 
8729
      -- Update patch parent
8730
      UPDATE PACKAGE_VERSIONS pv SET
8731
      pv.IS_OBSOLETE = IsObsolete,
8732
      pv.OBSOLETE_COMMENTS = ObsoleteComments
8733
      WHERE pv.PV_ID IN (
8734
                     SELECT DISTINCT dep.PV_ID
8735
                       FROM PACKAGE_DEPENDENCIES dep
8736
                      WHERE dep.DPV_ID = PatchId
8737
                     );
8738
 
8739
         */
8740
 
8741
      /* LOG ACTION */
8742
      IF isobsolete IS NOT NULL
8743
      THEN
8744
         log_action (patchid,
8745
                     'patch_obsolete',
8746
                     userid,
8747
                     'Obsolete patch. ' || obsoletecomments
8748
                    );
8749
      ELSE
8750
         log_action (patchid,
8751
                     'patch_obsolete',
8752
                     userid,
8753
                     'Undo patch obsolete.'
8754
                    );
8755
      END IF;
8756
   END;
8757
 
8758
/*-------------------------------------------------------------------------------------------------------*/
8759
   PROCEDURE obsolete_patches (
8760
      spatchidlist       IN   VARCHAR2,
8761
      isobsolete         IN   CHAR,
8762
      obsoletecomments   IN   VARCHAR2,
8763
      userid             IN   NUMBER
8764
   )
8765
   IS
8766
   BEGIN
8767
      /*--------------- Business Rules Here -------------------*/
8768
      IF spatchidlist IS NULL
8769
      THEN
8770
         raise_application_error (-20000,
8771
                                  'Please select one or more Patches.'
8772
                                 );
8773
      END IF;
8774
 
8775
/*-------------------------------------------------------*/
8776
 
8777
      -- Update patch
8778
      UPDATE package_versions pv
8779
         SET pv.is_obsolete = isobsolete,
8780
             pv.obsolete_comments = obsoletecomments
8781
       WHERE pv.pv_id IN (
8782
                SELECT *
8783
                  FROM THE
8784
                          (SELECT CAST
8785
                                     (in_list_number (spatchidlist) AS relmgr_number_tab_t
8786
                                     )
8787
                             FROM DUAL
8788
                          ));
8789
   /*
8790
   -- Update patch children
8791
   UPDATE PACKAGE_VERSIONS pv SET
8792
   pv.IS_OBSOLETE = IsObsolete,
8793
   pv.OBSOLETE_COMMENTS = ObsoleteComments
8794
   WHERE pv.PV_ID IN (
8795
                  SELECT DISTINCT dep.DPV_ID
8796
                    FROM PACKAGE_DEPENDENCIES dep
8797
                   WHERE dep.PV_ID = PatchId
8798
                  );
8799
 
8800
 
8801
   -- Update patch parent
8802
   UPDATE PACKAGE_VERSIONS pv SET
8803
   pv.IS_OBSOLETE = IsObsolete,
8804
   pv.OBSOLETE_COMMENTS = ObsoleteComments
8805
   WHERE pv.PV_ID IN (
8806
                  SELECT DISTINCT dep.PV_ID
8807
                    FROM PACKAGE_DEPENDENCIES dep
8808
                   WHERE dep.DPV_ID = PatchId
8809
                  );
8810
 
8811
      */
8812
 
8813
   /* LOG ACTION
8814
   IF IsObsolete IS NOT NULL THEN
8815
         Log_Action ( PatchId, 'patch_obsolete', UserId,
8816
                  'Obsolete patch. '|| ObsoleteComments );
8817
   ELSE
8818
      Log_Action ( PatchId, 'patch_obsolete', UserId,
8819
                  'Undo patch obsolete.' );
8820
   END IF;  */
8821
   END;
8822
 
8823
/*-------------------------------------------------------------------------------------------------------*/
8824
   PROCEDURE add_process (
8825
      nprocid         IN   processes.proc_id%TYPE,
8826
      shealthtag      IN   processes.proc_name%TYPE,
8827
      sprocdesc       IN   processes.proc_description%TYPE,
8828
      scmdinterface   IN   processes.run_as%TYPE,
8829
      spkgowner       IN   processes.pkg_owner%TYPE,
8830
      sisinterface    IN   processes.is_interface%TYPE,
8831
      npvid           IN   package_processes.pv_id%TYPE,
8832
      nuserid         IN   NUMBER
8833
   )
8834
   IS
8835
      pkgname   VARCHAR2 (100);
8836
/*Rupesh Release on 17/05/2006*/
8837
   BEGIN
8838
      INSERT INTO processes
8839
                  (proc_id, proc_name, proc_description, run_as, pkg_owner,
8840
                   is_interface
8841
                  )
8842
           VALUES (nprocid, shealthtag, sprocdesc, scmdinterface, spkgowner,
8843
                   sisinterface
8844
                  );
8845
 
8846
      pk_package.add_package_process (nprocid, npvid, nuserid);
8847
   END;
8848
 
8849
/*-------------------------------------------------------------------------------------------------------*/
8850
   PROCEDURE add_package_process (
8851
      nprocidlist   IN   VARCHAR2,
8852
      npvid         IN   package_processes.pv_id%TYPE,
8853
      nuserid       IN   NUMBER
8854
   )
8855
   IS
8856
      processname   VARCHAR2 (4000);
8857
 
8858
/*Rupesh Release on 17/05/2006*/
8859
      CURSOR proc_cur
8860
      IS
8861
         SELECT prc.proc_id
8862
           FROM processes prc
8863
          WHERE prc.proc_id IN (
8864
                   SELECT *
8865
                     FROM THE
8866
                             (SELECT CAST
8867
                                        (in_list_number (nprocidlist) AS relmgr_number_tab_t
8868
                                        )
8869
                                FROM DUAL
8870
                             ));
8871
 
8872
      proc_rec      proc_cur%ROWTYPE;
8873
   BEGIN
8874
      OPEN proc_cur;
8875
 
8876
      FETCH proc_cur
8877
       INTO proc_rec;
8878
 
8879
      WHILE proc_cur%FOUND
8880
      LOOP
8881
         INSERT INTO package_processes
8882
                     (proc_id, pv_id
8883
                     )
8884
              VALUES (proc_rec.proc_id, npvid
8885
                     );
8886
 
8887
         SELECT prc.proc_name
8888
           INTO processname
8889
           FROM processes prc
8890
          WHERE prc.proc_id = proc_rec.proc_id;
8891
 
8892
         -- Log Action --
8893
         log_action (npvid,
8894
                     'process_add',
8895
                     nuserid,
8896
                     'Added process with health tag ' || processname
8897
                    );
8898
 
8899
         FETCH proc_cur
8900
          INTO proc_rec;
8901
      END LOOP;
8902
   END;
8903
 
8904
/*-------------------------------------------------------------------------------------------------------*/
8905
   PROCEDURE remove_process (
8906
      nprocid   IN   package_processes.proc_id%TYPE,
8907
      npvid     IN   package_processes.pv_id%TYPE,
8908
      nuserid   IN   NUMBER
8909
   )
8910
   IS
8911
      processname   VARCHAR2 (4000);
8912
/* Rupesh Release on 17/05/2006*/
8913
   BEGIN
8914
      SELECT prc.proc_name
8915
        INTO processname
8916
        FROM processes prc
8917
       WHERE prc.proc_id = nprocid;
8918
 
8919
      DELETE FROM package_processes
8920
            WHERE proc_id = nprocid AND pv_id = npvid;
8921
 
8922
      -- Log Action --
8923
      log_action (npvid,
8924
                  'process_remove',
8925
                  nuserid,
8926
                  'Removed process with health tag ' || processname
8927
                 );
8928
   END;
8929
/*-------------------------------------------------------------------------------------------------------*/
8930
  /* 
8931
  Author: Rupesh Solanki
8932
  Purpose: To move package versions from one release to another
8933
  Release: 4th September 2006 
8934
 
8935
  */
8936
  PROCEDURE move_package (
8937
   	  npvid  			  IN package_versions.pv_id%TYPE,
8938
	  nrtagid 			  IN release_tags.rtag_id%TYPE,
8939
	  nnewrtagid 		  IN release_tags.rtag_id%TYPE,
8940
	  nuserid			  IN NUMBER	
8941
  )	
8942
  IS	
8943
 
8944
  oldrtag_name VARCHAR2(4000);
8945
  newrtag_name VARCHAR2(4000);
8946
 
8947
 
8948
 
8949
  BEGIN
8950
 
8951
 
8952
  SELECT rtag_name into oldrtag_name
8953
  FROM RELEASE_TAGS
8954
  WHERE rtag_id = nrtagid;
8955
 
8956
  SELECT rtag_name into newrtag_name
8957
  FROM RELEASE_TAGS
8958
  WHERE rtag_id = nnewrtagid;
8959
 
8960
  /* Table Work In Progress*/
8961
  	   UPDATE WORK_IN_PROGRESS
8962
	   SET RTAG_ID = nnewrtagid
8963
	   WHERE RTAG_ID = nrtagid
8964
	   AND PV_ID = npvid;
8965
 
8966
  /* Table PLANNED*/	
8967
  	   UPDATE PLANNED
8968
	   SET RTAG_ID = nnewrtagid
8969
	   WHERE RTAG_ID = nrtagid
8970
	   AND PV_ID = npvid;   
8971
 
8972
      -- Log Action --
8973
      log_action (npvid,
8974
                  'move_package_version',
8975
                  nuserid,
8976
                  'Moved package version from ' || oldrtag_name || ' to ' || newrtag_name
8977
                 );  	   	     
8978
 
8979
 
8980
  END;
8981
 
8982
/*-------------------------------------------------------------------------------------------------------*/
8983
END pk_package;
8984
/
8985
 
8986
CREATE OR REPLACE PACKAGE BODY pk_archive
8987
IS
8988
/*
8989
------------------------------
8990
||  Author:  Rupesh Solanki
8991
||  Date:    26 October 2006
8992
||  Version:   1.0
8993
------------------------------
8994
*/
8995
 
8996
   /*-------------------------------------------------------------------------------------------------------*/
8997
   PROCEDURE restore_and_flush_release_data (
8998
      nrtagid   IN   release_tags.rtag_id%TYPE
8999
   )
9000
   IS
9001
   BEGIN
9002
      /* MIGRATION - PACKAGE_VERSIONS (do not delete the package versions at
9003
      the moment) */
9004
      INSERT INTO release_manager.package_versions
9005
         SELECT *
9006
           FROM package_versions
9007
          WHERE pv_id IN (SELECT pv_id
9008
                            FROM release_content
9009
                           WHERE rtag_id = nrtagid);
9010
 
9011
      /* MIGRATION - DO_NOT_RIPPLE */
9012
      INSERT INTO release_manager.do_not_ripple
9013
         SELECT *
9014
           FROM do_not_ripple dnp
9015
          WHERE pv_id IN (SELECT pv_id
9016
                            FROM release_content
9017
                           WHERE rtag_id = nrtagid);
9018
 
9019
      /* PURGE DATA FROM DO_NOT_RIPPLE */
9020
      DELETE FROM do_not_ripple
9021
            WHERE rtag_id = nrtagid AND pv_id IN (SELECT pv_id
9022
                                                    FROM release_content
9023
                                                   WHERE rtag_id = nrtagid);
9024
 
9025
      /* MIGRATION - PACKAGE_BUILD_ENV */
9026
      INSERT INTO release_manager.package_build_env
9027
         SELECT *
9028
           FROM package_build_env
9029
          WHERE pv_id IN (SELECT pv_id
9030
                            FROM release_content
9031
                           WHERE rtag_id = nrtagid);
9032
 
9033
      /* PURGE DATA FROM PACKAGE_BUILD_ENV */
9034
      DELETE FROM package_build_env
9035
            WHERE pv_id IN (SELECT pv_id
9036
                              FROM release_content
9037
                             WHERE rtag_id = nrtagid);
9038
 
9039
      /* MIGRATION - PACKAGE_BUILD_INFO */
9040
      INSERT INTO release_manager.package_build_info
9041
         SELECT *
9042
           FROM package_build_info
9043
          WHERE pv_id IN (SELECT pv_id
9044
                            FROM release_content
9045
                           WHERE rtag_id = nrtagid);
9046
 
9047
      /* PURGE DATA FROM PACKAGE_BUILD_INFO */
9048
      DELETE FROM package_build_info
9049
            WHERE pv_id IN (SELECT pv_id
9050
                              FROM release_content
9051
                             WHERE rtag_id = nrtagid);
9052
 
9053
 
9054
      /* MIGRATION - UNIT_TESTS  */
9055
      INSERT INTO release_manager.unit_tests
9056
         SELECT *
9057
           FROM unit_tests
9058
          WHERE pv_id IN (SELECT pv_id
9059
                            FROM release_content
9060
                           WHERE rtag_id = nrtagid);
9061
 
9062
      /* PURGE DATA FROM UNIT_TESTS*/
9063
      DELETE FROM unit_tests
9064
            WHERE pv_id IN (SELECT pv_id
9065
                              FROM release_content
9066
                             WHERE rtag_id = nrtagid);
9067
 
9068
      /* MIGRATION - PACKAGE_PROCESSES */
9069
      INSERT INTO release_manager.package_processes
9070
         SELECT *
9071
           FROM package_processes
9072
          WHERE pv_id IN (SELECT pv_id
9073
                            FROM release_content
9074
                           WHERE rtag_id = nrtagid);
9075
 
9076
      /* PURGE DATA FROM PACKAGE_PROCESSES*/
9077
      DELETE FROM package_processes
9078
            WHERE pv_id IN (SELECT pv_id
9079
                              FROM release_content
9080
                             WHERE rtag_id = nrtagid);
9081
 
9082
      /* MIGRATION - PACKAGE_DEPENDENCIES */
9083
      INSERT INTO release_manager.package_dependencies
9084
         SELECT *
9085
           FROM package_dependencies
9086
          WHERE pv_id IN (SELECT pv_id
9087
                            FROM release_content
9088
                           WHERE rtag_id = nrtagid);
9089
 
9090
      /* PURGE DATA FROM PACKAGE_DEPENDENCIES*/
9091
      DELETE FROM package_dependencies
9092
            WHERE pv_id IN (SELECT pv_id
9093
                              FROM release_content
9094
                             WHERE rtag_id = nrtagid);
9095
 
9096
      /* MIGRATION - CODE_REVIEWS */
9097
      INSERT INTO release_manager.code_reviews
9098
         SELECT *
9099
           FROM code_reviews
9100
          WHERE pv_id IN (SELECT pv_id
9101
                            FROM release_content
9102
                           WHERE rtag_id = nrtagid);
9103
 
9104
      /* PURGE DATA FROM CODE_REVIEWS*/
9105
      DELETE FROM code_reviews
9106
            WHERE pv_id IN (SELECT pv_id
9107
                              FROM release_content
9108
                             WHERE rtag_id = nrtagid);
9109
 
9110
      /* MIGRATION - RUNTIME_DEPENDENCIES*/
9111
      INSERT INTO release_manager.runtime_dependencies
9112
         SELECT *
9113
           FROM runtime_dependencies
9114
          WHERE pv_id IN (SELECT pv_id
9115
                            FROM release_content
9116
                           WHERE rtag_id = nrtagid);
9117
 
9118
      /* PURGE DATA FROM RUNTIME_DEPENDENCIES*/
9119
      DELETE FROM runtime_dependencies
9120
            WHERE pv_id IN (SELECT pv_id
9121
                              FROM release_content
9122
                             WHERE rtag_id = nrtagid);
9123
 
9124
      /* MIGRATION - PACKAGE_DOCUMENTS */
9125
      INSERT INTO release_manager.package_documents
9126
         SELECT *
9127
           FROM package_documents
9128
          WHERE pv_id IN (SELECT pv_id
9129
                            FROM release_content
9130
                           WHERE rtag_id = nrtagid);
9131
 
9132
      /* PURGE DATA FROM PACKAGE_DOCUMENTS*/
9133
      DELETE FROM package_documents
9134
            WHERE pv_id IN (SELECT pv_id
9135
                              FROM release_content
9136
                             WHERE rtag_id = nrtagid);
9137
 
9138
      /* MIGRATION - PACKAGE_PATCHES */
9139
      INSERT INTO release_manager.package_patches
9140
         SELECT *
9141
           FROM package_patches
9142
          WHERE pv_id IN (SELECT pv_id
9143
                            FROM release_content
9144
                           WHERE rtag_id = nrtagid);
9145
 
9146
      /* PURGE DATA FROM PACKAGE_PATCHES*/
9147
      DELETE FROM package_patches
9148
            WHERE pv_id IN (SELECT pv_id
9149
                              FROM release_content
9150
                             WHERE rtag_id = nrtagid);
9151
 
9152
      /* MIGRATION - CQ_ISSUES */
9153
      INSERT INTO release_manager.cq_issues
9154
         SELECT *
9155
           FROM cq_issues
9156
          WHERE pv_id IN (SELECT pv_id
9157
                            FROM release_content
9158
                           WHERE rtag_id = nrtagid);
9159
 
9160
      /* PURGE DATA FROM CQ_ISSUES*/
9161
      DELETE FROM cq_issues
9162
            WHERE pv_id IN (SELECT pv_id
9163
                              FROM release_content
9164
                             WHERE rtag_id = nrtagid);
9165
 
9166
      /* MIGRATION - ADDITIONAL_NOTES */
9167
      INSERT INTO release_manager.additional_notes
9168
         SELECT *
9169
           FROM additional_notes
9170
          WHERE pv_id IN (SELECT pv_id
9171
                            FROM release_content
9172
                           WHERE rtag_id = nrtagid);
9173
 
9174
      /* PURGE DATA FROM ADDITIONAL_NOTES*/
9175
      DELETE FROM additional_notes
9176
            WHERE pv_id IN (SELECT pv_id
9177
                              FROM release_content
9178
                             WHERE rtag_id = nrtagid);
9179
 
9180
      /* MIGRATION - RELEASE_COMPONENTS */
9181
      INSERT INTO release_manager.release_components
9182
         SELECT *
9183
           FROM release_components
9184
          WHERE pv_id IN (SELECT pv_id
9185
                            FROM release_content
9186
                           WHERE rtag_id = nrtagid);
9187
 
9188
      /* PURGE DATA FROM RELEASE_COMPONENTS*/
9189
      DELETE FROM release_components
9190
            WHERE pv_id IN (SELECT pv_id
9191
                              FROM release_content
9192
                             WHERE rtag_id = nrtagid);
9193
 
9194
      /* MIGRATION - IGNORE_WARNINGS */
9195
      INSERT INTO release_manager.ignore_warnings
9196
         SELECT *
9197
           FROM ignore_warnings
9198
          WHERE pv_id IN (SELECT pv_id
9199
                            FROM release_content
9200
                           WHERE rtag_id = nrtagid);
9201
 
9202
      /* PURGE DATA FROM IGNORE_WARNINGS*/
9203
      DELETE FROM ignore_warnings
9204
            WHERE pv_id IN (SELECT pv_id
9205
                              FROM release_content
9206
                             WHERE rtag_id = nrtagid);
9207
 
9208
      /* MIGRATION - NOTIFICATION_HISTORY */
9209
      INSERT INTO release_manager.notification_history
9210
         SELECT *
9211
           FROM notification_history
9212
          WHERE pv_id IN (SELECT pv_id
9213
                            FROM release_content
9214
                           WHERE rtag_id = nrtagid);
9215
 
9216
      /* PURGE DATA FROM NOTIFICATION_HISTORY*/
9217
      DELETE FROM notification_history
9218
            WHERE pv_id IN (SELECT pv_id
9219
                              FROM release_content
9220
                             WHERE rtag_id = nrtagid);
9221
 
9222
      /* MIGRATION - BUILD_ORDER   */
9223
      INSERT INTO release_manager.build_order
9224
         SELECT *
9225
           FROM build_order
9226
          WHERE pv_id IN (SELECT pv_id
9227
                            FROM release_content
9228
                           WHERE rtag_id = nrtagid);
9229
 
9230
      /* PURGE DATA FROM BUILD_ORDER*/
9231
      DELETE FROM build_order
9232
            WHERE pv_id IN (SELECT pv_id
9233
                              FROM release_content
9234
                             WHERE rtag_id = nrtagid);
9235
 
9236
      /* PURGE DATA FROM WORK_IN_PROGRESS 
9237
      DELETE FROM work_in_progress
9238
            WHERE rtag_id = nrtagid;*/
9239
 
9240
      /* PURGE DATA FROM PLANNED 
9241
      DELETE FROM planned
9242
            WHERE rtag_id = nrtagid;*/
9243
 
9244
      /* MIGRATION - JIRA_ISSUES */
9245
      INSERT INTO release_manager.jira_issues
9246
         SELECT *
9247
           FROM jira_issues
9248
          WHERE pv_id IN (SELECT pv_id
9249
                            FROM release_content
9250
                           WHERE rtag_id = nrtagid);
9251
 
9252
      /* PURGE DATA FROM JIRA_ISSUES*/
9253
      DELETE FROM jira_issues
9254
            WHERE pv_id IN (SELECT pv_id
9255
                              FROM release_content
9256
                             WHERE rtag_id = nrtagid);
9257
 
9258
      /* MIGRATION - PRODUCT_COMPONENTS */
9259
      INSERT INTO release_manager.product_components
9260
         SELECT *
9261
           FROM product_components
9262
          WHERE pv_id IN (SELECT pv_id
9263
                            FROM release_content
9264
                           WHERE rtag_id = nrtagid);
9265
 
9266
      /* PURGE DATA FROM PRODUCT_COMPONENTS*/
9267
      DELETE FROM product_components
9268
            WHERE pv_id IN (SELECT pv_id
9269
                              FROM release_content
9270
                             WHERE rtag_id = nrtagid);
9271
 
9272
      /* MIGRATION - ACTION_LOG */
9273
      INSERT INTO release_manager.action_log
9274
         SELECT *
9275
           FROM action_log
9276
          WHERE pv_id IN (SELECT pv_id
9277
                            FROM release_content
9278
                           WHERE rtag_id = nrtagid);
9279
 
9280
      /* PURGE DATA FROM ACTION_LOG*/
9281
      DELETE FROM action_log
9282
            WHERE pv_id IN (SELECT pv_id
9283
                              FROM release_content
9284
                             WHERE rtag_id = nrtagid);
9285
 
9286
      /* MIGRATION - PROJECT_ACTION_LOG */
9287
      INSERT INTO release_manager.project_action_log
9288
         SELECT *
9289
           FROM project_action_log
9290
          WHERE rtag_id = nrtagid;
9291
 
9292
      /* PURGE DATA FROM PROJECT_ACTION_LOG */
9293
      DELETE FROM project_action_log
9294
            WHERE rtag_id = nrtagid;
9295
 
9296
      /* MIGRATION - DEPRECATED_PACKAGES */
9297
      INSERT INTO release_manager.deprecated_packages
9298
         SELECT *
9299
           FROM deprecated_packages
9300
          WHERE rtag_id = nrtagid;
9301
 
9302
      /* PURGE DATA FROM DEPRECATED_PACKAGES */
9303
      DELETE FROM deprecated_packages
9304
            WHERE rtag_id = nrtagid;
9305
 
9306
      /* MIGRATION - RELEASE_CONTENT */
9307
      INSERT INTO release_manager.release_content
9308
         SELECT *
9309
           FROM release_content
9310
          WHERE rtag_id = nrtagid;
9311
 
9312
      /* PURGE DATA FROM PACKAGE_VERSIONS (delete package versions now as 
9313
      all child records wiped out)*/
9314
      DELETE FROM package_versions
9315
            WHERE pv_id IN (SELECT pv_id
9316
                              FROM release_content
9317
                             WHERE rtag_id = nrtagid);
9318
 
9319
      /* PURGE DATA FROM RELEASE_CONTENT*/
9320
      DELETE FROM release_content
9321
            WHERE rtag_id = nrtagid;
9322
 
9323
      /* PURGE DATA FROM RELEASE_TAGS*/
9324
      DELETE FROM release_tags
9325
            WHERE rtag_id = nrtagid;
9326
 
9327
 
9328
   END;
9329
 
9330
/*-------------------------------------------------------------------------------------------------------*/
9331
   PROCEDURE write_action_log (
9332
      nuserid   IN   NUMBER,
9333
      nrtagid   IN   release_tags.rtag_id%TYPE
9334
   )
9335
   IS
9336
   BEGIN
9337
      /* Write Action Log Information */
9338
      INSERT INTO release_manager.archive_action_log
9339
                  (user_id, date_time_stamp, rtag_id,
9340
                   description
9341
                  )
9342
           VALUES (nuserid, ora_sysdatetime, nrtagid,
9343
                   'Release has been restored to the RELEASE_MANAGER schema'
9344
                  );
9345
   END;
9346
/*-------------------------------------------------------------------------------------------------------*/
9347
END pk_archive;
9348
/
9349
 
9350
CREATE OR REPLACE PACKAGE BODY PK_APP_UTILS IS
9351
 
9352
/*
9353
------------------------------
9354
||  Last Modified:  S.Vukovic
9355
||  Modified Date:  26/Apr/2005
9356
||  Body Version:   1.0
9357
------------------------------
9358
*/
9359
 
9360
 
9361
/*-------------------------------------------------------------------------------------------------------*/
9362
PROCEDURE GET_CURRENT_PARAMETERS ( ProjId IN VARCHAR2, RtagId IN VARCHAR2, records OUT typeCur)   IS
9363
 
9364
 
9365
BEGIN
9366
 
9367
 
9368
 IF (NOT RtagId IS NULL) THEN
9369
  -- Case with RTAG_ID present
9370
  OPEN records FOR
9371
  SELECT rt.PROJ_ID,
9372
      rt.RTAG_ID AS RTAG_ID
9373
    FROM RELEASE_TAGS rt
9374
   WHERE rt.RTAG_ID = TO_NUMBER(RtagId);
9375
 
9376
 ELSIF (NOT ProjId IS NULL) THEN
9377
  -- Case with PROJ_ID present
9378
  OPEN records FOR
9379
  SELECT TO_NUMBER(ProjId) AS PROJ_ID,
9380
      -1 AS RTAG_ID
9381
    FROM DUAL;
9382
 
9383
 ELSE
9384
  -- Case with none present
9385
  OPEN records FOR
9386
  SELECT -1 AS PROJ_ID,
9387
      -1 AS RTAG_ID
9388
    FROM DUAL;
9389
 
9390
 END IF;
9391
 
9392
 
9393
 
9394
 
9395
    --RETURN records;
9396
 
9397
END;
9398
/*-------------------------------------------------------------------------------------------------------*/
9399
END PK_APP_UTILS;
9400
/
9401
 
9402
CREATE OR REPLACE PACKAGE BODY PK_BUILDAPI IS
9403
 
9404
/*
9405
------------------------------
9406
||  Last Modified:  S.Vukovic
9407
||  Modified Date:  30/Mar/2005
9408
||  Body Version:   1.0
9409
------------------------------
9410
*/
9411
 
9412
 
9413
/*-------------------------------------------------------------------------------------------------------*/
9414
PROCEDURE Add_Product_Component ( nPvId IN NUMBER,
9415
          sOsName IN VARCHAR2,
9416
          sOrigFilePath IN VARCHAR2,
9417
          sFileName IN VARCHAR2,
9418
          sDestFilePath IN VARCHAR2,
9419
          nByteSize IN NUMBER,
9420
          sCRCcksum IN VARCHAR2 ) IS
9421
 
9422
 nOsId NUMBER;
9423
 
9424
BEGIN
9425
 /*--------------- Business Rules Here -------------------*/
9426
 -- OS Name Requirements --
9427
 IF (sOsName IS NULL) THEN
9428
  RAISE_APPLICATION_ERROR (-20000, 'OsName cannot be NULL.');
9429
 END IF;
9430
 
9431
 
9432
 -- File Requirements --
9433
 IF (NOT sFileName IS NULL) THEN
9434
 
9435
  IF (nByteSize IS NULL) THEN
9436
   RAISE_APPLICATION_ERROR (-20000, 'Byte Size cannot be NULL.');
9437
 
9438
  ELSIF (sCRCcksum IS NULL) THEN
9439
   RAISE_APPLICATION_ERROR (-20000, 'CRC CKSUM cannot be NULL.');
9440
 
9441
  END IF;
9442
 
9443
 END IF;
9444
 
9445
 
9446
 -- Folder Requirements --
9447
 -- No requirements for now.
9448
 
9449
 /*-------------------------------------------------------*/
9450
 
9451
 -- Get OsId
9452
 nOsId := Get_OsId ( sOsName );
9453
 
9454
 
9455
 -- Insert component entry
9456
 INSERT INTO PRODUCT_COMPONENTS ( PV_ID, OS_ID, FILE_PATH, FILE_NAME, DESTINATION_PATH, BYTE_SIZE, CRC_CKSUM )
9457
    VALUES (
9458
     nPvId,
9459
     nOsId,
9460
     sOrigFilePath,
9461
     sFileName,
9462
     sDestFilePath,
9463
     nByteSize,
9464
     sCRCcksum
9465
   );
9466
 
9467
 
9468
 EXCEPTION
9469
    WHEN DUP_VAL_ON_INDEX
9470
 THEN
9471
  RAISE_APPLICATION_ERROR (-20000, 'Cannot have duplicate product components.');
9472
 
9473
END;
9474
/*-------------------------------------------------------------------------------------------------------*/
9475
PROCEDURE Remove_All_Product_Components ( nPvId IN NUMBER, sOsName IN VARCHAR2 ) IS
9476
 
9477
 nOsId NUMBER;
9478
 
9479
BEGIN
9480
 /*--------------- Business Rules Here -------------------*/
9481
 /*-------------------------------------------------------*/
9482
 
9483
 -- Get OsId
9484
 nOsId := Get_OsId ( sOsName );
9485
 
9486
 
9487
 -- Delete component entry
9488
 DELETE
9489
   FROM PRODUCT_COMPONENTS pc
9490
  WHERE pc.PV_ID = nPvId
9491
    AND pc.OS_ID = nOsId;
9492
 
9493
 
9494
END;
9495
/*-------------------------------------------------------------------------------------------------------*/
9496
FUNCTION Get_OsId ( sOsName IN VARCHAR2 ) RETURN NUMBER IS
9497
 Code NUMBER;
9498
 
9499
BEGIN
9500
 
9501
 -- Get Platform Code --
9502
 SELECT pf.CODE INTO Code
9503
   FROM PLATFORMS pf
9504
  WHERE UPPER( pf.NAME ) = UPPER( sOsName );
9505
 
9506
 
9507
 RETURN Code;    
9508
 
9509
 EXCEPTION
9510
     WHEN NO_DATA_FOUND THEN
9511
         RAISE_APPLICATION_ERROR (-20000, 'Platform '|| sOsName ||' is not valid. It needs to be added to PLATFORMS table in Release Manager.' );
9512
    RAISE;
9513
END;
9514
/*-------------------------------------------------------------------------------------------------------*/
9515
END PK_BUILDAPI;
9516
/
9517
 
9518
CREATE OR REPLACE PACKAGE BODY PK_PLANNED IS
9519
 
9520
/*
9521
------------------------------
9522
||  Last Modified:  S.Vukovic
9523
||  Modified Date:  6/May/2005
9524
||  Body Version:   1.0
9525
------------------------------
9526
*/
9527
 
9528
 
9529
/*-------------------------------------------------------------------------------------------------------*/
9530
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
9531
 
9532
 oldPvId NUMBER;
9533
 ReleaseLocation VARCHAR2(4000);
9534
 IsPatch CHAR(1) := NULL;
9535
 sLocation VARCHAR2(4000) := NULL;
9536
 nRtagIdLocation NUMBER;
9537
 
9538
 
9539
 
9540
BEGIN
9541
 /*--------------- Business Rules Here -------------------*/
9542
 /*-------------------------------------------------------*/
9543
 
9544
 BEGIN
9545
  -- Check if Exists in "Work in progress" anywhere in the world, except "Closed mode" releases
9546
  SELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME, rt.RTAG_ID  INTO sLocation, nRtagIdLocation
9547
    FROM PLANNED pl,
9548
        RELEASE_TAGS rt,
9549
      PROJECTS proj
9550
   WHERE pl.PV_ID = newPvId
9551
     AND pl.RTAG_ID = rt.RTAG_ID
9552
     AND rt.OFFICIAL != 'Y'
9553
     AND rt.PROJ_ID = proj.PROJ_ID;
9554
 
9555
  EXCEPTION
9556
      WHEN NO_DATA_FOUND THEN
9557
          sLocation := NULL;
9558
 END;          
9559
 
9560
 
9561
 
9562
 IF (sLocation IS NULL) OR (nRtagIdLocation = RtagId) THEN
9563
 
9564
  -- Add to "Pending" area
9565
  INSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID )
9566
  VALUES( RtagId, newPvId, ViewId );
9567
 
9568
 
9569
     /* LOG ACTION */
9570
  SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
9571
    FROM PROJECTS proj,
9572
        RELEASE_TAGS rt
9573
   WHERE rt.PROJ_ID = proj.PROJ_ID
9574
     AND rt.RTAG_ID = RtagId;
9575
 
9576
  Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );
9577
 
9578
 ELSE
9579
 
9580
  RAISE_APPLICATION_ERROR (-20000, 'This version is already in Pending Area at '|| sLocation ||'.' );  
9581
 
9582
 END IF;
9583
 
9584
END;
9585
/*-------------------------------------------------------------------------------------------------------*/
9586
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
9587
 
9588
 ReleaseLocation VARCHAR2(4000);
9589
 
9590
BEGIN
9591
 
9592
 /*--------------- Business Rules Here -------------------*/
9593
 /*-------------------------------------------------------*/
9594
 
9595
 
9596
 -- Get release location for logging pusposes
9597
 SELECT proj.PROJ_NAME  ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
9598
   FROM PROJECTS proj,
9599
       RELEASE_TAGS rt
9600
  WHERE rt.PROJ_ID = proj.PROJ_ID
9601
    AND rt.RTAG_ID = RtagId;
9602
 
9603
 
9604
 -- Delete from Work In Progress
9605
 DELETE
9606
   FROM PLANNED pl
9607
  WHERE pl.RTAG_ID = RtagId
9608
    AND pl.PV_ID = PvId;
9609
 
9610
 Log_Action ( PvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );
9611
 
9612
 
9613
 
9614
 
9615
END;
9616
/*-------------------------------------------------------------------------------------------------------*/
9617
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
9618
 
9619
 ReturnValue NUMBER;
9620
 
9621
BEGIN
9622
 SELECT pl.VIEW_ID INTO ReturnValue
9623
   FROM PLANNED pl
9624
  WHERE pl.RTAG_ID = RtagId
9625
    AND pl.PV_ID = PvId;
9626
 
9627
 RETURN ReturnValue;
9628
END;
9629
/*-------------------------------------------------------------------------------------------------------*/
9630
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
9631
 
9632
 IsBaseView CHAR(1);
9633
 
9634
BEGIN
9635
 
9636
 -- Check if the view is BASE VIEW
9637
 SELECT vi.BASE_VIEW INTO IsBaseView
9638
   FROM VIEWS vi
9639
  WHERE vi.VIEW_ID = ViewId;
9640
 
9641
 
9642
 IF (IsBaseView = 'Y') THEN 
9643
  -- Get Base view content
9644
  OPEN RecordSet FOR
9645
  SELECT 0 AS PKG_STATE,
9646
      NULL AS DEPRECATED_STATE,
9647
      pv.pv_id, 
9648
      pkg.pkg_name, 
9649
      pv.pkg_version, 
9650
      pv.dlocked, 
9651
      pv.pv_description,
9652
      pv.BUILD_TYPE
9653
    FROM PLANNED rel,
9654
         packages pkg,
9655
         package_versions pv
9656
   WHERE pv.pkg_id = pkg.pkg_id
9657
     AND rel.pv_id = pv.pv_id
9658
     AND rel.VIEW_ID = ViewId
9659
     AND rel.RTAG_ID = RtagId
9660
   ORDER BY UPPER(pkg.PKG_NAME);
9661
 
9662
 ELSE  
9663
 
9664
   -- Get non base view content
9665
  OPEN RecordSet FOR
9666
  SELECT 0 AS PKG_STATE,
9667
      NULL AS DEPRECATED_STATE,
9668
      pv.pv_id, 
9669
      pkg.pkg_name, 
9670
      pv.pkg_version, 
9671
      pv.dlocked, 
9672
      pv.pv_description,
9673
      pv.BUILD_TYPE
9674
    FROM PLANNED rel,
9675
         packages pkg,
9676
         package_versions pv,
9677
      VIEW_DEF vd
9678
   WHERE pv.pkg_id = pkg.pkg_id
9679
     AND rel.pv_id = pv.pv_id
9680
     AND rel.RTAG_ID = RtagId
9681
     AND vd.VIEW_ID = ViewId
9682
     AND vd.PKG_ID = pv.PKG_ID
9683
   ORDER BY UPPER(pkg.PKG_NAME);
9684
 
9685
 END IF;  
9686
 
9687
 
9688
END;
9689
/*-------------------------------------------------------------------------------------------------------*/
9690
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
9691
 
9692
BEGIN
9693
 
9694
 UPDATE PLANNED pl SET
9695
 pl.VIEW_ID = NewViewId
9696
 WHERE pl.PV_ID = PvId
9697
   AND pl.RTAG_ID = RtagId;
9698
 
9699
END;
9700
/*-------------------------------------------------------------------------------------------------------*/
9701
END PK_PLANNED;
9702
/
9703