Combine query filters instead of combining them

This commit is contained in:
2026-08-05 19:19:15 +02:00
parent 4a5ffbc9db
commit 54c28d703a
5 changed files with 23 additions and 27 deletions
+3 -3
View File
@@ -134,7 +134,7 @@ sub find_subdirs {
sub execute_query { sub execute_query {
my ( $experiment, $queryname, $db_conf, $builds_dir, $do_notify_file, my ( $experiment, $queryname, $db_conf, $builds_dir, $do_notify_file,
$filter_config_name ) @filter_config_names )
= @_; = @_;
my $module = "$queryname"; my $module = "$queryname";
@@ -150,9 +150,9 @@ sub execute_query {
or die "$module can't postprocess()"; or die "$module can't postprocess()";
my $querystring = my $querystring =
$query->( $experiment, "$builds_dir/$experiment", $filter_config_name ); $query->( $experiment, "$builds_dir/$experiment", @filter_config_names );
my $argsstring = $args->(); my $argsstring = $args->();
my $filenamestring = $filename->($filter_config_name); my $filenamestring = $filename->(@filter_config_names);
# TODO: Pass the values instead of rewriting db.conf. # TODO: Pass the values instead of rewriting db.conf.
# Can also use DBI's database handle directly. # Can also use DBI's database handle directly.
+5 -6
View File
@@ -11,11 +11,10 @@ use Filters;
use feature 'say'; use feature 'say';
sub query { sub query {
my ( $experiment, $experiment_dir, $filter_config_name ) = @_; my ( $experiment, $experiment_dir, @filter_config_names ) = @_;
$filter_config_name //= '';
my $filters = my $filters =
Filters::build_filter_clause( $experiment_dir, $filter_config_name ); Filters::build_filter_clause( $experiment_dir, @filter_config_names );
my $querystring = "SELECT my $querystring = "SELECT
benchmark, resulttype, SUM(t.time2 - t.time1 + 1) AS faults, benchmark, resulttype, SUM(t.time2 - t.time1 + 1) AS faults,
@@ -43,9 +42,9 @@ ORDER BY benchmark, resulttype, SUM(t.time2 - t.time1 + 1) DESC;";
sub args { return "--batch --raw"; } sub args { return "--batch --raw"; }
sub filename { sub filename {
my ($filter_config_name) = @_; my @filter_config_names = grep { defined && length } @_;
$filter_config_name //= ''; my $suffix =
my $suffix = length($filter_config_name) ? "_$filter_config_name" : ""; @filter_config_names ? "_" . join( "+", sort @filter_config_names ) : "";
return "faults${suffix}.csv"; return "faults${suffix}.csv";
} }
+5 -6
View File
@@ -11,11 +11,10 @@ use Filters;
use feature 'say'; use feature 'say';
sub query { sub query {
my ( $experiment, $experiment_dir, $filter_config_name ) = @_; my ( $experiment, $experiment_dir, @filter_config_names ) = @_;
$filter_config_name //= '';
my $filters = my $filters =
Filters::build_filter_clause( $experiment_dir, $filter_config_name ); Filters::build_filter_clause( $experiment_dir, @filter_config_names );
my $querystring = "SELECT my $querystring = "SELECT
CASE CASE
@@ -41,9 +40,9 @@ ORDER BY count DESC;";
sub args { return "--batch --raw"; } sub args { return "--batch --raw"; }
sub filename { sub filename {
my ($filter_config_name) = @_; my @filter_config_names = grep { defined && length } @_;
$filter_config_name //= ''; my $suffix =
my $suffix = length($filter_config_name) ? "_$filter_config_name" : ""; @filter_config_names ? "_" . join( "+", sort @filter_config_names ) : "";
return "mnemonics${suffix}.csv"; return "mnemonics${suffix}.csv";
} }
+5 -6
View File
@@ -11,11 +11,10 @@ use Filters;
use feature 'say'; use feature 'say';
sub query { sub query {
my ( $experiment, $experiment_dir, $filter_config_name ) = @_; my ( $experiment, $experiment_dir, @filter_config_names ) = @_;
$filter_config_name //= '';
my $extra = my $extra =
Filters::build_filter_clause( $experiment_dir, $filter_config_name ); Filters::build_filter_clause( $experiment_dir, @filter_config_names );
my $querystring = "SELECT my $querystring = "SELECT
benchmark, resulttype, sum(t.time2 - t.time1 + 1) AS faults benchmark, resulttype, sum(t.time2 - t.time1 + 1) AS faults
@@ -36,9 +35,9 @@ ORDER BY variant, benchmark, resulttype;";
sub args { return "-t"; } sub args { return "-t"; }
sub filename { sub filename {
my ($filter_config_name) = @_; my @filter_config_names = grep { defined && length } @_;
$filter_config_name //= ''; my $suffix =
my $suffix = length($filter_config_name) ? "_$filter_config_name" : ""; @filter_config_names ? "_" . join( "+", sort @filter_config_names ) : "";
return "results${suffix}.txt"; return "results${suffix}.txt";
} }
+5 -6
View File
@@ -11,11 +11,10 @@ use Filters;
use feature 'say'; use feature 'say';
sub query { sub query {
my ( $experiment, $experiment_dir, $filter_config_name ) = @_; my ( $experiment, $experiment_dir, @filter_config_names ) = @_;
$filter_config_name //= '';
my $extra = my $extra =
Filters::build_filter_clause( $experiment_dir, $filter_config_name ); Filters::build_filter_clause( $experiment_dir, @filter_config_names );
my $querystring = "SELECT my $querystring = "SELECT
benchmark, resulttype, sum(t.time2 - t.time1 + 1) AS faults benchmark, resulttype, sum(t.time2 - t.time1 + 1) AS faults
@@ -36,9 +35,9 @@ ORDER BY variant, benchmark, resulttype;";
sub args { return "--batch --raw"; } sub args { return "--batch --raw"; }
sub filename { sub filename {
my ($filter_config_name) = @_; my @filter_config_names = grep { defined && length } @_;
$filter_config_name //= ''; my $suffix =
my $suffix = length($filter_config_name) ? "_$filter_config_name" : ""; @filter_config_names ? "_" . join( "+", sort @filter_config_names ) : "";
return "resultsdata${suffix}.csv"; return "resultsdata${suffix}.csv";
} }