Subversion Repositories DevTools

Rev

Rev 4706 | Rev 6754 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4706 Rev 5586
Line 56... Line 56...
56
 
56
 
57
#
57
#
58
#   Package information
58
#   Package information
59
#
59
#
60
my @Packages;
60
my @Packages;
61
my @packageItems = qw( PV_ID RTAG_ID NAME VERSION PKG_ID PROJ_ID RNINFO BUILD_TYPE BS_ID);
61
my @packageItems = qw( PV_ID -LINK_PV_ID RTAG_ID NAME VERSION PKG_ID PROJ_ID RNINFO BUILD_TYPE BS_ID);
62
my %rmConfig;
62
my %rmConfig;
63
 
63
 
64
#-------------------------------------------------------------------------------
64
#-------------------------------------------------------------------------------
65
# Function        : Main Entry
65
# Function        : Main Entry
66
#
66
#
Line 155... Line 155...
155
 
155
 
156
#-------------------------------------------------------------------------------
156
#-------------------------------------------------------------------------------
157
# Function        : LocatePackages 
157
# Function        : LocatePackages 
158
#
158
#
159
# Description     : Locate packages in need of Release Notes
159
# Description     : Locate packages in need of Release Notes
-
 
160
#                   The hard part is handling patches
-
 
161
#                   The sql will
-
 
162
#                       1) Locate packages that may need a release note
-
 
163
#                       2) Trace back to the most likly Release that the pakage is in
-
 
164
#                          For patches - it may be in many released
-
 
165
#                                        Use the latest
160
#
166
#
161
# Inputs          : None
167
# Inputs          : None
162
#
168
#
163
# Returns         : Nothing
169
# Returns         : Nothing
164
#                   Populates the @Packages array
170
#                   Populates the @Packages array
165
#
171
#
166
sub LocatePackages
172
sub LocatePackages
167
{
173
{
168
    my $m_sqlstr =
174
    my $m_sqlstr =
169
            "SELECT * from
175
        "select * from (
170
            (
176
          select aa.*, 
171
                SELECT pv.pv_id, 
-
 
172
                       rc.rtag_id, 
177
              rc.RTAG_ID,
173
                       pkg.pkg_name, 
178
              pkg.PKG_NAME, 
174
                       pv.pkg_version, 
179
              pv.PKG_VERSION, 
175
                       pv.pkg_id, 
180
              pv.pkg_id,
176
                       rt.proj_id , 
181
              rt.PROJ_ID, 
177
                       pv.release_notes_info,
182
              pv.release_notes_info,
178
                       pv.build_type,
183
              pv.build_type,
179
                       pv.BS_ID,
184
              pv.BS_ID,
180
                       TRUNC(sysdate - pv.modified_stamp ) AS age , 
185
              TRUNC(sysdate - pv.modified_stamp ) AS age,
181
                       row_number() OVER (PARTITION BY pv.pv_id, pkg.pkg_name, pv.pkg_version ORDER BY rc.rtag_id) rn
186
              row_number() OVER (PARTITION BY aa.pv_id, pkg.pkg_name, pv.pkg_version ORDER BY rc.rtag_id desc) rn
-
 
187
          from (
-
 
188
            SELECT pv.pv_id, NVL( pp.PV_ID, pv.pv_id) as LINK_PV_ID
182
                FROM release_manager.package_versions pv, 
189
              FROM release_manager.package_versions pv, release_manager.PACKAGE_PATCHES pp
183
                     release_manager.release_content rc, 
190
              WHERE (release_notes_info IS NULL
184
                     release_manager.packages pkg, 
191
              OR (release_notes_info LIKE 'MSG:%'
185
                     release_manager.release_tags rt
192
              AND release_notes_info != 'MSG:5' ))
186
                WHERE pv.pv_id = rc.pv_id
193
              AND pv.dlocked          = 'Y'
187
                AND pkg.pkg_id = pv.pkg_id
194
              AND pv.modified_stamp   > (sysdate - $opt_age)
188
                AND rc.rtag_id = rt.rtag_id
195
              AND pv.pv_id = pp.PATCH_ID(+)
-
 
196
              ) aa,
189
                AND pv.pv_id IN (SELECT pv_id 
197
              release_manager.package_versions pv, 
190
                                 FROM release_manager.package_versions 
198
              release_manager.packages pkg, 
191
                                 WHERE (release_notes_info IS null 
199
              release_manager.RELEASE_CONTENT rc, 
192
                                     OR (release_notes_info like 'MSG:%' AND release_notes_info != 'MSG:5' ))
200
              release_manager.RELEASE_TAGS rt
193
                                 AND pv.dlocked = 'Y'
201
              where aa.PV_ID = pv.PV_ID
194
                                 AND pv.modified_stamp > (sysdate - $opt_age)
202
              AND pv.PKG_ID = pkg.PKG_ID
195
                                 )
203
              and RC.pv_id = aa.LINK_PV_ID
196
            )
204
              AND rt.RTAG_ID = rc.RTAG_ID
197
            where rn = 1";
205
        ) where RN = 1";
198
 
206
 
199
    populateArrayFromSql('LocatePackages', \@Packages, $m_sqlstr, \@packageItems);
207
    populateArrayFromSql('LocatePackages', \@Packages, $m_sqlstr, \@packageItems);
200
#    DebugDumpData("Packages", \@Packages);
208
#    DebugDumpData("Packages", \@Packages);
201
}
209
}
202
 
210
 
Line 210... Line 218...
210
#
218
#
211
# Returns         : Populate the @Packages array
219
# Returns         : Populate the @Packages array
212
#
220
#
213
sub LocatePackagesByPvid
221
sub LocatePackagesByPvid
214
{
222
{
215
    #   Extract: PV_ID RTAG_ID NAME VERSION PKG_ID PROJ_ID RNINFO AGE 
223
    #   Extract: PV_ID LINK_PV_ID RTAG_ID NAME VERSION PKG_ID PROJ_ID RNINFO AGE 
216
    my $m_sqlstr = "
224
    my $m_sqlstr = "
217
                SELECT pv.pv_id, 
225
                SELECT pv.pv_id,
-
 
226
                       pv.pv_id, 
218
                       rc.rtag_id, 
227
                       rc.rtag_id, 
219
                       pkg.pkg_name, 
228
                       pkg.pkg_name, 
220
                       pv.pkg_version, 
229
                       pv.pkg_version, 
221
                       pv.pkg_id, 
230
                       pv.pkg_id, 
222
                       rt.proj_id, 
231
                       rt.proj_id, 
Line 607... Line 616...
607
#                   array 
616
#                   array 
608
#
617
#
609
# Inputs          :     name                - For error reporting
618
# Inputs          :     name                - For error reporting
610
#                       pArray              - Ref to the output array
619
#                       pArray              - Ref to the output array
611
#                       sql                 - Sql to process
620
#                       sql                 - Sql to process
612
#                       pItems              - Array of tems to extract
621
#                       pItems              - Array of items to extract
613
#                                             Must match the SQL SELECT arguments
622
#                                             Must match the SQL SELECT arguments
614
#                                             Item names starting with '-' do not end up in the
623
#                                             Item names starting with '-' do not end up in the
615
#                                             generated XML
624
#                                             generated XML
616
# Returns         : 
625
# Returns         : 
617
#
626
#