From 447682a716604f2ac9ef8dcc8deafc31993dd85e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20Kusalananda=20K=C3=A4h=C3=A4ri?= <ak4@sanger.ac.uk> Date: Mon, 1 Nov 2010 14:40:55 +0000 Subject: [PATCH] Be more careful with dbname in get_species_and_object_type() --- modules/Bio/EnsEMBL/Registry.pm | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/modules/Bio/EnsEMBL/Registry.pm b/modules/Bio/EnsEMBL/Registry.pm index 3c252467bd..eeb4cf24f0 100644 --- a/modules/Bio/EnsEMBL/Registry.pm +++ b/modules/Bio/EnsEMBL/Registry.pm @@ -2463,17 +2463,24 @@ sub get_species_and_object_type { if ( lc($species) eq 'multi' ) { next } - if ( !defined($dbc) || $dbc->host() ne $dba->dbc()->host() ) { + if ( !defined($dbc) + || $dbc->host() ne $dba->dbc()->host() + || $dbc->dbname() ne $dba->dbc()->dbname() ) + { $dbc = $dba->dbc(); } my $dbh = $dbc->db_handle(); + my $dbname = $dbc->dbname(); + + my $statement = sprintf( + "SELECT meta_value " + . "FROM %s " + . "WHERE meta_key = 'species.stable_id_prefix' " + . "AND species_id = ?", + $dbh->quote_identifier( undef, $dbname, 'meta' ) + ); - my $statement = - "SELECT meta_value " - . "FROM meta " - . "WHERE meta_key = 'species.stable_id_prefix' " - . "AND species_id = ?"; my $sth = $dbh->prepare($statement); @@ -2593,7 +2600,10 @@ SECONDLOOP: '-species' => $species ) } ) { - if ( !defined($dbc) || $dbc->host() ne $dba->dbc()->host() ) { + if ( !defined($dbc) + || $dbc->host() ne $dba->dbc()->host() + || $dbc->dbname() ne $dba->dbc()->dbname() ) + { $dbc = $dba->dbc(); } -- GitLab