Update filters for queries that aggregate separately

This commit is contained in:
2026-09-18 17:38:07 +02:00
parent 6d67a7caa8
commit 62ca4daa8c
+13 -2
View File
@@ -153,8 +153,11 @@ sub get_default_configs {
return @DEFAULT_CONFIGS; return @DEFAULT_CONFIGS;
} }
sub build_filter_clause { # Builds the filters for regions whose column matches $col_filter.
my ( $experiment_dir, @config_names ) = @_; # 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 # Drop empty ones, rest is combined
@config_names = grep { defined && length } @config_names; @config_names = grep { defined && length } @config_names;
@@ -199,6 +202,7 @@ sub build_filter_clause {
for my $region (@$regions) { for my $region (@$regions) {
my ( $start, $end, $col ) = $resolve->($region); my ( $start, $end, $col ) = $resolve->($region);
next unless defined $start; next unless defined $start;
next unless $col =~ $col_filter;
if ($invert) { if ($invert) {
push @keep_terms, "$col BETWEEN $start AND @{[$end - 1]}"; push @keep_terms, "$col BETWEEN $start AND @{[$end - 1]}";
@@ -218,4 +222,11 @@ sub build_filter_clause {
return "\nAND " . join( "\nAND ", @filters ); 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; 1;