Begin;
Initialize;
InitializeSession "TESTDB";
Command "create database TESTDB";
TerminateSession;
InitializeSession "TESTDB";
#
# トランザクションブランチとセッションの関係のテスト
#

# 『データ操作中』のトランザクションブランチと連携しているセッションを終了すると、そのトランザクションブランチは自動的に『待機中』となる
Command "create table T(I int)";
Command "xa start X'00'";
Command "insert into T(I) values (?)" [1];
Command "insert into T(I) values (?)" [2];
Command "select * from T";
TerminateSession;
InitializeSession "TESTDB";
Command "select * from T";
Command "xa prepare X'00'";
Command "xa commit X'00'";
Command "select * from T";
Command "drop table T";

# 『データ操作中』のトランザクションブランチと連携していないセッションはトランザクションを実行できる
Command "create table T(I int)";
Command "xa start X'00'";
Command "insert into T(I) values (1)";
Command "insert into T(I) values (2)";
Command "select * from T";
Command "xa end X'00'";
Command "insert into T(I) values (3)";
Command "xa prepare X'00'";
Command "xa commit X'00'";
Command "select * from T";
Command "drop table T";

TerminateSession;
InitializeSession "TESTDB";
Command "drop database TESTDB";
TerminateSession;
Terminate;
End;
