Bring out the big-paranoia-harness - make describe_env infallible
[dbsrgits/DBIx-Class.git] / t / sqlmaker / mysql.t
index 5b3f330..f1e3bfb 100644 (file)
@@ -1,12 +1,12 @@
+BEGIN { do "./t/lib/ANFANG.pm" or die ( $@ || $! ) }
+
 use strict;
 use warnings;
 
 use Test::More;
 
-use lib qw(t/lib);
-use DBICTest;
-use DBICTest::Schema;
-use DBIC::SqlMakerTest;
+
+use DBICTest ':DiffSQL';
 
 my $schema = DBICTest::Schema->connect (DBICTest->_database, { quote_char => '`' });
 # cheat
@@ -128,13 +128,18 @@ for (
 ) {
   my ($ver, $join_op) = @$_;
 
-  no warnings 'redefine';
-  local *DBIx::Class::Storage::DBI::mysql::_get_server_version = sub { $ver };
-
   # we do not care at this point if data is available, just do a reconnect cycle
-  # to clear all caches
-  $schema->storage->disconnect;
-  $schema->storage->ensure_connected;
+  # to clear the server version cache and then get a new maker
+  {
+    $schema->storage->disconnect;
+    $schema->storage->_sql_maker(undef);
+
+    no warnings 'redefine';
+    local *DBIx::Class::Storage::DBI::mysql::_get_server_version = sub { $ver };
+
+    $schema->storage->ensure_connected;
+    $schema->storage->sql_maker;
+  }
 
   is_same_sql_bind (
     $schema->resultset('CD')->search ({}, { prefetch => 'artist' })->as_query,