Blame | Last modification | View Log | RSS feed
CREATE PROCEDURE "RELEASE_MANAGER"."CHECK_NEW_PATCHES" (nrtagid IN release_content.rtag_id%TYPE)IS/* ---------------------------------------------------------------------------Version: 3.0--------------------------------------------------------------------------- */BEGIN/*--------------- Business Rules Here -------------------*//*IF nRtagId NOT IN (SELECT RTAG_ID FROM RELEASE_TAGS ) THENRAISE_APPLICATION_ERROR (-20000, 'Please contact the person in charge of Release Manager now.' );END IF/*-------------------------------------------------------*/UPDATE release_content rcSET rc.pkg_state = 5 -- enumPKG_STATE_NEW_PATCHWHERE rc.pv_id IN (SELECT prod.pv_idFROM (SELECT pp.pv_id AS orig_parent_id,COUNT (*) AS num_of_patchesFROM release_content rc, package_patches ppWHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagidGROUP BY pp.pv_id) orig,(SELECT prodpp.pv_id, pp.pv_id AS parent_id,COUNT (*) AS num_of_patchesFROM release_content rc,package_patches pp,package_dependencies dep,package_versions pv,package_patches prodppWHERE rc.pv_id = pp.pv_idAND rc.rtag_id = nrtagidAND pp.patch_id = dep.dpv_idAND dep.pv_id = pv.pv_idAND pv.is_patch = 'Y'AND pv.dlocked = 'Y'AND prodpp.patch_id = dep.pv_idGROUP BY prodpp.pv_id, pp.pv_id) prod,release_content rcWHERE orig.orig_parent_id = prod.pv_idAND orig.num_of_patches != prod.num_of_patchesAND rc.rtag_id = nrtagidAND rc.pv_id = prod.pv_idAND rc.pkg_state = 0UNIONSELECT prodpp.pv_idFROM release_content rc,package_patches pp,package_dependencies dep,package_versions pv,package_patches prodppWHERE rc.pv_id = pp.pv_idAND rc.rtag_id = nrtagidAND pp.patch_id = dep.dpv_idAND dep.pv_id = pv.pv_idAND pv.is_patch = 'Y'AND pv.dlocked = 'Y'AND prodpp.patch_id = dep.pv_idGROUP BY prodpp.pv_id, pp.pv_idMINUSSELECT pp.pv_idFROM release_content rc, package_patches ppWHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagidGROUP BY pp.pv_id);END check_new_patches;/