|
Packit |
723767 |
#!/usr/bin/perl
|
|
Packit |
723767 |
|
|
Packit |
723767 |
use strict;
|
|
Packit |
723767 |
BEGIN {
|
|
Packit |
723767 |
$| = 1;
|
|
Packit |
723767 |
$^W = 1;
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
use lib "t/lib";
|
|
Packit |
723767 |
use SQLiteTest;
|
|
Packit |
723767 |
use Test::More;
|
|
Packit |
723767 |
|
|
Packit |
723767 |
BEGIN { requires_sqlite('3.6.8') }
|
|
Packit |
723767 |
|
|
Packit |
723767 |
plan tests => 5;
|
|
Packit |
723767 |
use Test::NoWarnings;
|
|
Packit |
723767 |
|
|
Packit |
723767 |
my $dbh = connect_ok(
|
|
Packit |
723767 |
AutoCommit => 1,
|
|
Packit |
723767 |
RaiseError => 1,
|
|
Packit |
723767 |
);
|
|
Packit |
723767 |
|
|
Packit |
723767 |
$dbh->begin_work;
|
|
Packit |
723767 |
|
|
Packit |
723767 |
$dbh->do("CREATE TABLE MST (id, lbl)");
|
|
Packit |
723767 |
|
|
Packit |
723767 |
$dbh->do("SAVEPOINT svp_0");
|
|
Packit |
723767 |
|
|
Packit |
723767 |
$dbh->do("INSERT INTO MST VALUES(1, 'ITEM1')");
|
|
Packit |
723767 |
$dbh->do("INSERT INTO MST VALUES(2, 'ITEM2')");
|
|
Packit |
723767 |
$dbh->do("INSERT INTO MST VALUES(3, 'ITEM3')");
|
|
Packit |
723767 |
|
|
Packit |
723767 |
my $ac = $dbh->{AutoCommit};
|
|
Packit |
723767 |
|
|
Packit |
723767 |
ok((not $ac), 'AC != 1 inside txn');
|
|
Packit |
723767 |
|
|
Packit |
723767 |
{
|
|
Packit |
723767 |
local $dbh->{AutoCommit} = $dbh->{AutoCommit};
|
|
Packit |
723767 |
|
|
Packit |
723767 |
$dbh->do("ROLLBACK TRANSACTION TO SAVEPOINT svp_0");
|
|
Packit |
723767 |
|
|
Packit |
723767 |
is $dbh->{AutoCommit}, $ac,
|
|
Packit |
723767 |
"rolling back savepoint doesn't alter AC";
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
is $dbh->selectrow_array("SELECT COUNT(*) FROM MST"), 0,
|
|
Packit |
723767 |
"savepoint rolled back";
|
|
Packit |
723767 |
|
|
Packit |
723767 |
$dbh->rollback;
|