summaryrefslogtreecommitdiff
path: root/t/45_savepoints.t
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2012-09-24 10:15:50 +0000
committerLorry <lorry@roadtrain.codethink.co.uk>2012-09-26 13:46:46 +0000
commit485b97be9f2f2abf5a40923b5fd85f75714a8c02 (patch)
treeca05cb0ecf3828d909a898c3e5805804a0aff5f8 /t/45_savepoints.t
downloadperl-dbd-sqlite-tarball-master.tar.gz
Imported from /srv/lorry/lorry-area/perl-dbd-sqlite-tarball/DBD-SQLite-1.38_01.tar.gz.HEADDBD-SQLite-1.38_01masterbaserock/morph
Diffstat (limited to 't/45_savepoints.t')
-rw-r--r--t/45_savepoints.t44
1 files changed, 44 insertions, 0 deletions
diff --git a/t/45_savepoints.t b/t/45_savepoints.t
new file mode 100644
index 0000000..87e5d49
--- /dev/null
+++ b/t/45_savepoints.t
@@ -0,0 +1,44 @@
+#!/usr/bin/perl
+
+use strict;
+BEGIN {
+ $| = 1;
+ $^W = 1;
+}
+
+use t::lib::Test;
+use Test::More tests => 5;
+use Test::NoWarnings;
+
+my $dbh = connect_ok(
+ AutoCommit => 1,
+ RaiseError => 1,
+);
+
+$dbh->begin_work;
+
+$dbh->do("CREATE TABLE MST (id, lbl)");
+
+$dbh->do("SAVEPOINT svp_0");
+
+$dbh->do("INSERT INTO MST VALUES(1, 'ITEM1')");
+$dbh->do("INSERT INTO MST VALUES(2, 'ITEM2')");
+$dbh->do("INSERT INTO MST VALUES(3, 'ITEM3')");
+
+my $ac = $dbh->{AutoCommit};
+
+ok((not $ac), 'AC != 1 inside txn');
+
+{
+ local $dbh->{AutoCommit} = $dbh->{AutoCommit};
+
+ $dbh->do("ROLLBACK TRANSACTION TO SAVEPOINT svp_0");
+
+ is $dbh->{AutoCommit}, $ac,
+ "rolling back savepoint doesn't alter AC";
+}
+
+is $dbh->selectrow_array("SELECT COUNT(*) FROM MST"), 0,
+ "savepoint rolled back";
+
+$dbh->rollback;