From 54c28d703a20c427c561583e915fecf866e5b460 Mon Sep 17 00:00:00 2001 From: Christoph Urlacher Date: Wed, 5 Aug 2026 19:19:15 +0200 Subject: [PATCH] Combine query filters instead of combining them --- scripts/Modules/Util.pm | 6 +++--- scripts/Queries/Faults.pm | 11 +++++------ scripts/Queries/Mnemonics.pm | 11 +++++------ scripts/Queries/Results.pm | 11 +++++------ scripts/Queries/ResultsData.pm | 11 +++++------ 5 files changed, 23 insertions(+), 27 deletions(-) diff --git a/scripts/Modules/Util.pm b/scripts/Modules/Util.pm index b22c5d6..a109a45 100644 --- a/scripts/Modules/Util.pm +++ b/scripts/Modules/Util.pm @@ -134,7 +134,7 @@ sub find_subdirs { sub execute_query { my ( $experiment, $queryname, $db_conf, $builds_dir, $do_notify_file, - $filter_config_name ) + @filter_config_names ) = @_; my $module = "$queryname"; @@ -150,9 +150,9 @@ sub execute_query { or die "$module can't postprocess()"; my $querystring = - $query->( $experiment, "$builds_dir/$experiment", $filter_config_name ); + $query->( $experiment, "$builds_dir/$experiment", @filter_config_names ); my $argsstring = $args->(); - my $filenamestring = $filename->($filter_config_name); + my $filenamestring = $filename->(@filter_config_names); # TODO: Pass the values instead of rewriting db.conf. # Can also use DBI's database handle directly. diff --git a/scripts/Queries/Faults.pm b/scripts/Queries/Faults.pm index a579ebd..3260ae9 100644 --- a/scripts/Queries/Faults.pm +++ b/scripts/Queries/Faults.pm @@ -11,11 +11,10 @@ use Filters; use feature 'say'; sub query { - my ( $experiment, $experiment_dir, $filter_config_name ) = @_; - $filter_config_name //= ''; + my ( $experiment, $experiment_dir, @filter_config_names ) = @_; my $filters = - Filters::build_filter_clause( $experiment_dir, $filter_config_name ); + Filters::build_filter_clause( $experiment_dir, @filter_config_names ); my $querystring = "SELECT 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 filename { - my ($filter_config_name) = @_; - $filter_config_name //= ''; - my $suffix = length($filter_config_name) ? "_$filter_config_name" : ""; + my @filter_config_names = grep { defined && length } @_; + my $suffix = + @filter_config_names ? "_" . join( "+", sort @filter_config_names ) : ""; return "faults${suffix}.csv"; } diff --git a/scripts/Queries/Mnemonics.pm b/scripts/Queries/Mnemonics.pm index dec7d5e..bb5fb89 100644 --- a/scripts/Queries/Mnemonics.pm +++ b/scripts/Queries/Mnemonics.pm @@ -11,11 +11,10 @@ use Filters; use feature 'say'; sub query { - my ( $experiment, $experiment_dir, $filter_config_name ) = @_; - $filter_config_name //= ''; + my ( $experiment, $experiment_dir, @filter_config_names ) = @_; my $filters = - Filters::build_filter_clause( $experiment_dir, $filter_config_name ); + Filters::build_filter_clause( $experiment_dir, @filter_config_names ); my $querystring = "SELECT CASE @@ -41,9 +40,9 @@ ORDER BY count DESC;"; sub args { return "--batch --raw"; } sub filename { - my ($filter_config_name) = @_; - $filter_config_name //= ''; - my $suffix = length($filter_config_name) ? "_$filter_config_name" : ""; + my @filter_config_names = grep { defined && length } @_; + my $suffix = + @filter_config_names ? "_" . join( "+", sort @filter_config_names ) : ""; return "mnemonics${suffix}.csv"; } diff --git a/scripts/Queries/Results.pm b/scripts/Queries/Results.pm index 41d8010..6ce12e8 100644 --- a/scripts/Queries/Results.pm +++ b/scripts/Queries/Results.pm @@ -11,11 +11,10 @@ use Filters; use feature 'say'; sub query { - my ( $experiment, $experiment_dir, $filter_config_name ) = @_; - $filter_config_name //= ''; + my ( $experiment, $experiment_dir, @filter_config_names ) = @_; my $extra = - Filters::build_filter_clause( $experiment_dir, $filter_config_name ); + Filters::build_filter_clause( $experiment_dir, @filter_config_names ); my $querystring = "SELECT benchmark, resulttype, sum(t.time2 - t.time1 + 1) AS faults @@ -36,9 +35,9 @@ ORDER BY variant, benchmark, resulttype;"; sub args { return "-t"; } sub filename { - my ($filter_config_name) = @_; - $filter_config_name //= ''; - my $suffix = length($filter_config_name) ? "_$filter_config_name" : ""; + my @filter_config_names = grep { defined && length } @_; + my $suffix = + @filter_config_names ? "_" . join( "+", sort @filter_config_names ) : ""; return "results${suffix}.txt"; } diff --git a/scripts/Queries/ResultsData.pm b/scripts/Queries/ResultsData.pm index 708f914..bb513cd 100644 --- a/scripts/Queries/ResultsData.pm +++ b/scripts/Queries/ResultsData.pm @@ -11,11 +11,10 @@ use Filters; use feature 'say'; sub query { - my ( $experiment, $experiment_dir, $filter_config_name ) = @_; - $filter_config_name //= ''; + my ( $experiment, $experiment_dir, @filter_config_names ) = @_; my $extra = - Filters::build_filter_clause( $experiment_dir, $filter_config_name ); + Filters::build_filter_clause( $experiment_dir, @filter_config_names ); my $querystring = "SELECT 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 filename { - my ($filter_config_name) = @_; - $filter_config_name //= ''; - my $suffix = length($filter_config_name) ? "_$filter_config_name" : ""; + my @filter_config_names = grep { defined && length } @_; + my $suffix = + @filter_config_names ? "_" . join( "+", sort @filter_config_names ) : ""; return "resultsdata${suffix}.csv"; }