> SELECT TEST.ID FROM TABLE_DISTINCT(_23 INTEGER=(1, 2, NULL)) _24 /* PUBLIC."" */ INNER JOIN PUBLIC.TEST /* PUBLIC.PRIMARY_KEY_2: ID >= 1 AND ID <= 2 AND ID = _24._23 */ ON 1=1 WHERE (ID IN(1, 2, NULL)) AND (ID = _24._23)
> SELECT TEST.ID FROM TABLE_DISTINCT(_19 INTEGER=(1, 2, NULL)) _20 /* PUBLIC."" */ INNER JOIN PUBLIC.TEST /* PUBLIC.PRIMARY_KEY_2: ID >= 1 AND ID <= 2 AND ID = _20._19 */ ON 1=1 WHERE (ID IN(1, 2, NULL)) AND (ID = _20._19)
> rows: 1
> rows: 1
drop table test;
drop table test;
...
@@ -2569,8 +2569,8 @@ where exists (select 1 from test t4 where t2.id=t4.id);
...
@@ -2569,8 +2569,8 @@ where exists (select 1 from test t4 where t2.id=t4.id);
explain select * from test t1 where id in(select id from test t2 where t1.id=t2.id);
explain select * from test t1 where id in(select id from test t2 where t1.id=t2.id);
> SELECT T1.ID, T1.NAME FROM PUBLIC.TEST T1 /* PUBLIC.TEST_TABLE_SCAN */ WHERE ID IN(SELECT ID FROM PUBLIC.TEST T2 /* PUBLIC.PRIMARY_KEY_2: ID = T1.ID */ WHERE T1.ID = T2.ID)
> SELECT T1.ID, T1.NAME FROM PUBLIC.TEST T1 /* PUBLIC.TEST_TABLE_SCAN */ WHERE ID IN(SELECT DISTINCT ID FROM PUBLIC.TEST T2 /* PUBLIC.PRIMARY_KEY_2: ID = T1.ID */ WHERE T1.ID = T2.ID)
> rows: 1
> rows: 1
select * from test t1 where id in(select id from test t2 where t1.id=t2.id);
select * from test t1 where id in(select id from test t2 where t1.id=t2.id);
...
@@ -2609,7 +2609,7 @@ select * from test t1 where id in(id);
...
@@ -2609,7 +2609,7 @@ select * from test t1 where id in(id);
explain select * from test t1 where id in(select id from test);
explain select * from test t1 where id in(select id from test);
> SELECT T1.ID, T1.NAME FROM (SELECT DISTINCT ID AS _73 FROM PUBLIC.TEST /* PUBLIC.TEST_TABLE_SCAN */) _74 /* SELECT DISTINCT ID AS _73 FROM PUBLIC.TEST /++ PUBLIC.TEST_TABLE_SCAN ++/ */ INNER JOIN PUBLIC.TEST T1 /* PUBLIC.PRIMARY_KEY_2: ID = _74._73 */ ON 1=1 WHERE ID = _74._73
> SELECT T1.ID, T1.NAME FROM (SELECT DISTINCT ID AS _65 FROM PUBLIC.TEST /* PUBLIC.TEST_TABLE_SCAN */) _66 /* SELECT DISTINCT ID AS _65 FROM PUBLIC.TEST /++ PUBLIC.TEST_TABLE_SCAN ++/ */ INNER JOIN PUBLIC.TEST T1 /* PUBLIC.PRIMARY_KEY_2: ID = _66._65 */ ON 1=1 WHERE ID = _66._65
> rows: 1
> rows: 1
select * from test t1 where id in(select id from test);
select * from test t1 where id in(select id from test);
...
@@ -2622,7 +2622,7 @@ select * from test t1 where id in(select id from test);
...
@@ -2622,7 +2622,7 @@ select * from test t1 where id in(select id from test);
explain select * from test t1 where id in(1, select max(id) from test);
explain select * from test t1 where id in(1, select max(id) from test);
> SELECT T1.ID, T1.NAME FROM TABLE_DISTINCT(_81 INTEGER=(1, 2)) _82 /* PUBLIC."" */ INNER JOIN PUBLIC.TEST T1 /* PUBLIC.PRIMARY_KEY_2: ID >= 1 AND ID <= 2 AND ID = _82._81 */ ON 1=1 WHERE (ID IN(1, 2)) AND (ID = _82._81)
> SELECT T1.ID, T1.NAME FROM TABLE_DISTINCT(_73 INTEGER=(1, 2)) _74 /* PUBLIC."" */ INNER JOIN PUBLIC.TEST T1 /* PUBLIC.PRIMARY_KEY_2: ID >= 1 AND ID <= 2 AND ID = _74._73 */ ON 1=1 WHERE (ID IN(1, 2)) AND (ID = _74._73)
> rows: 1
> rows: 1
select * from test t1 where id in(1, select max(id) from test);
select * from test t1 where id in(1, select max(id) from test);
...
@@ -5525,13 +5525,13 @@ EXPLAIN PLAN FOR SELECT * FROM TEST T1 WHERE EXISTS(SELECT * FROM TEST T2 WHERE
...
@@ -5525,13 +5525,13 @@ EXPLAIN PLAN FOR SELECT * FROM TEST T1 WHERE EXISTS(SELECT * FROM TEST T2 WHERE
EXPLAIN PLAN FOR SELECT * FROM TEST T1 WHERE ID IN(1, 2);
EXPLAIN PLAN FOR SELECT * FROM TEST T1 WHERE ID IN(1, 2);
> SELECT T1.ID, T1.NAME FROM TABLE_DISTINCT(_118 INTEGER=(1, 2)) _119 /* PUBLIC."" */ INNER JOIN PUBLIC.TEST T1 /* PUBLIC.PRIMARY_KEY_2: ID >= 1 AND ID <= 2 AND ID = _119._118 */ ON 1=1 WHERE (ID IN(1, 2)) AND (ID = _119._118)
> SELECT T1.ID, T1.NAME FROM TABLE_DISTINCT(_106 INTEGER=(1, 2)) _107 /* PUBLIC."" */ INNER JOIN PUBLIC.TEST T1 /* PUBLIC.PRIMARY_KEY_2: ID >= 1 AND ID <= 2 AND ID = _107._106 */ ON 1=1 WHERE (ID IN(1, 2)) AND (ID = _107._106)
> rows: 1
> rows: 1
EXPLAIN PLAN FOR SELECT * FROM TEST T1 WHERE ID IN(SELECT ID FROM TEST);
EXPLAIN PLAN FOR SELECT * FROM TEST T1 WHERE ID IN(SELECT ID FROM TEST);
> SELECT T1.ID, T1.NAME FROM (SELECT DISTINCT ID AS _122 FROM PUBLIC.TEST /* PUBLIC.TEST_TABLE_SCAN */) _123 /* SELECT DISTINCT ID AS _122 FROM PUBLIC.TEST /++ PUBLIC.TEST_TABLE_SCAN ++/ */ INNER JOIN PUBLIC.TEST T1 /* PUBLIC.PRIMARY_KEY_2: ID = _123._122 */ ON 1=1 WHERE ID = _123._122
> SELECT T1.ID, T1.NAME FROM (SELECT DISTINCT ID AS _110 FROM PUBLIC.TEST /* PUBLIC.TEST_TABLE_SCAN */) _111 /* SELECT DISTINCT ID AS _110 FROM PUBLIC.TEST /++ PUBLIC.TEST_TABLE_SCAN ++/ */ INNER JOIN PUBLIC.TEST T1 /* PUBLIC.PRIMARY_KEY_2: ID = _111._110 */ ON 1=1 WHERE ID = _111._110
> rows: 1
> rows: 1
EXPLAIN PLAN FOR SELECT * FROM TEST T1 WHERE ID NOT IN(SELECT ID FROM TEST);
EXPLAIN PLAN FOR SELECT * FROM TEST T1 WHERE ID NOT IN(SELECT ID FROM TEST);