Subversion Repositories DevTools

Rev

Blame | Last modification | View Log | RSS feed

CREATE PROCEDURE "RELEASE_MANAGER"."LEVEL_ONE_CONFLICTS" (
   nnrtag_id       IN   NUMBER,
   nnsession_num   IN   NUMBER
)
IS
/* ---------------------------------------------------------------------------
    Version: 3.0.0
   --------------------------------------------------------------------------- */
BEGIN
   /* ---------  LEVEL 1 CONFILCTS -----------
   || Following states are used:
   || 0 -> NOT FOUND
   || 1 -> MAJOR
   || 2 -> MINOR MINOR
   */
   INSERT INTO temp_env_states
      SELECT DISTINCT nnsession_num AS session_num, 1 AS level_num,
                      err.pv_id, errpkg.pkg_id, errpkg.v_ext,
                      DECODE (frc.v_nmm,
                              NULL, 0,
                              errpv.v_nmm, DECODE (frc.v_mm,
                                                   errpv.v_mm, NULL,
                                                   2
                                                  ),
                              1
                             ) AS MESSAGE
                 FROM (
                       /* Full Release Contents used for reference*/
                       SELECT rpv.pkg_id,
                              NVL (rpv.v_ext, '|LINK_A_NULL|') AS v_ext,
                              rpv.pkg_version, rpv.v_nmm, rpv.v_mm
                         FROM release_content rel, package_versions rpv
                        WHERE rel.pv_id = rpv.pv_id AND rtag_id = nnrtag_id) frc,
                      (
                       /* DPV_IDs not fount in release*/
                       SELECT dep.pv_id, dep.dpv_id AS err_dpv
                         FROM package_dependencies dep
                        WHERE dep.pv_id IN (SELECT pv_id
                                              FROM release_content
                                             WHERE rtag_id = nnrtag_id)
                          AND NOT dep.dpv_id IN (SELECT pv_id
                                                   FROM release_content
                                                  WHERE rtag_id = nnrtag_id)
                       MINUS
                       /* MINUS Dependencies to be ignored */
                       SELECT igw.pv_id, igw.dpv_id AS err_dpv
                         FROM ignore_warnings igw
                        WHERE rtag_id = nnrtag_id) err,
                      package_versions errpkg,
                      package_versions errpv
                WHERE err.err_dpv = errpv.pv_id
                  AND errpv.pkg_id = frc.pkg_id(+)
                  AND NVL (errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
                  AND err.pv_id = errpkg.pv_id;
END level_one_conflicts;
/