table A:
![image](https://user-images.githubusercontent.com/17606375/105842341-f9b40580-6010-11eb-8507-6ea46fe814c8.png)
table B:
![image](https://user-images.githubusercontent.com/17606375/105842364-0173aa00-6011-11eb-94a3-47c162dd40fd.png)

select 
  "T_8FB5CF"."id1" "__fcol_0", 
  "T_8FB5CF"."id2" "__fcol_1", 
  "T_8FB5CF"."id3" "__fcol_2", 
  "T_8FB5CF"."id4" "__fcol_3", 
  "T_8FB5CF"."id5" "__fcol_4", 
  "T_8FB5CF"."date" "__fcol_5", 
  "T_8FB5CF"."shuzhi" "__fcol_6", 
  "T_8FB5CF"."数值2" "__fcol_7"
from "A1"."B" "T_8FB5CF"
  left outer join "A1"."A" "T_8C7546"
  on "T_8FB5CF"."id2" = "T_8C7546"."id2"
where (
  "T_8C7546"."id2" = ''
  or "T_8C7546"."id2" is null
)
limit 5000
ClickHouse exception, code: 47, host: 192.168.5.67, port: 8123; Code: 47, e.displayText() = DB::Exception: Missing columns: 'T_8C7546.id2' while processing query: '(T_8C7546.id2 = '') OR isNull(T_8C7546.id2)', required columns: 'T_8C7546.id2', source columns: '数值2' 'shuzhi' 'date' 'id5' 'id3' 'id2' 'id4' 'id1' (version 20.5.4.40)
{
    const State & state = State::instance();
    check("SELECT column FROM test.table WHERE 1 IN (1)",
          R"(SELECT "column" FROM "test"."table" WHERE 1)",
          state.context, state.columns);
    check("SELECT column FROM test.table WHERE column IN (1, 2)",
          R"(SELECT "column" FROM "test"."table" WHERE "column" IN (1, 2))",
          state.context, state.columns);
    check("SELECT column FROM test.table WHERE column NOT IN ('hello', 'world')",
          R"(SELECT "column" FROM "test"."table" WHERE "column" NOT IN ('hello', 'world'))",
          state.context, state.columns);
}
TEST(TransformQueryForExternalDatabase, InWithTable)
{
    const State & state = State::instance();
    check("SELECT column FROM test.table WHERE 1 IN external_table",
          R"(SELECT "column" FROM "test"."table")",
          state.context, state.columns);
    check("SELECT column FROM test.table WHERE 1 IN (x)",
          R"(SELECT "column" FROM "test"."table")",
          state.context, state.columns);
    check("SELECT column, field, value FROM test.table WHERE column IN (field, value)",
          R"(SELECT "column", "field", "value" FROM "test"."table" WHERE "column" IN ("field", "value"))",
          state.context, state.columns);
    check("SELECT column FROM test.table WHERE column NOT IN hello AND column = 123",
          R"(SELECT "column" FROM "test"."table" WHERE ("column" = 123))",
          state.context, state.columns);
}
TEST(TransformQueryForExternalDatabase, Like)