# テスト追加: FileAccess_Lock.cpp
#             LockForBitSet::reset
#             トランザクションの中でB+木索引が2つ以上ついた表を2つ用意し、それぞれに2つ以上のB+木索引を使った検索をしただけでJoin条件を指定しないSELECT文を実行
# 2005.07.25 Tajima
Begin;

Initialize;
InitializeSession "";
Command "create database TESTDB";
TerminateSession "";

InitializeSession "TESTDB";

# 表を作成
Command "create table T(No1 int,Sno int, Name nvarchar(32),Memo ntext)";
Command "create table T1(No2 int, Sno1 int,Name1 nvarchar(32),Memo1 ntext)";

# 索引作成
Command "create index T_IDX on T(No1,Sno,Name)";
Command "create index T1_IDX on T1(No2,Sno1,Name1)";


#トランザクション開始
Command  "start transaction read write";
#データセット
Command "insert into T(No1,Sno,Name,Memo) values (1,10,'Takeda',null)";
Command "insert into T(No1,Sno,Name,Memo) values (1,10,'Aoki','aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')";
Command "insert into T(No1,Sno,Name,Memo) values (3,12,'buta','')";
Command "insert into T(No1,Sno,Name,Memo) values (4,13,'Panda','bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb')";
Command "insert into T(No1,Sno,Name,Memo) values (5,14,'Kirin','')";

Command "insert into T1(No2,Sno1,Name1,Memo1) values (1,10,'Sasaki',null)";
Command "insert into T1(No2,Sno1,Name1,Memo1) values (2,10,'Tanaka',null)";
Command "insert into T1(No2,Sno1,Name1,Memo1) values (3,10,'Tanuki','cccccccccccccccccccccccccccccc')";
Command "insert into T1(No2,Sno1,Name1,Memo1) values (4,13,'kemon','bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb')";
Command "insert into T1(No2,Sno1,Name1,Memo1) values (5,14,'watanabe','')";


#2つ以上のB+木索引を使った検索をしただけでJoin条件を指定しないSELECT文
Command "Select * from T,T1 order by T.No1 ";
Command "Select * from T,T1 where No1=1 and Sno1 = 10 and Name like ?" ["%Ta%"];
Command "Select * from T,T1 where No1>3 and Sno1 = 13 and Name like ?" ["%an%"];
Command "Select * from T,T1 where No1<3 or Sno1 = 14 or Name like ?" ["%na%"];

Command "Select T.No1,T1.Sno1,T1.Sno1,T.Name from T,T1 where No1=1 and Sno1 = 10 and Name like ?" ["%Ta%"];
Command "Select T.No1,T1.Sno1,T1.Sno1,T.Name from T,T1 where No1<3 and Sno1 >= 10 and Name like ?  order by T.No1" ["%a%"];
Command "Select T.No1,T1.Sno1,T1.Sno1,T.Name from T,T1 where No2>1 or Sno1 < 14 or Name like ?  order by T.No1" ["%a%"];

Command "Select * from T natural inner join T1  where No1=1 and Sno1 = 10 and Name like ?" ["%Ta%"];
Command "Select * from T natural inner join T1  where No2 > 1 or Sno1 = 10 or Name like ? order by No1,Sno1,Name1" ["Ta%"];


Command "commit";
# テスト用の表を消去
Command "drop table T";
Command "drop table T1";
TerminateSession;

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

