From: Peter Rabbitson <ribasushi@cpan.org>
Date: Thu, 29 Aug 2013 01:40:52 +0000 (+0200)
Subject: Prevent DBD::Firebird and DBD::InterBase from colliding on same DSN
X-Git-Tag: v0.08260~169
X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=6642a36f35c3292da6aa651370e7e4d8e75a1c4a;p=dbsrgits%2FDBIx-Class.git

Prevent DBD::Firebird and DBD::InterBase from colliding on same DSN
---

diff --git a/t/lib/DBICTest/Schema.pm b/t/lib/DBICTest/Schema.pm
index 9ae6632..61a4386 100644
--- a/t/lib/DBICTest/Schema.pm
+++ b/t/lib/DBICTest/Schema.pm
@@ -144,6 +144,17 @@ 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