| 6788 |
dpurdie |
1 |
-- Used by ALL Packages in this release
|
|
|
2 |
-- :RTAG_ID
|
|
|
3 |
-- :PV_ID
|
|
|
4 |
--
|
| 7038 |
dpurdie |
5 |
-- All the package-versions that use a specified package-version in a specified release
|
| 6788 |
dpurdie |
6 |
--
|
| 7038 |
dpurdie |
7 |
-- Note: The outer join of release_content was causing a slow query
|
|
|
8 |
-- This sql is a bit faster
|
|
|
9 |
--
|
| 6827 |
dpurdie |
10 |
With small_pd as ( SELECT pd.*, pd.pkg_id || pv1.v_ext as pkg_sig, pd.dpkg_id || pv2.v_ext as dpkg_sig FROM package_dependencies pd, package_versions pv1, package_versions pv2 WHERE pv1.pv_id IN (
|
|
|
11 |
SELECT pv_id FROM release_content WHERE rtag_id = :RTAG_ID
|
|
|
12 |
) AND pd.pv_id = pv1.pv_id AND pd.dpv_id = pv2.pv_id ),
|
| 6788 |
dpurdie |
13 |
aa as (select * from (
|
| 6827 |
dpurdie |
14 |
select LEVEL as ll, pv_id from small_pd pd connect by prior pkg_sig = dpkg_sig start with dpkg_sig in (select pkg_id || v_ext from package_versions where pv_id = :PV_ID )
|
| 6788 |
dpurdie |
15 |
UNION
|
|
|
16 |
SELECT 0 AS ll, to_number(:PV_ID) AS pv_id FROM dual
|
| 7038 |
dpurdie |
17 |
) ),
|
|
|
18 |
t as (
|
|
|
19 |
select MIN(ll) as buildLevel, pv_id from aa group by pv_id
|
|
|
20 |
),
|
|
|
21 |
rcdata as (
|
|
|
22 |
select rtag_id, pv_id, pkg_state, deprecated_state from release_content where rtag_id = :RTAG_ID
|
|
|
23 |
),
|
|
|
24 |
baseData as (
|
|
|
25 |
select t.*, p.pkg_name, pv.pkg_version, pv.MODIFIED_STAMP,pv.DLOCKED,pv.pkg_id,pv.build_time, usr.FULL_NAME, usr.USER_EMAIL
|
|
|
26 |
from t , packages p, package_versions pv, USERS usr
|
|
|
27 |
where t.pv_id = pv.pv_id
|
|
|
28 |
and pv.pkg_id = p.pkg_id
|
|
|
29 |
AND pv.MODIFIER_ID = usr.USER_ID
|
|
|
30 |
)
|
|
|
31 |
select bd.*, rc.PKG_STATE, rc.deprecated_state
|
|
|
32 |
from baseData bd , rcdata rc
|
|
|
33 |
where rc.rtag_id(+) = :RTAG_ID
|
|
|
34 |
and rc.pv_id(+) = bd.pv_id
|
| 6788 |
dpurdie |
35 |
order by buildLevel, upper(pkg_name)
|
| 6790 |
dpurdie |
36 |
|
| 7038 |
dpurdie |
37 |
|