From: Peter Rabbitson Date: Sun, 21 Apr 2013 15:31:39 +0000 (+0200) Subject: And of course the test pragma is not supported everywhere X-Git-Tag: v0.08250~19 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=dbsrgits%2FDBIx-Class.git;a=commitdiff_plain;h=4a24dba9da19a1306b30a4e8bedf157bf7dd6aa7 And of course the test pragma is not supported everywhere Similar issue but no solution: http://osdir.com/ml/sqlite-users/2010-01/msg00220.html Experimentally determined cutoff at 3.7.9 --- diff --git a/t/53lean_startup.t b/t/53lean_startup.t index de46c8c..4319940 100644 --- a/t/53lean_startup.t +++ b/t/53lean_startup.t @@ -151,6 +151,7 @@ BEGIN { # and do full populate() as well, just in case - shouldn't add new stuff { + local $ENV{DBICTEST_SQLITE_REVERSE_DEFAULT_ORDER}; require DBICTest; my $s = DBICTest->init_schema; is ($s->resultset('Artist')->find(1)->name, 'Caterwauler McCrae'); diff --git a/t/lib/DBICTest.pm b/t/lib/DBICTest.pm index f95c8e7..42a691b 100644 --- a/t/lib/DBICTest.pm +++ b/t/lib/DBICTest.pm @@ -187,8 +187,14 @@ sub _database { # no fsync on commit $dbh->do ('PRAGMA synchronous = OFF'); - $dbh->do ('PRAGMA reverse_unordered_selects = ON') - if $ENV{DBICTEST_SQLITE_REVERSE_DEFAULT_ORDER}; + if ($ENV{DBICTEST_SQLITE_REVERSE_DEFAULT_ORDER}) { + + $storage->throw_exception( + 'PRAGMA reverse_unordered_selects does not work correctly before libsqlite 3.7.9' + ) if $storage->_server_info->{normalized_dbms_version} < 3.007009; + + $dbh->do ('PRAGMA reverse_unordered_selects = ON'); + } # set a *DBI* disconnect callback, to make sure the physical SQLite # file is still there (i.e. the test does not attempt to delete