Combine query filters instead of combining them

This commit is contained in:
2026-08-05 19:15:42 +02:00
parent e067310dce
commit 4a5ffbc9db
2 changed files with 21 additions and 29 deletions
+16 -24
View File
@@ -86,10 +86,9 @@ my %handlers = (
TUI::select_from_list( "Select Queries to Run", 1, @queries );
die "No query selected" unless @selected_queries;
# Select filter configs
my @filter_choices = ("None");
# Select filter configs (they're combined into one)
my @filter_choices;
my %filter_label_name;
my @filter_configs;
my $configs = Filters::get_configs();
foreach my $name ( sort keys %$configs ) {
my $label = $configs->{$name}{label};
@@ -97,32 +96,25 @@ my %handlers = (
$filter_label_name{$label} = $name;
}
my @selected_filter_labels =
TUI::select_from_list( "Select Filters to Apply", 1,
@filter_choices );
die "No filter selected" unless @selected_filter_labels;
@filter_configs = ();
foreach my $label (@selected_filter_labels) {
if ( $label eq "None" ) {
push @filter_configs, '';
}
else {
push @filter_configs, $filter_label_name{$label};
}
}
TUI::select_from_list( "Select Filters to Apply (none = unfiltered)",
1, @filter_choices );
my @filter_configs =
map { $filter_label_name{$_} } @selected_filter_labels;
# Run queries on databases
foreach my $db (@selected_dbs) {
foreach my $query (@selected_queries) {
foreach my $config (@filter_configs) {
Util::rewrite_file( $local_db_conf, "database=",
"database=$db\n" );
Util::rewrite_file( $local_db_conf, "database=",
"database=$db\n" );
my $config_label = length($config) ? " ($config)" : "";
say "Running $query$config_label on $db...";
Util::execute_query( $db =~ s/smchurla_//r,
$query, $local_db_conf, $local_archive_dir, 0,
$config );
}
my $config_label =
@filter_configs
? " (" . join( "+", @filter_configs ) . ")"
: "";
say "Running $query$config_label on $db...";
Util::execute_query( $db =~ s/smchurla_//r,
$query, $local_db_conf, $local_archive_dir, 0,
@filter_configs );
}
}
},