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;
|
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
@@ -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 );
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user