Add warning when running queries if the variant name doesn't match

This commit is contained in:
2026-09-01 01:39:37 +02:00
parent 09c821b8ee
commit bbec0029da
2 changed files with 27 additions and 1 deletions
+13
View File
@@ -178,6 +178,19 @@ sub db_selectrow {
return @row; return @row;
} }
sub db_variant_name {
my ($db_name) = @_;
my ($count) =
db_selectrow("SELECT COUNT(DISTINCT variant) FROM `$db_name`.variant");
return undef unless defined $count && $count == 1;
my ($variant) =
db_selectrow("SELECT DISTINCT variant FROM `$db_name`.variant");
return $variant;
}
sub db_create { sub db_create {
my ($db_name) = @_; my ($db_name) = @_;
say " - Creating database $db_name..."; say " - Creating database $db_name...";
+14 -1
View File
@@ -129,6 +129,19 @@ my %handlers = (
# Run queries on databases # Run queries on databases
foreach my $db (@selected_dbs) { foreach my $db (@selected_dbs) {
my $experiment = $db =~ s/smchurla_//r;
my $variant_name = Mars::db_variant_name($db);
if ( !defined $variant_name ) {
say "Skipping $db: contains multiple variants";
next;
}
if ( $variant_name ne $experiment ) {
say
"Skipping $db: the variant is '$variant_name' but the queries use '$experiment'.";
next;
}
foreach my $query (@selected_queries) { foreach my $query (@selected_queries) {
Util::rewrite_file( $local_db_conf, "database=", Util::rewrite_file( $local_db_conf, "database=",
"database=$db\n" ); "database=$db\n" );
@@ -138,7 +151,7 @@ my %handlers = (
? " (" . join( "+", @filter_configs ) . ")" ? " (" . join( "+", @filter_configs ) . ")"
: ""; : "";
say "Running $query$config_label on $db..."; say "Running $query$config_label on $db...";
Util::execute_query( $db =~ s/smchurla_//r, Util::execute_query( $experiment,
$query, $local_db_conf, $local_archive_dir, 0, $query, $local_db_conf, $local_archive_dir, 0,
@filter_configs ); @filter_configs );
} }