Skip to content

Commit

Permalink
Correct number of total segments per run returned by Postgres
Browse files Browse the repository at this point in the history
  • Loading branch information
Bj0rnen committed Mar 24, 2015
1 parent 19d342f commit 1cf3cb0
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -169,19 +169,16 @@ public interface IStoragePostgreSQL {

// View-specific queries
//

// TODO: segment_count may not be exactly the actual amount of segments
// It would be possible to query specifically for it.
static final String SQL_CLUSTER_RUN_OVERVIEW =
"SELECT repair_run.id, repair_unit.cluster_name, keyspace_name, column_families, "
+ "COUNT(repair_segment.id), segment_count, repair_run.state, repair_run.start_time, "
+ "(SELECT COUNT(case when state = 2 then 1 else null end) FROM repair_segment WHERE run_id = repair_run.id) AS segments_repaired, "
+ "(SELECT COUNT(*) FROM repair_segment WHERE run_id = repair_run.id) AS segments_total, "
+ "repair_run.state, repair_run.start_time, "
+ "repair_run.end_time, cause, owner, last_event, "
+ "creation_time, pause_time, intensity, repair_parallelism "
+ "FROM repair_run "
+ "JOIN repair_segment ON run_id = repair_run.id "
+ "JOIN repair_unit ON repair_run.repair_unit_id = repair_unit.id "
+ "WHERE repair_unit.cluster_name = :clusterName AND repair_segment.state = 2 "
+ "GROUP BY repair_run.id, repair_unit.id "
+ "JOIN repair_unit ON repair_unit_id = repair_unit.id "
+ "WHERE repair_unit.cluster_name = :clusterName "
+ "LIMIT :limit";

@SqlQuery("SELECT version()")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ public RepairRunStatus map(int index, ResultSet r, StatementContext ctx) throws
String keyspaceName = r.getString("keyspace_name");
Collection<String> columnFamilies =
ImmutableSet.copyOf((String[]) r.getArray("column_families").getArray());
int segmentsRepaired = (int)r.getLong("count");
int totalSegments = r.getInt("segment_count");
int segmentsRepaired = r.getInt("segments_repaired");
int totalSegments = r.getInt("segments_total");
RepairRun.RunState state = RepairRun.RunState.valueOf(r.getString("state"));
DateTime startTime = RepairRunMapper.getDateTimeOrNull(r, "start_time");
DateTime endTime = RepairRunMapper.getDateTimeOrNull(r, "end_time");
Expand All @@ -36,6 +36,7 @@ public RepairRunStatus map(int index, ResultSet r, StatementContext ctx) throws
Double intensity = r.getDouble("intensity");
RepairParallelism repairParallelism =
RepairParallelism.valueOf(r.getString("repair_parallelism"));

return new RepairRunStatus(runId, clusterName, keyspaceName, columnFamilies, segmentsRepaired,
totalSegments, state, startTime, endTime, cause, owner, lastEvent,
creationTime, pauseTime, intensity, repairParallelism);
Expand Down

0 comments on commit 1cf3cb0

Please sign in to comment.