Begin;
Initialize;
InitializeSession "TESTDB";
Command "create database TESTDB";
TerminateSession;
InitializeSession "TESTDB";
#
# トランザクション識別子に関するテスト
#

# グローバルトランザクション識別子のみ
Command "xa start X'00'";
Command "xa end X'00'";
Command "xa prepare X'00'";
Command "xa commit X'00'";

Command "xa start X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff'";
Command "xa end X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff'";
Command "xa prepare X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff'";
Command "xa commit X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff'";

Command "xa start X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff'";
Command "xa end X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff'";
Command "xa prepare X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff'";
Command "xa commit X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff'";

# トランザクションブランチ限定子まで指定
Command "xa start X'00', X'00'";
Command "xa end X'00', X'00'";
Command "xa prepare X'00', X'00'";
Command "xa commit X'00', X'00'";

Command "xa start X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff'";
Command "xa end X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff'";
Command "xa prepare X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff'";
Command "xa commit X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff'";

Command "xa start X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff'";
Command "xa end X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff'";
Command "xa prepare X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff'";
Command "xa commit X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff'";

Command "xa start X'00', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff'";
Command "xa end X'00', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff'";
Command "xa prepare X'00', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff'";
Command "xa commit X'00', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff'";

Command "xa start X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'00'";
Command "xa end X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'00'";
Command "xa prepare X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'00'";
Command "xa commit X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'00'";

Command "xa start X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'00'";
Command "xa end X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'00'";
Command "xa prepare X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'00'";
Command "xa commit X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'00'";

Command "xa start X'00', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff'";
Command "xa end X'00', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff'";
Command "xa prepare X'00', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff'";
Command "xa commit X'00', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff'";

Command "xa start X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff'";
Command "xa end X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff'";
Command "xa prepare X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff'";
Command "xa commit X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff'";

Command "xa start X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff'";
Command "xa end X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff'";
Command "xa prepare X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff'";
Command "xa commit X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff'";

# フォーマット識別子まで指定
Command "xa start X'00', X'00', 0";
Command "xa end X'00', X'00', 0";
Command "xa prepare X'00', X'00', 0";
Command "xa commit X'00', X'00', 0";

Command "xa start X'00', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', 1";
Command "xa end X'00', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', 1";
Command "xa prepare X'00', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', 1";
Command "xa commit X'00', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', 1";

Command "xa start X'00', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', 2147483647";
Command "xa end X'00', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', 2147483647";
Command "xa prepare X'00', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', 2147483647";
Command "xa commit X'00', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', 2147483647";

Command "xa start X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'00', 1";
Command "xa end X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'00', 1";
Command "xa prepare X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'00', 1";
Command "xa commit X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'00', 1";

Command "xa start X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', 0";
Command "xa end X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', 0";
Command "xa prepare X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', 0";
Command "xa commit X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', 0";

Command "xa start X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', 0";
Command "xa end X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', 0";
Command "xa prepare X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', 0";
Command "xa commit X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', 0";

Command "xa start X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'00', 2147483647";
Command "xa end X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'00', 2147483647";
Command "xa prepare X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'00', 2147483647";
Command "xa commit X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'00', 2147483647";

Command "xa start X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', 0";
Command "xa end X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', 0";
Command "xa prepare X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', 0";
Command "xa commit X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', 0";

Command "xa start X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', 1";
Command "xa end X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', 1";
Command "xa prepare X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', 1";
Command "xa commit X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', X'0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', 1";

Command "xa start X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', 2147483647";
Command "xa end X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', 2147483647";
Command "xa prepare X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', 2147483647";
Command "xa commit X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', X'00112233445566778899AABBCCDDEEFF00112233445566778899aabbccddeeff', 2147483647";

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