Add resultsdata query without "de-pruning"

This commit is contained in:
2026-08-31 21:52:31 +02:00
parent 7abdc4d032
commit a769f53472
2 changed files with 64 additions and 0 deletions
+58
View File
@@ -0,0 +1,58 @@
package ResultsDataPruned;
use strict;
use warnings;
use diagnostics;
use FindBin;
use lib "$FindBin::Bin/../Modules";
use Filters;
use feature 'say';
sub query {
my ( $experiment, $experiment_dir, @filter_config_names ) = @_;
my $extra =
Filters::build_filter_clause( $experiment_dir, @filter_config_names );
# This query basically asks: How many equivalence classes
# ended up in each possible outcome?
# In contrast to ResultsData.pm it doesn't do any "de-pruning", e.g.
# no expansion of the "data liveness interval length"
# SUM(t.time2 - t.time1 + 1).
#
# We run with --inject-single-bit, so the bits of one class can
# end up in different outcomes.
# This would be counted multiple times,
# so we'll have more results than pilots.
#
# The column is named "faults" so the charts still work with this.
my $querystring = "SELECT
benchmark, resulttype, COUNT(DISTINCT g.pilot_id) AS faults
FROM variant v
JOIN trace t ON v.id = t.variant_id
JOIN fspgroup g ON g.variant_id = t.variant_id AND g.instr2 = t.instr2 AND g.data_physical_address = t.data_physical_address
JOIN result_GenericExperimentMessage r ON r.pilot_id = g.pilot_id
JOIN fsppilot p ON r.pilot_id = p.id
WHERE v.variant = '$experiment'$extra
GROUP BY v.id, resulttype
ORDER BY variant, benchmark, resulttype;";
say $querystring;
return $querystring;
}
sub args { return "--batch --raw"; }
sub filename {
my @filter_config_names = grep { defined && length } @_;
my $suffix =
@filter_config_names ? "_" . join( "+", sort @filter_config_names ) : "";
return "resultsdata_pruned${suffix}.csv";
}
sub postprocess { $_[0] =~ s/\t/,/g; }
1;