扫描解析过程:
1.把sql转成字符数组,调用skipseparator(跳过注释等),循环调用nexttoken(扫描字符,判断缓存的字符是否能凑够一个关键字),最后得到类似:KW_SELECT这样的token
2.外面根据token类型,调用具体的解析
2.具体的select分几个部分:
SELECT语句的格式
SELECT select_list (1)
[INTO new_table_name] (2)
FROM table_list (3)
[WHERE conditions] (4)
[GROUP BY group_by_list] (5)
[HAVING search_conditions] (6)
[ORDER BY order_list [ASC | DESC] ] (7)
option\exprlist\tablerefer\where\group by\order by\limit 分别解析
3.解析后的各个部分,构造一个dmselectstmt
问题: 多表join怎么解析?
在tablerefer处会解析多个table