Fix MySQL column info detection with multiple schemas (RT#82358)
Dagfinn Ilmari Mannsåker [Fri, 15 Nov 2013 17:38:17 +0000 (17:38 +0000)]
Specifically, if similarly-named tables exist in multiple schemas, we
might get the column info for the wrong one.

Changes
lib/DBIx/Class/Schema/Loader/DBI/mysql.pm

diff --git a/Changes b/Changes
index d89ec66..cd11a9d 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,6 +1,7 @@
 Revision history for Perl extension DBIx::Class::Schema::Loader
 
         - Allow coderef maps to call back into the hashref mapping code
+        - Fix MySQL column info detection with multiple schemas (RT#82358)
 
 0.07037  2013-10-30
         - Allow overriding individual moniker parts
index a5384b1..ae8f5f0 100644 (file)
@@ -233,7 +233,7 @@ sub _columns_info_for {
         my ($precision, $scale, $column_type, $default) = eval { $self->dbh->selectrow_array(<<'EOF', {}, $table->name, lc($col)) };
 SELECT numeric_precision, numeric_scale, column_type, column_default
 FROM information_schema.columns
-WHERE table_name = ? AND lower(column_name) = ?
+WHERE table_schema = schema() AND table_name = ? AND lower(column_name) = ?
 EOF
         my $has_information_schema = not $@;