diff --git a/scripts/Modules/Filters.pm b/scripts/Modules/Filters.pm index bb75f2f..b098d38 100644 --- a/scripts/Modules/Filters.pm +++ b/scripts/Modules/Filters.pm @@ -153,8 +153,11 @@ sub get_default_configs { return @DEFAULT_CONFIGS; } -sub build_filter_clause { - my ( $experiment_dir, @config_names ) = @_; +# Builds the filters for regions whose column matches $col_filter. +# Queries that aggreate separately have to apply the data and instruction +# filters separately as well. +sub build_filter_clause_restricted { + my ( $experiment_dir, $col_filter, @config_names ) = @_; # Drop empty ones, rest is combined @config_names = grep { defined && length } @config_names; @@ -199,6 +202,7 @@ sub build_filter_clause { for my $region (@$regions) { my ( $start, $end, $col ) = $resolve->($region); next unless defined $start; + next unless $col =~ $col_filter; if ($invert) { push @keep_terms, "$col BETWEEN $start AND @{[$end - 1]}"; @@ -218,4 +222,11 @@ sub build_filter_clause { return "\nAND " . join( "\nAND ", @filters ); } +sub build_filter_clause { + my ( $experiment_dir, @config_names ) = @_; + + return build_filter_clause_restricted( $experiment_dir, qr//, + @config_names ); +} + 1;