Mycat的sql解析源码剖析
Mycat 的 SQL 解析分为浅解析和深解析两部分,下面就分别讲解这两部分。 本文分析的 Mycat 版本号是 1.6.7.4-test-20191226161308 ,具体的版本号信息详见源码的 io.mycat.config. Versions #SERVER_VERSION 属性。 一、浅解析 不同类型的 sql 语句需要不同的逻辑处理,而浅解析则是用于判定出 sql 语句所属的类型,比如 INSERT 类型、DELETE 类型、UPDATE 类型、SELECT 类型。在当前版本中 Mycat 就将所有 sql 归纳为下述共计 29 种类型。 package io . mycat . server . parser ; public final class ServerParse { public static final int OTHER = - 1 ; public static final int BEGIN = 1 ; public static final int COMMIT = 2 ; public static final int DELETE = 3 ; public static final int INSERT = 4 ; public static final int REPLACE = 5 ; public static final int