Add warning when running queries if the variant name doesn't match
This commit is contained in:
@@ -178,6 +178,19 @@ sub db_selectrow {
|
||||
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 {
|
||||
my ($db_name) = @_;
|
||||
say " - Creating database $db_name...";
|
||||
|
||||
+14
-1
@@ -129,6 +129,19 @@ my %handlers = (
|
||||
|
||||
# Run queries on databases
|
||||
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) {
|
||||
Util::rewrite_file( $local_db_conf, "database=",
|
||||
"database=$db\n" );
|
||||
@@ -138,7 +151,7 @@ my %handlers = (
|
||||
? " (" . join( "+", @filter_configs ) . ")"
|
||||
: "";
|
||||
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,
|
||||
@filter_configs );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user