@Test
  public void testSelectSelectTsFil() throws ParseException {
    parse("select * from (select * from \"c/b/o_t1\" where \"c/b/o_t1\".c_int >= 0) as \"c/b/o_t1\"");
    parse("select * from (select * from \"c/b/o_t1\" as \"c/b/o_t1\"  where \"c/b/o_t1\".c_int >= 0 and c_float+c_int >= 0 or c_float <= 100) as \"c/b/o_t1\"");
    parse("select * from (select * from \"c/b/o_t1\" as \"//cbo_t2\" where \"//cbo_t2\".c_int >= 0 and c_float+c_int >= 0 or c_float <= 100) as \"c/b/o_t1\"");
    parse("select * from (select \"//cbo_t2\".key as x, c_int as c_int, (((c_int+c_float)*10)+5) as y from \"c/b/o_t1\" as \"//cbo_t2\"  where \"//cbo_t2\".c_int >= 0 and c_float+c_int >= 0 or c_float <= 100) as \"c/b/o_t1\"");
    parse("select * from (select * from \"c/b/o_t1\" where \"c/b/o_t1\".c_int >= 0) as \"c/b/o_t1\" where \"c/b/o_t1\".c_int >= 0");
    parse("select * from (select * from \"c/b/o_t1\" as \"c/b/o_t1\"  where \"c/b/o_t1\".c_int >= 0 and c_float+c_int >= 0 or c_float <= 100) as \"c/b/o_t1\"  where \"c/b/o_t1\".c_int >= 0 and c_float+c_int >= 0 or c_float <= 100");
    parse("select * from (select * from \"c/b/o_t1\" as \"//cbo_t2\" where \"//cbo_t2\".c_int >= 0 and c_float+c_int >= 0 or c_float <= 100) as \"//cbo_t2\" where \"//cbo_t2\".c_int >= 0 and c_float+c_int >= 0 or c_float <= 100");
    parse("select * from (select \"//cbo_t2\".key as x, c_int as c_int, (((c_int+c_float)*10)+5) as y from \"c/b/o_t1\" as \"//cbo_t2\"  where \"//cbo_t2\".c_int >= 0 and c_float+c_int >= 0 or c_float <= 100) as \"c/b/o_t1\" where \"c/b/o_t1\".c_int >= 0 and y+c_int >= 0 or x <= 100");
    parse("select \"c/b/o_t1\".c_int+c_float as x , c_int as c_int, (((c_int+c_float)*10)+5) as y from (select * from \"c/b/o_t1\" where \"c/b/o_t1\".c_int >= 0) as \"c/b/o_t1\" where \"c/b/o_t1\".c_int >= 0");
    parse("select \"//cbo_t2\".c_int+c_float as x , c_int as c_int, (((c_int+c_float)*10)+5) as y from (select * from \"c/b/o_t1\" where \"c/b/o_t1\".c_int >= 0) as \"//cbo_t2\" where \"//cbo_t2\".c_int >= 0");
    parse("select * from (select * from \"c/b/o_t1\" where \"c/b/o_t1\".c_int >= 0) as \"c/b/o_t1\" where \"c/b/o_t1\".c_int >= 0");
    parse("select * from (select * from \"c/b/o_t1\" as \"c/b/o_t1\"  where \"c/b/o_t1\".c_int >= 0 and c_float+c_int >= 0 or c_float <= 100) as \"c/b/o_t1\"  where \"c/b/o_t1\".c_int >= 0 and c_float+c_int >= 0 or c_float <= 100");
    parse("select * from (select * from \"c/b/o_t1\" as \"//cbo_t2\" where \"//cbo_t2\".c_int >= 0 and c_float+c_int >= 0 or c_float <= 100) as \"//cbo_t2\" where \"//cbo_t2\".c_int >= 0 and c_float+c_int >= 0 or c_float <= 100");
    parse("select * from (select \"//cbo_t2\".key as x, c_int as c_int, (((c_int+c_float)*10)+5) as y from \"c/b/o_t1\" as \"//cbo_t2\"  where \"//cbo_t2\".c_int >= 0 and c_float+c_int >= 0 or c_float <= 100) as \"c/b/o_t1\" where \"c/b/o_t1\".c_int >= 0 and y+c_int >= 0 or x <= 100");
    parse("select \"c/b/o_t1\".c_int+c_float as x , c_int as c_int, (((c_int+c_float)*10)+5) as y from (select * from \"c/b/o_t1\" where \"c/b/o_t1\".c_int >= 0) as \"c/b/o_t1\" where \"c/b/o_t1\".c_int >= 0");
    parse("select \"//cbo_t2\".c_int+c_float as x , c_int as c_int, (((c_int+c_float)*10)+5) as y from (select * from \"c/b/o_t1\" where \"c/b/o_t1\".c_int >= 0) as \"//cbo_t2\" where \"//cbo_t2\".c_int >= 0");
  }
Parser tests special character in table names.
parser/src/test/org/apache/hadoop/hive/ql/parse/TestSpecialCharacterInTableNamesQuotes.java