@Override public void execute(final Context context) throws SQLException { final Date now = new Date(system.now()); Connection connection = null; PreparedStatement pstmt = null; try { connection = openConnection(); pstmt = connection.prepareStatement("SELECT p.uuid as uuid FROM projects p WHERE p.kee=?"); MassUpdate massUpdate = context.prepareMassUpdate(); massUpdate.select( "SELECT f.id, f.data FROM issue_filters f WHERE f.data like '%componentRoots=%'"); massUpdate.update("UPDATE issue_filters SET data=?, updated_at=? WHERE id=?"); final PreparedStatement finalPstmt = pstmt; massUpdate.execute( new MassUpdate.Handler() { @Override public boolean handle(Select.Row row, SqlStatement update) throws SQLException { Long id = row.getNullableLong(1); String data = row.getNullableString(2); if (data == null) { return false; } update.setString(1, convertData(finalPstmt, data)); update.setDate(2, now); update.setLong(3, id); return true; } }); } finally { DbUtils.closeQuietly(connection); DbUtils.closeQuietly(pstmt); } }
@Override public void execute(Context context) throws SQLException { MassUpdate massUpdate = context.prepareMassUpdate(); massUpdate.select("select id from project_measures where analysis_uuid is null"); massUpdate.update("delete from project_measures where id=?"); massUpdate.rowPluralName("measures"); massUpdate.execute( (row, update) -> { update.setLong(1, row.getLong(1)); return true; }); }
@Override public void execute(Context context) throws SQLException { RowReader<Long> simpleLongReader = new RowReader<Long>() { @Override public Long read(Row row) throws SQLException { Long longValue = row.getNullableLong(1); return longValue == null ? Long.valueOf(0L) : longValue; } }; Long revisionMetricId = context .prepareSelect("SELECT id FROM metrics WHERE name = 'revisions_by_line'") .get(simpleLongReader); Long authorMetricId = context .prepareSelect("SELECT id FROM metrics WHERE name = 'authors_by_line'") .get(simpleLongReader); Long datesMetricId = context .prepareSelect("SELECT id FROM metrics WHERE name = 'last_commit_datetimes_by_line'") .get(simpleLongReader); Long utCoverageHitsByLineMetricId = context .prepareSelect("SELECT id FROM metrics WHERE name = 'coverage_line_hits_data'") .get(simpleLongReader); Long utConditionsByLineMetricId = context .prepareSelect("SELECT id FROM metrics WHERE name = 'conditions_by_line'") .get(simpleLongReader); Long utCoveredConditionsByLineMetricId = context .prepareSelect("SELECT id FROM metrics WHERE name = 'covered_conditions_by_line'") .get(simpleLongReader); Long itCoverageHitsByLineMetricId = context .prepareSelect("SELECT id FROM metrics WHERE name = 'it_coverage_line_hits_data'") .get(simpleLongReader); Long itConditionsByLineMetricId = context .prepareSelect("SELECT id FROM metrics WHERE name = 'it_conditions_by_line'") .get(simpleLongReader); Long itCoveredConditionsByLineMetricId = context .prepareSelect("SELECT id FROM metrics WHERE name = 'it_covered_conditions_by_line'") .get(simpleLongReader); Long overallCoverageHitsByLineMetricId = context .prepareSelect("SELECT id FROM metrics WHERE name = 'overall_coverage_line_hits_data'") .get(simpleLongReader); Long overallConditionsByLineMetricId = context .prepareSelect("SELECT id FROM metrics WHERE name = 'overall_conditions_by_line'") .get(simpleLongReader); Long overallCoveredConditionsByLineMetricId = context .prepareSelect( "SELECT id FROM metrics WHERE name = 'overall_covered_conditions_by_line'") .get(simpleLongReader); Long duplicationDataMetricId = context .prepareSelect("SELECT id FROM metrics WHERE name = 'duplications_data'") .get(simpleLongReader); MassUpdate massUpdate = context.prepareMassUpdate(); massUpdate .select(SELECT_FILES_AND_MEASURES_SQL) .setBoolean(1, true) .setLong(2, zeroIfNull(revisionMetricId)) .setLong(3, zeroIfNull(authorMetricId)) .setLong(4, zeroIfNull(datesMetricId)) .setLong(5, zeroIfNull(utCoverageHitsByLineMetricId)) .setLong(6, zeroIfNull(utConditionsByLineMetricId)) .setLong(7, zeroIfNull(utCoveredConditionsByLineMetricId)) .setLong(8, zeroIfNull(itCoverageHitsByLineMetricId)) .setLong(9, zeroIfNull(itConditionsByLineMetricId)) .setLong(10, zeroIfNull(itCoveredConditionsByLineMetricId)) .setLong(11, zeroIfNull(overallCoverageHitsByLineMetricId)) .setLong(12, zeroIfNull(overallConditionsByLineMetricId)) .setLong(13, zeroIfNull(overallCoveredConditionsByLineMetricId)) .setLong(14, zeroIfNull(duplicationDataMetricId)) .setBoolean(15, true); massUpdate.update( "INSERT INTO file_sources" + "(project_uuid, file_uuid, created_at, updated_at, data, line_hashes, data_hash)" + "VALUES " + "(?, ?, ?, ?, ?, ?, ?)"); massUpdate.rowPluralName("files"); massUpdate.execute(new FileSourceBuilder(system)); }