# Bug report 1700

Begin;
Initialize;
# テスト用のDBを作る
InitializeSession "";
Command "create database TESTDB";
TerminateSession;

InitializeSession "TESTDB";

Command  "create table T1(C0 int, C1 int)";
Command  "create table T2(C1 int, C2 int)";
Command  "create table T3(C0 int, C1 int)";
Command  "create table T4(C1 int)";
Command  "insert T1 values (1, 1), (2, 1), (3, 2), (4, 2), (5, 3), (2, 2)";
Command  "insert T2 values (1, 1), (2, 2)";
Command  "insert T3 values (1, 1), (2, 2)";
Command  "insert T4 values 1,2";

Command  "select T1.C0, T1.C1, S41.C1, S42.C1
from
T1
left outer join T4 as S41 on (
exists (select *
	from T2
	where T1.C1 = T2.C1 and T2.C1 = S41.C1))
left outer join T4 as S42 on (
exists (select *
	from T3, T2
	where T1.C0 = T3.C0 and T3.C1 = T2.C1 and T2.C1 = S42.C1))
where
exists (select * from T2 where T1.C1 = T2.C1 and T2.C2 = 2)
and
exists (select * from T2, T3 where T1.C0 = T3.C0 and T3.C1 = T2.C1 and T2.C2 = 2)
";

Command  "select T1.C0, T1.C1 from T1 where exists (select * from T2 where T1.C1 = T2.C1 and T2.C2 = 2) and exists (select * from T2 where T1.C0 = T2.C1 and T2.C2 = 2)";

Command  "drop table T1";
Command  "drop table T2";
Command  "drop table T3";
Command  "drop table T4";

TerminateSession;
# DBの後始末
InitializeSession "";
Command "drop database TESTDB";
TerminateSession;
Terminate;
End;
