Give Firebird (and Interbase) a common sqlt_type
Peter Rabbitson [Fri, 31 Jan 2014 03:38:14 +0000 (04:38 +0100)]
Even though the parser/producer pair do not yet exist in SQLT, we also use this
value as the basis for the lockfile on parallel tests, hence it is important

Changes
lib/DBIx/Class/Storage/DBI/Firebird/Common.pm
t/lib/DBICTest/Schema.pm

diff --git a/Changes b/Changes
index d2dea57..0323370 100644 (file)
--- a/Changes
+++ b/Changes
@@ -7,6 +7,11 @@ Revision history for DBIx::Class
         - Fix failure to load DateTime formatter when connecting to Firebird
           over ODBC
 
+    * Misc
+        - All drivers based on ::Storage::DBI::Firebird::Common now return the
+          same sqlt_type value (affects ::DBI::Interbase, ::DBI::Firebird and
+          ::DBI::ODBC::Firebird)
+
 0.08260 2014-01-28 18:52 (UTC)
     * New Features
         - A new zero-to-DBIC style manual: DBIx::Class::Manual::QuickStart
index b665e75..7e6b518 100644 (file)
@@ -28,6 +28,10 @@ __PACKAGE__->datetime_parser_type(
   'DBIx::Class::Storage::DBI::InterBase::DateTime::Format'
 );
 
+sub sqlt_type {
+  return 'Firebird';
+}
+
 sub _sequence_fetch {
   my ($self, $nextval, $sequence) = @_;
 
index 3aafef0..b39ecbc 100644 (file)
@@ -144,18 +144,6 @@ sub connection {
       ;
     };
 
-    # DBD::Firebird and DBD::InterBase could very well talk to the same RDBMS
-    # make an educated guesstimate based on the DSN
-    # (worst case scenario we are wrong and the scripts have to wait on each
-    # other even without actually being able to interfere among themselves)
-    if (
-      ($locktype||'') eq 'InterBase'
-        and
-      $_[0] =~ /firebird/i
-    ) {
-      $locktype = 'Firebird';
-    }
-
     # Never hold more than one lock. This solves the "lock in order" issues
     # unrelated tests may have
     # Also if there is no connection - there is no lock to be had