Line 901 com.actiontech.dble.plan.visitor.MySQLItemVisitor:initName ---> StringBuilder sb = new StringBuilder(); Line 203 com.alibaba.druid.sql.dialect.mysql.visitor.MySqlOutputVisitor: ---> super(appender); Line 902 com.actiontech.dble.plan.visitor.MySQLItemVisitor:initName ---> MySqlOutputVisitor ov = new MySqlOutputVisitor(sb); Line 183 com.alibaba.druid.sql.visitor.SQLASTOutputVisitor: ---> public SQLASTOutputVisitor(Appendable appender){ Line 23 com.actiontech.dble.server.variables.SystemVariables: ---> } Line 79 com.actiontech.dble.DbleServer: ---> private static final Logger LOGGER = LoggerFactory.getLogger('Server'); Line 164 com.alibaba.druid.sql.visitor.SQLASTVisitorAdapter:preVisit ---> } Line 97 com.alibaba.druid.sql.visitor.SQLASTVisitorAdapter: ---> public class SQLASTVisitorAdapter implements SQLASTVisitor { Line 43 com.alibaba.druid.sql.ast.SQLObjectImpl:accept ---> } Line 356 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower = 0xcbf29ce484222325L; Line 359 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 175 com.alibaba.druid.sql.parser.SQLExprParser:exprRest ---> expr = multiplicativeRest(expr); Line 360 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 176 com.alibaba.druid.sql.parser.SQLExprParser:exprRest ---> expr = additiveRest(expr); Line 319 com.alibaba.druid.sql.parser.SQLExprParser:multiplicativeRest ---> return expr; Line 377 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 2072 com.alibaba.druid.sql.parser.SQLExprParser:additiveRest ---> return expr; Line 177 com.alibaba.druid.sql.parser.SQLExprParser:exprRest ---> expr = shiftRest(expr); Line 378 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 2095 com.alibaba.druid.sql.parser.SQLExprParser:shiftRest ---> return expr; Line 18 com.actiontech.dble.server.variables.SystemVariables: ---> public SystemVariables() { Line 91 com.actiontech.dble.DbleServer: ---> private volatile SystemVariables systemVariables = new SystemVariables(); Line 133 com.actiontech.dble.DbleServer: ---> private DbleServer() { Line 77 com.actiontech.dble.DbleServer: ---> private static final DbleServer INSTANCE = new DbleServer(); Line 377 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 178 com.alibaba.druid.sql.parser.SQLExprParser:exprRest ---> expr = bitAndRest(expr); Line 26 com.actiontech.dble.server.variables.SystemVariables:pickGlobalVariables ---> globalVariables.put('lower_case_table_names', new SystemGlobalVariable() { Line 20 com.actiontech.dble.server.variables.SystemVariables: ---> pickGlobalVariables(); Line 19 com.actiontech.dble.server.variables.SystemVariables: ---> globalVariables = new HashMap<>(); Line 26 com.actiontech.dble.server.variables.SystemVariables$1: ---> globalVariables.put('lower_case_table_names', new SystemGlobalVariable() { Line 77 com.actiontech.dble.DbleServer: ---> private static final DbleServer INSTANCE = new DbleServer(); Line 25 com.actiontech.dble.plan.common.item.ItemIdent: ---> if (DbleServer.getInstance().getSystemVariables().isLowerCaseTableNames()) { Line 378 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 179 com.alibaba.druid.sql.parser.SQLExprParser:exprRest ---> expr = bitOrRest(expr); Line 1906 com.alibaba.druid.sql.parser.SQLExprParser:bitAndRest ---> return expr; Line 26 com.actiontech.dble.server.variables.SystemVariables:pickGlobalVariables ---> globalVariables.put('lower_case_table_names', new SystemGlobalVariable() { Line 21 com.actiontech.dble.server.variables.SystemVariables: ---> sessionVariables = new HashMap<>(); Line 108 com.actiontech.dble.DbleServer:getInstance ---> return INSTANCE; Line 377 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 1926 com.alibaba.druid.sql.parser.SQLExprParser:bitOrRest ---> return expr; Line 40 com.actiontech.dble.server.variables.SystemVariables:isLowerCaseTableNames ---> Integer value = Integer.valueOf(globalVariables.get('lower_case_table_names').getVariable()); Line 27 com.actiontech.dble.server.variables.SystemVariables$1: ---> String value = '0'; Line 91 com.actiontech.dble.DbleServer: ---> private volatile SystemVariables systemVariables = new SystemVariables(); Line 25 com.actiontech.dble.plan.common.item.ItemIdent: ---> if (DbleServer.getInstance().getSystemVariables().isLowerCaseTableNames()) { Line 378 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 180 com.alibaba.druid.sql.parser.SQLExprParser:exprRest ---> expr = inRest(expr); Line 34 com.actiontech.dble.server.variables.SystemVariables$1:getVariable ---> return value; Line 811 com.actiontech.dble.DbleServer:getSystemVariables ---> return systemVariables; Line 377 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 2034 com.alibaba.druid.sql.parser.SQLExprParser:inRest ---> return expr; Line 40 com.actiontech.dble.server.variables.SystemVariables:isLowerCaseTableNames ---> Integer value = Integer.valueOf(globalVariables.get('lower_case_table_names').getVariable()); Line 25 com.actiontech.dble.plan.common.item.ItemIdent: ---> if (DbleServer.getInstance().getSystemVariables().isLowerCaseTableNames()) { Line 77 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:parseFrom ---> if (lexer.token() == Token.UPDATE) { // taobao returning to urgly syntax Line 378 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 181 com.alibaba.druid.sql.parser.SQLExprParser:exprRest ---> expr = relationalRest(expr); Line 41 com.actiontech.dble.server.variables.SystemVariables:isLowerCaseTableNames ---> return value != 0; Line 268 com.alibaba.druid.sql.parser.Lexer:token ---> return token; Line 377 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 2576 com.alibaba.druid.sql.parser.SQLExprParser:relationalRest ---> return expr; Line 242 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:parseTableSource ---> if (lexer.token() == Token.LPAREN) { Line 829 com.alibaba.druid.sql.parser.SQLSelectParser:parseGroupBy ---> if (lexer.token == Token.WITH) { Line 25 com.actiontech.dble.plan.common.item.ItemIdent: ---> if (DbleServer.getInstance().getSystemVariables().isLowerCaseTableNames()) { Line 77 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:parseFrom ---> if (lexer.token() == Token.UPDATE) { // taobao returning to urgly syntax Line 378 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 1950 com.alibaba.druid.sql.parser.Lexer:identifierEquals ---> if (token != Token.IDENTIFIER) { Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 183 com.alibaba.druid.sql.parser.SQLExprParser:exprRest ---> expr = andRest(expr); Line 41 com.alibaba.druid.sql.ast.expr.SQLAggregateExpr: ---> public SQLAggregateExpr(String methodName){ Line 208 com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser:primaryRest ---> if (lexer.token() == Token.LITERAL_CHARS) { Line 3470 com.alibaba.druid.sql.parser.SQLExprParser:parseSelectItem ---> if (token == Token.LPAREN) { Line 89 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:parseFrom ---> queryBlock.setFrom(parseTableSource()); Line 268 com.alibaba.druid.sql.parser.Lexer:token ---> return token; Line 268 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:parseTableSource ---> if(lexer.token() == Token.UPDATE) { Line 860 com.alibaba.druid.sql.parser.SQLSelectParser:parseGroupBy ---> if (groupBy.getHaving() == null && lexer.token == Token.HAVING) { Line 40 com.alibaba.druid.sql.ast.SQLObjectImpl:accept ---> accept0(visitor); Line 29 com.actiontech.dble.plan.common.item.ItemIdent: ---> tempTableName = tableNameArg; Line 30 com.actiontech.dble.plan.common.item.ItemIdent: ---> tempDbName = dbNameArg; Line 279 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:parseTableSource ---> parseTableSourceQueryTableExpr(tableReference); Line 1960 com.alibaba.druid.sql.parser.Lexer:identifierEquals ---> return this.hash_lower == hash_lower; Line 1065 com.alibaba.druid.sql.parser.SQLSelectParser:parseTableSourceQueryTableExpr ---> if (lexer.token == Token.LITERAL_ALIAS || lexer.identifierEquals(FnvHash.Constants.IDENTIFIED) Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 3419 com.alibaba.druid.sql.parser.SQLExprParser:parseSelectItem ---> if (token == Token.COMMA) { Line 2167 com.alibaba.druid.sql.parser.SQLExprParser:andRest ---> return expr; Line 43 com.alibaba.druid.sql.ast.expr.SQLMethodInvokeExpr: ---> public SQLMethodInvokeExpr(){ Line 268 com.alibaba.druid.sql.parser.Lexer:token ---> return token; Line 3474 com.alibaba.druid.sql.parser.SQLExprParser:parseSelectItem ---> expr = this.primaryRest(expr); Line 259 com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser:primaryRest ---> } else if (lexer.token() == Token.IDENTIFIER) { Line 242 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:parseTableSource ---> if (lexer.token() == Token.LPAREN) { Line 268 com.alibaba.druid.sql.parser.Lexer:token ---> return token; Line 66 com.alibaba.druid.sql.ast.statement.SQLSelectGroupByClause:getHaving ---> return this.having; Line 518 com.actiontech.dble.plan.visitor.MySQLItemVisitor:endVisit ---> item = new ItemSumCount(args, isDistinct, false, null); Line 164 com.alibaba.druid.sql.ast.expr.SQLAggregateExpr:accept0 ---> if (this.withinGroup != null) { Line 169 com.alibaba.druid.sql.ast.expr.SQLAggregateExpr:accept0 ---> visitor.endVisit(this); Line 40 com.alibaba.druid.sql.ast.SQLObjectImpl:accept ---> accept0(visitor); Line 36 com.actiontech.dble.plan.common.item.ItemIdent: ---> this.withUnValAble = true; Line 35 com.actiontech.dble.plan.common.item.ItemIdent: ---> this.itemName = fieldNameArg; Line 34 com.actiontech.dble.plan.common.item.ItemIdent: ---> this.tableName = tempTableName; Line 146 com.actiontech.dble.plan.common.item.Item: ---> protected int maxLength = 0; Line 30 com.actiontech.dble.plan.common.item.Item: ---> public abstract class Item { Line 350 com.actiontech.dble.plan.visitor.MySQLItemVisitor:endVisit ---> item = new ItemField(null, null, '*'); Line 36 com.actiontech.dble.plan.common.item.ItemField: ---> private int index = -1; Line 158 com.actiontech.dble.plan.common.item.Item: ---> protected int charsetIndex = 63; Line 147 com.actiontech.dble.plan.common.item.Item: ---> protected int decimals = NOT_FIXED_DEC; Line 33 com.actiontech.dble.plan.common.item.ItemIdent: ---> this.dbName = tempDbName; Line 167 com.alibaba.druid.sql.visitor.SQLASTVisitorAdapter:visit ---> return true; Line 39 com.actiontech.dble.plan.common.item.ItemField: ---> super(dbName, tableName, fieldName); Line 22 com.actiontech.dble.plan.common.item.ItemIdent: ---> public ItemIdent(final String dbNameArg, final String tableNameArg, final String fieldNameArg) { Line 1065 com.alibaba.druid.sql.parser.SQLSelectParser:parseTableSourceQueryTableExpr ---> if (lexer.token == Token.LITERAL_ALIAS || lexer.identifierEquals(FnvHash.Constants.IDENTIFIED) Line 388 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (bufPos == 1) { Line 198 com.alibaba.druid.sql.parser.Keywords:getKeyword ---> return null; Line 1080 com.alibaba.druid.sql.parser.SQLSelectParser:parseTableSourceRest ---> if (tableSource.getAlias() == null || tableSource.getAlias().length() == 0) { Line 3423 com.alibaba.druid.sql.parser.SQLExprParser:parseSelectItem ---> if (token == Token.AS) { Line 184 com.alibaba.druid.sql.parser.SQLExprParser:exprRest ---> expr = xorRest(expr); Line 1629 com.alibaba.druid.sql.parser.SQLExprParser:parseAggregateExpr ---> aggregateExpr = new SQLAggregateExpr(methodName); Line 23 com.alibaba.druid.sql.ast.SQLExprImpl: ---> public SQLExprImpl(){ Line 208 com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser:primaryRest ---> if (lexer.token() == Token.LITERAL_CHARS) { Line 268 com.alibaba.druid.sql.parser.Lexer:token ---> return token; Line 321 com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser:primaryRest ---> if (lexer.token() == Token.VARIANT && '@'.equals(lexer.stringVal())) { Line 268 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:parseTableSource ---> if(lexer.token() == Token.UPDATE) { Line 469 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:parseTableSourceRest ---> if (lexer.token() == Token.PARTITION) { Line 860 com.alibaba.druid.sql.parser.SQLSelectParser:parseGroupBy ---> if (groupBy.getHaving() == null && lexer.token == Token.HAVING) { Line 526 com.actiontech.dble.plan.visitor.MySQLItemVisitor:endVisit ---> initName(x); Line 38 com.alibaba.druid.sql.ast.expr.SQLAllColumnExpr:accept0 ---> visitor.endVisit(this); Line 350 com.actiontech.dble.plan.visitor.MySQLItemVisitor:endVisit ---> item = new ItemField(null, null, '*'); Line 1072 com.alibaba.druid.sql.parser.SQLSelectParser:parseTableSourceQueryTableExpr ---> expr()); Line 398 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (tok != null) { Line 43 com.alibaba.druid.sql.ast.statement.SQLTableSourceImpl:getAlias ---> return this.alias; Line 3441 com.alibaba.druid.sql.parser.SQLExprParser:parseSelectItem ---> if (token == Token.LITERAL_ALIAS) { Line 3384 com.alibaba.druid.sql.parser.SQLExprParser:parseSelectItem ---> token = lexer.token; Line 2191 com.alibaba.druid.sql.parser.SQLExprParser:xorRest ---> return expr; Line 30 com.alibaba.druid.sql.ast.SQLObjectImpl: ---> public SQLObjectImpl(){ Line 259 com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser:primaryRest ---> } else if (lexer.token() == Token.IDENTIFIER) { Line 268 com.alibaba.druid.sql.parser.Lexer:token ---> return token; Line 1951 com.alibaba.druid.sql.parser.Lexer:identifierEquals ---> return false; Line 281 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:parseTableSource ---> SQLTableSource tableSrc = parseTableSourceRest(tableReference); Line 277 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:parseTableSource ---> SQLExprTableSource tableReference = new SQLExprTableSource(); Line 268 com.alibaba.druid.sql.parser.Lexer:token ---> return token; Line 564 com.alibaba.druid.sql.parser.SQLSelectParser$1: ---> switch (lexer.token) { Line 867 com.alibaba.druid.sql.parser.SQLSelectParser:parseGroupBy ---> queryBlock.setGroupBy(groupBy); Line 904 com.actiontech.dble.plan.visitor.MySQLItemVisitor:initName ---> expr.accept(ov); Line 81 com.actiontech.dble.plan.visitor.MySQLItemVisitor:getItem ---> expr.accept(fv); Line 351 com.actiontech.dble.plan.visitor.MySQLItemVisitor:endVisit ---> initName(x); Line 1440 com.alibaba.druid.sql.parser.SQLSelectParser:expr ---> return this.exprParser.expr(); Line 406 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> token = Token.IDENTIFIER; Line 1081 com.alibaba.druid.sql.parser.SQLSelectParser:parseTableSourceRest ---> Token token = lexer.token; Line 1080 com.alibaba.druid.sql.parser.SQLSelectParser:parseTableSourceRest ---> if (tableSource.getAlias() == null || tableSource.getAlias().length() == 0) { Line 159 com.alibaba.druid.sql.parser.SQLExprParser:expr ---> Token token = lexer.token; Line 160 com.alibaba.druid.sql.parser.SQLExprParser:expr ---> if (token == Token.COMMA) { Line 3447 com.alibaba.druid.sql.parser.SQLExprParser:parseSelectItem ---> if ((token == Token.IDENTIFIER && hash_lower != FnvHash.Constants.CURRENT) Line 185 com.alibaba.druid.sql.parser.SQLExprParser:exprRest ---> expr = orRest(expr); Line 36 com.alibaba.druid.sql.ast.expr.SQLMethodInvokeExpr: ---> protected final List arguments = new ArrayList(); Line 321 com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser:primaryRest ---> if (lexer.token() == Token.VARIANT && '@'.equals(lexer.stringVal())) { Line 463 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:parseTableSourceRest ---> if (lexer.identifierEquals(FnvHash.Constants.USING)) { Line 42 com.alibaba.druid.sql.ast.statement.SQLExprTableSource: ---> public SQLExprTableSource(){ Line 469 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:parseTableSourceRest ---> if (lexer.token() == Token.PARTITION) { Line 23 com.alibaba.druid.sql.parser.Token: ---> public enum Token { Line 3497 com.alibaba.druid.sql.parser.SQLExprParser:parseSelectItem ---> alias = as(); Line 155 com.alibaba.druid.sql.parser.SQLParser:as ---> String alias = null; Line 101 com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock:setGroupBy ---> this.groupBy = x; Line 74 com.alibaba.druid.sql.ast.statement.SQLSelectGroupByClause:setHaving ---> this.having = having; Line 143 com.alibaba.druid.sql.ast.expr.SQLAggregateExpr:accept0 ---> if (arg != null) { Line 142 com.alibaba.druid.sql.ast.expr.SQLAggregateExpr:accept0 ---> for (SQLExpr arg : this.arguments) { Line 40 com.alibaba.druid.sql.ast.SQLObjectImpl:accept ---> accept0(visitor); Line 137 com.alibaba.druid.sql.ast.expr.SQLAggregateExpr:accept0 ---> if (visitor.visit(this)) { Line 329 com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser:primaryRest ---> return super.primaryRest(expr); Line 40 com.alibaba.druid.sql.ast.SQLObjectImpl:accept ---> accept0(visitor); Line 904 com.actiontech.dble.plan.visitor.MySQLItemVisitor:initName ---> expr.accept(ov); Line 157 com.alibaba.druid.sql.parser.SQLExprParser:expr ---> SQLExpr expr = primary(); Line 143 com.alibaba.druid.sql.parser.SQLExprParser:expr ---> if (lexer.token == Token.STAR) { Line 1083 com.alibaba.druid.sql.parser.SQLSelectParser:parseTableSourceRest ---> if (token != Token.LEFT Line 198 com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser:primary ---> return super.primary(); Line 162 com.alibaba.druid.sql.parser.SQLExprParser:expr ---> } else if (token == Token.EQ) { Line 3476 com.alibaba.druid.sql.parser.SQLExprParser:parseSelectItem ---> expr = this.exprRest(expr); Line 2251 com.alibaba.druid.sql.parser.SQLExprParser:orRest ---> return expr; Line 142 com.alibaba.druid.sql.ast.expr.SQLAggregateExpr:accept0 ---> for (SQLExpr arg : this.arguments) { Line 329 com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser:primaryRest ---> return super.primaryRest(expr); Line 174 com.alibaba.druid.sql.parser.SQLExprParser:exprRest ---> expr = bitXorRest(expr); Line 476 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:parseTableSourceRest ---> return super.parseTableSourceRest(tableSource); Line 564 com.alibaba.druid.sql.parser.SQLSelectParser$1: ---> switch (lexer.token) { Line 224 com.alibaba.druid.sql.parser.SQLParser:as ---> return alias; Line 56 com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr: ---> } Line 61 com.actiontech.dble.plan.visitor.TestMySQLItemVisitor:testGroupbyHaving ---> SQLSelectGroupByClause groupBy = query.getGroupBy(); Line 94 com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock:getGroupBy ---> return this.groupBy; Line 64 com.actiontech.dble.plan.visitor.TestMySQLItemVisitor:testGroupbyHaving ---> q.accept(v); Line 62 com.actiontech.dble.plan.visitor.TestMySQLItemVisitor:testGroupbyHaving ---> SQLExpr q = groupBy.getHaving(); Line 40 com.alibaba.druid.sql.ast.SQLObjectImpl:accept ---> accept0(visitor); Line 62 com.alibaba.druid.sql.ast.SQLObjectImpl:acceptChild ---> child.accept(visitor); Line 66 com.alibaba.druid.sql.ast.statement.SQLSelectGroupByClause:getHaving ---> return this.having; Line 137 com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr:accept0 ---> if (visitor.visit(this)) { Line 144 com.alibaba.druid.sql.ast.expr.SQLAggregateExpr:accept0 ---> arg.accept(visitor); Line 169 com.alibaba.druid.sql.ast.expr.SQLAggregateExpr:accept0 ---> visitor.endVisit(this); Line 40 com.alibaba.druid.sql.ast.SQLObjectImpl:accept ---> accept0(visitor); Line 138 com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr:accept0 ---> acceptChild(visitor, this.left); Line 137 com.alibaba.druid.sql.ast.expr.SQLAggregateExpr:accept0 ---> if (visitor.visit(this)) { Line 58 com.alibaba.druid.sql.ast.SQLObjectImpl:acceptChild ---> if (child == null) { Line 1053 com.alibaba.druid.sql.parser.SQLExprParser:primaryRest ---> return expr; Line 137 com.alibaba.druid.sql.ast.expr.SQLAggregateExpr:accept0 ---> if (visitor.visit(this)) { Line 34 com.alibaba.druid.sql.ast.SQLObjectImpl:accept ---> if (visitor == null) { Line 198 com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser:primary ---> return super.primary(); Line 66 com.alibaba.druid.sql.parser.SQLParser:tableAlias ---> return tableAlias(false); Line 169 com.alibaba.druid.sql.parser.SQLExprParser:expr ---> return exprRest(expr); Line 187 com.alibaba.druid.sql.parser.SQLExprParser:exprRest ---> return expr; Line 143 com.alibaba.druid.sql.ast.expr.SQLAggregateExpr:accept0 ---> if (arg != null) { Line 34 com.alibaba.druid.sql.ast.SQLObjectImpl:accept ---> if (visitor == null) { Line 274 com.alibaba.druid.sql.parser.SQLExprParser:bitXorRest ---> return expr; Line 1129 com.alibaba.druid.sql.parser.SQLSelectParser:parseTableSourceRest ---> switch (lexer.token) { Line 43 com.alibaba.druid.sql.ast.SQLObjectImpl:accept ---> } Line 440 com.alibaba.druid.sql.parser.Lexer:nextTokenValue ---> if (ch == '\'') { Line 446 com.alibaba.druid.sql.parser.Lexer:nextTokenValue ---> if (ch == ''') { Line 356 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower = 0xcbf29ce484222325L; Line 452 com.alibaba.druid.sql.parser.Lexer:nextTokenValue ---> if (ch == '0') { Line 95 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:query ---> if (lexer.token() == Token.LPAREN) { Line 61 com.alibaba.druid.sql.parser.SQLSelectParser:select ---> SQLSelectQuery query = query(select); Line 359 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 464 com.alibaba.druid.sql.parser.Lexer:nextTokenValue ---> if (ch > '0' && ch <= '9') { Line 118 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:query ---> if (lexer.token() == Token.SELECT) { Line 268 com.alibaba.druid.sql.parser.Lexer:token ---> return token; Line 362 com.alibaba.druid.sql.parser.SQLSelectParser:query ---> return query(parent, true); Line 360 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 470 com.alibaba.druid.sql.parser.Lexer:nextTokenValue ---> if (ch == '?') { Line 268 com.alibaba.druid.sql.parser.Lexer:token ---> return token; Line 95 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:query ---> if (lexer.token() == Token.LPAREN) { Line 356 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower = 0xcbf29ce484222325L; Line 377 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 476 com.alibaba.druid.sql.parser.Lexer:nextTokenValue ---> if (ch == 'n' || ch == 'N') { Line 506 com.alibaba.druid.sql.parser.Lexer:nextTokenValue ---> if (isFirstIdentifierChar(ch)) { Line 58 com.alibaba.druid.sql.parser.CharTypes:isFirstIdentifierChar ---> if (c <= firstIdentifierFlags.length) { Line 118 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:query ---> if (lexer.token() == Token.SELECT) { Line 359 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 378 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 500 com.alibaba.druid.sql.parser.Lexer:nextTokenValue ---> if (ch == ')') { Line 59 com.alibaba.druid.sql.parser.CharTypes:isFirstIdentifierChar ---> return firstIdentifierFlags[c]; Line 119 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:query ---> lexer.nextTokenValue(); Line 360 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 377 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 506 com.alibaba.druid.sql.parser.Lexer:nextTokenValue ---> if (isFirstIdentifierChar(ch)) { Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 246 com.alibaba.druid.sql.parser.Lexer:scanChar ---> ch = charAt(++pos); Line 377 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 378 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 507 com.alibaba.druid.sql.parser.Lexer:nextTokenValue ---> scanIdentifier(); Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 378 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 377 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 366 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos = 1; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 298 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if ((ch == 'b' || ch == 'B' ) Line 246 com.alibaba.druid.sql.parser.Lexer:scanChar ---> ch = charAt(++pos); Line 377 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 378 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 176 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:query ---> if (lexer.identifierEquals(FnvHash.Constants.SQL_CALC_FOUND_ROWS)) { Line 1950 com.alibaba.druid.sql.parser.Lexer:identifierEquals ---> if (token != Token.IDENTIFIER) { Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 321 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (ch == '`') { Line 378 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 356 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower = 0xcbf29ce484222325L; Line 357 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash = 0xcbf29ce484222325L; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 1960 com.alibaba.druid.sql.parser.Lexer:identifierEquals ---> return this.hash_lower == hash_lower; Line 198 com.alibaba.druid.sql.parser.Keywords:getKeyword ---> return null; Line 388 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (bufPos == 1) { Line 377 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 359 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 356 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower = 0xcbf29ce484222325L; Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 362 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 312 com.alibaba.druid.sql.parser.Lexer:nextTokenComma ---> if (ch == ',' || ch == ',') { Line 176 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:query ---> if (lexer.identifierEquals(FnvHash.Constants.SQL_CALC_FOUND_ROWS)) { Line 398 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (tok != null) { Line 378 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 366 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos = 1; Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 298 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if ((ch == 'b' || ch == 'B' ) Line 611 com.alibaba.druid.sql.parser.Lexer:nextToken ---> ch = charAt(++pos); Line 360 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 359 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 58 com.alibaba.druid.sql.parser.CharTypes:isFirstIdentifierChar ---> if (c <= firstIdentifierFlags.length) { Line 620 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isFirstIdentifierChar(ch)) { Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 363 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 318 com.alibaba.druid.sql.parser.Lexer:nextTokenComma ---> if (ch == ')' || ch == ')') { Line 181 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:query ---> parseSelectList(queryBlock); Line 406 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> token = Token.IDENTIFIER; Line 397 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> Token tok = keywods.getKeyword(hash_lower); Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 321 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (ch == '`') { Line 377 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 360 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 615 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (ch == '$' && charAt(pos + 1) == '{') { Line 59 com.alibaba.druid.sql.parser.CharTypes:isFirstIdentifierChar ---> return firstIdentifierFlags[c]; Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 246 com.alibaba.druid.sql.parser.Lexer:scanChar ---> ch = charAt(++pos); Line 324 com.alibaba.druid.sql.parser.Lexer:nextTokenComma ---> if (ch == '.') { Line 937 com.alibaba.druid.sql.parser.SQLSelectParser:parseSelectList ---> final SQLSelectItem selectItem = this.exprParser.parseSelectItem(); Line 3355 com.alibaba.druid.sql.parser.SQLExprParser:parseSelectItem ---> Token token = lexer.token; Line 197 com.alibaba.druid.sql.parser.Keywords:getKeyword ---> if (index < 0) { Line 196 com.alibaba.druid.sql.parser.Keywords:getKeyword ---> int index = Arrays.binarySearch(hashArray, hash); Line 388 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (bufPos == 1) { Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 378 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 377 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 58 com.alibaba.druid.sql.parser.CharTypes:isFirstIdentifierChar ---> if (c <= firstIdentifierFlags.length) { Line 620 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isFirstIdentifierChar(ch)) { Line 620 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isFirstIdentifierChar(ch)) { Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 604 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isWhitespace(ch)) { Line 330 com.alibaba.druid.sql.parser.Lexer:nextTokenComma ---> if (ch == 'a' || ch == 'A') { Line 3356 com.alibaba.druid.sql.parser.SQLExprParser:parseSelectItem ---> if (token == Token.IDENTIFIER) { Line 200 com.alibaba.druid.sql.parser.Keywords:getKeyword ---> return tokens[index]; Line 398 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (tok != null) { Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 357 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash = 0xcbf29ce484222325L; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 377 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 378 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 59 com.alibaba.druid.sql.parser.CharTypes:isFirstIdentifierChar ---> return firstIdentifierFlags[c]; Line 615 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (ch == '$' && charAt(pos + 1) == '{') { Line 620 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isFirstIdentifierChar(ch)) { Line 58 com.alibaba.druid.sql.parser.CharTypes:isFirstIdentifierChar ---> if (c <= firstIdentifierFlags.length) { Line 621 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (ch == '(') { Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 121 com.alibaba.druid.sql.parser.CharTypes:isWhitespace ---> return (c <= whitespaceFlags.length && whitespaceFlags[c]) // Line 344 com.alibaba.druid.sql.parser.Lexer:nextTokenComma ---> nextToken(); Line 3359 com.alibaba.druid.sql.parser.SQLExprParser:parseSelectItem ---> lexer.nextTokenComma(); Line 399 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> token = tok; Line 71 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:parseFrom ---> if (lexer.token() != Token.FROM) { Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 362 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 386 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> this.ch = charAt(pos); Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 298 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if ((ch == 'b' || ch == 'B' ) Line 246 com.alibaba.druid.sql.parser.Lexer:scanChar ---> ch = charAt(++pos); Line 378 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 377 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 620 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isFirstIdentifierChar(ch)) { Line 615 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (ch == '$' && charAt(pos + 1) == '{') { Line 59 com.alibaba.druid.sql.parser.CharTypes:isFirstIdentifierChar ---> return firstIdentifierFlags[c]; Line 625 com.alibaba.druid.sql.parser.Lexer:nextToken ---> } else if (ch == ')') { Line 357 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash = 0xcbf29ce484222325L; Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 600 com.alibaba.druid.sql.parser.Lexer:nextToken ---> this.lines = 0; Line 604 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isWhitespace(ch)) { Line 246 com.alibaba.druid.sql.parser.Lexer:scanChar ---> ch = charAt(++pos); Line 268 com.alibaba.druid.sql.parser.Lexer:token ---> return token; Line 193 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:query ---> parseFrom(queryBlock); Line 579 com.alibaba.druid.sql.parser.Lexer:nextTokenIdent ---> if (isFirstIdentifierChar(ch)) { Line 58 com.alibaba.druid.sql.parser.CharTypes:isFirstIdentifierChar ---> if (c <= firstIdentifierFlags.length) { Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 363 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 321 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (ch == '`') { Line 377 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 378 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 621 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (ch == '(') { Line 620 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isFirstIdentifierChar(ch)) { Line 631 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (ch == 'N' || ch == 'n') { Line 362 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 611 com.alibaba.druid.sql.parser.Lexer:nextToken ---> ch = charAt(++pos); Line 71 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:parseFrom ---> if (lexer.token() != Token.FROM) { Line 59 com.alibaba.druid.sql.parser.CharTypes:isFirstIdentifierChar ---> return firstIdentifierFlags[c]; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 386 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> this.ch = charAt(pos); Line 378 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 377 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 620 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isFirstIdentifierChar(ch)) { Line 58 com.alibaba.druid.sql.parser.CharTypes:isFirstIdentifierChar ---> if (c <= firstIdentifierFlags.length) { Line 625 com.alibaba.druid.sql.parser.Lexer:nextToken ---> } else if (ch == ')') { Line 621 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (ch == '(') { Line 386 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> this.ch = charAt(pos); Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 363 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 75 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:parseFrom ---> lexer.nextTokenIdent(); Line 579 com.alibaba.druid.sql.parser.Lexer:nextTokenIdent ---> if (isFirstIdentifierChar(ch)) { Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 366 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos = 1; Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 604 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isWhitespace(ch)) { Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 377 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 378 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 59 com.alibaba.druid.sql.parser.CharTypes:isFirstIdentifierChar ---> return firstIdentifierFlags[c]; Line 615 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (ch == '$' && charAt(pos + 1) == '{') { Line 631 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (ch == 'N' || ch == 'n') { Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 625 com.alibaba.druid.sql.parser.Lexer:nextToken ---> } else if (ch == ')') { Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 246 com.alibaba.druid.sql.parser.Lexer:scanChar ---> ch = charAt(++pos); Line 580 com.alibaba.druid.sql.parser.Lexer:nextTokenIdent ---> scanIdentifier(); Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 121 com.alibaba.druid.sql.parser.CharTypes:isWhitespace ---> return (c <= whitespaceFlags.length && whitespaceFlags[c]) // Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 378 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 377 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 620 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isFirstIdentifierChar(ch)) { Line 620 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isFirstIdentifierChar(ch)) { Line 58 com.alibaba.druid.sql.parser.CharTypes:isFirstIdentifierChar ---> if (c <= firstIdentifierFlags.length) { Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 386 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> this.ch = charAt(pos); Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 631 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (ch == 'N' || ch == 'n') { Line 386 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> this.ch = charAt(pos); Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 600 com.alibaba.druid.sql.parser.Lexer:nextToken ---> this.lines = 0; Line 604 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isWhitespace(ch)) { Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 246 com.alibaba.druid.sql.parser.Lexer:scanChar ---> ch = charAt(++pos); Line 520 com.alibaba.druid.sql.parser.Lexer:nextTokenBy ---> char ch_next = charAt(pos + 1); Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 357 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash = 0xcbf29ce484222325L; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 377 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower ^= ((ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch); Line 366 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos = 1; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 611 com.alibaba.druid.sql.parser.Lexer:nextToken ---> ch = charAt(++pos); Line 298 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if ((ch == 'b' || ch == 'B' ) Line 378 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 621 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (ch == '(') { Line 615 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (ch == '$' && charAt(pos + 1) == '{') { Line 59 com.alibaba.druid.sql.parser.CharTypes:isFirstIdentifierChar ---> return firstIdentifierFlags[c]; Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 611 com.alibaba.druid.sql.parser.Lexer:nextToken ---> ch = charAt(++pos); Line 298 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if ((ch == 'b' || ch == 'B' ) Line 386 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> this.ch = charAt(pos); Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 515 com.alibaba.druid.sql.parser.Lexer:nextTokenBy ---> while (ch == ' ') { Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 611 com.alibaba.druid.sql.parser.Lexer:nextToken ---> ch = charAt(++pos); Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 522 com.alibaba.druid.sql.parser.Lexer:nextTokenBy ---> char ch_next_2 = charAt(pos + 2); Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 519 com.alibaba.druid.sql.parser.Lexer:nextTokenBy ---> if (ch == 'b' || ch == 'B') { Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 777 com.alibaba.druid.sql.parser.SQLSelectParser:parseGroupBy ---> accept(Token.BY); Line 526 com.alibaba.druid.sql.parser.Lexer:nextTokenBy ---> token = Token.BY; Line 525 com.alibaba.druid.sql.parser.Lexer:nextTokenBy ---> ch = ' '; Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 362 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 378 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash_lower *= 0x100000001b3L; Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 321 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (ch == '`') { Line 397 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> Token tok = keywods.getKeyword(hash_lower); Line 625 com.alibaba.druid.sql.parser.Lexer:nextToken ---> } else if (ch == ')') { Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 620 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isFirstIdentifierChar(ch)) { Line 386 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> this.ch = charAt(pos); Line 208 com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser:primaryRest ---> if (lexer.token() == Token.LITERAL_CHARS) { Line 321 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (ch == '`') { Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 776 com.alibaba.druid.sql.parser.SQLSelectParser:parseGroupBy ---> lexer.nextTokenBy(); Line 516 com.alibaba.druid.sql.parser.Lexer:nextTokenBy ---> scanChar(); Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 521 com.alibaba.druid.sql.parser.Lexer:nextTokenBy ---> if (ch_next == 'y' || ch_next == 'Y') { Line 348 com.alibaba.druid.sql.parser.SQLParser:accept ---> if (lexer.token == token) { Line 604 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isWhitespace(ch)) { Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 363 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 357 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash = 0xcbf29ce484222325L; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 397 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> Token tok = keywods.getKeyword(hash_lower); Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 388 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (bufPos == 1) { Line 196 com.alibaba.druid.sql.parser.Keywords:getKeyword ---> int index = Arrays.binarySearch(hashArray, hash); Line 197 com.alibaba.druid.sql.parser.Keywords:getKeyword ---> if (index < 0) { Line 631 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (ch == 'N' || ch == 'n') { Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 645 com.alibaba.druid.sql.parser.Lexer:nextToken ---> switch (ch) { Line 268 com.alibaba.druid.sql.parser.Lexer:token ---> return token; Line 259 com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser:primaryRest ---> } else if (lexer.token() == Token.IDENTIFIER) { Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 386 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> this.ch = charAt(pos); Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 246 com.alibaba.druid.sql.parser.Lexer:scanChar ---> ch = charAt(++pos); Line 523 com.alibaba.druid.sql.parser.Lexer:nextTokenBy ---> if (ch_next_2 == ' ') { Line 349 com.alibaba.druid.sql.parser.SQLParser:accept ---> lexer.nextToken(); Line 121 com.alibaba.druid.sql.parser.CharTypes:isWhitespace ---> return (c <= whitespaceFlags.length && whitespaceFlags[c]) // Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 362 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 197 com.alibaba.druid.sql.parser.Keywords:getKeyword ---> if (index < 0) { Line 196 com.alibaba.druid.sql.parser.Keywords:getKeyword ---> int index = Arrays.binarySearch(hashArray, hash); Line 388 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (bufPos == 1) { Line 398 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (tok != null) { Line 200 com.alibaba.druid.sql.parser.Keywords:getKeyword ---> return tokens[index]; Line 386 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> this.ch = charAt(pos); Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 611 com.alibaba.druid.sql.parser.Lexer:nextToken ---> ch = charAt(++pos); Line 298 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if ((ch == 'b' || ch == 'B' ) Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 58 com.alibaba.druid.sql.parser.CharTypes:isFirstIdentifierChar ---> if (c <= firstIdentifierFlags.length) { Line 620 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isFirstIdentifierChar(ch)) { Line 674 com.alibaba.druid.sql.parser.Lexer:nextToken ---> token = LPAREN; Line 321 com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser:primaryRest ---> if (lexer.token() == Token.VARIANT && '@'.equals(lexer.stringVal())) { Line 208 com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser:primaryRest ---> if (lexer.token() == Token.LITERAL_CHARS) { Line 268 com.alibaba.druid.sql.parser.Lexer:token ---> return token; Line 375 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos++; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 604 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isWhitespace(ch)) { Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 366 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos = 1; Line 600 com.alibaba.druid.sql.parser.Lexer:nextToken ---> this.lines = 0; Line 524 com.alibaba.druid.sql.parser.Lexer:nextTokenBy ---> pos += 2; Line 604 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isWhitespace(ch)) { Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 363 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 200 com.alibaba.druid.sql.parser.Keywords:getKeyword ---> return tokens[index]; Line 398 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (tok != null) { Line 399 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> token = tok; Line 199 com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser:query ---> parseGroupBy(queryBlock); Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 321 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (ch == '`') { Line 357 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash = 0xcbf29ce484222325L; Line 298 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if ((ch == 'b' || ch == 'B' ) Line 611 com.alibaba.druid.sql.parser.Lexer:nextToken ---> ch = charAt(++pos); Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 59 com.alibaba.druid.sql.parser.CharTypes:isFirstIdentifierChar ---> return firstIdentifierFlags[c]; Line 615 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (ch == '$' && charAt(pos + 1) == '{') { Line 268 com.alibaba.druid.sql.parser.Lexer:token ---> return token; Line 259 com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser:primaryRest ---> } else if (lexer.token() == Token.IDENTIFIER) { Line 388 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (bufPos == 1) { Line 198 com.alibaba.druid.sql.parser.Keywords:getKeyword ---> return null; Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 121 com.alibaba.druid.sql.parser.CharTypes:isWhitespace ---> return (c <= whitespaceFlags.length && whitespaceFlags[c]) // Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 611 com.alibaba.druid.sql.parser.Lexer:nextToken ---> ch = charAt(++pos); Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 399 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> token = tok; Line 775 com.alibaba.druid.sql.parser.SQLSelectParser:parseGroupBy ---> if (lexer.token == Token.GROUP) { Line 386 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> this.ch = charAt(pos); Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 362 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 321 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (ch == '`') { Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 246 com.alibaba.druid.sql.parser.Lexer:scanChar ---> ch = charAt(++pos); Line 620 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isFirstIdentifierChar(ch)) { Line 620 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isFirstIdentifierChar(ch)) { Line 58 com.alibaba.druid.sql.parser.CharTypes:isFirstIdentifierChar ---> if (c <= firstIdentifierFlags.length) { Line 1090 com.alibaba.druid.sql.parser.SQLExprParser:methodRest ---> if (expr instanceof SQLIdentifierExpr) { Line 1091 com.alibaba.druid.sql.parser.SQLExprParser:methodRest ---> SQLIdentifierExpr identifierExpr = (SQLIdentifierExpr) expr; Line 321 com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser:primaryRest ---> if (lexer.token() == Token.VARIANT && '@'.equals(lexer.stringVal())) { Line 398 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (tok != null) { Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 649 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> if (c <= identifierFlags.length) { Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 366 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos = 1; Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 604 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isWhitespace(ch)) { Line 600 com.alibaba.druid.sql.parser.Lexer:nextToken ---> this.lines = 0; Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 822 com.alibaba.druid.sql.parser.SQLSelectParser:parseGroupBy ---> if (lexer.token == (Token.HAVING)) { Line 604 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isWhitespace(ch)) { Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 363 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 645 com.alibaba.druid.sql.parser.Lexer:nextToken ---> switch (ch) { Line 615 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (ch == '$' && charAt(pos + 1) == '{') { Line 59 com.alibaba.druid.sql.parser.CharTypes:isFirstIdentifierChar ---> return firstIdentifierFlags[c]; Line 1092 com.alibaba.druid.sql.parser.SQLExprParser:methodRest ---> methodName = identifierExpr.getName(); Line 54 com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr: ---> this.name = name; Line 329 com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser:primaryRest ---> return super.primaryRest(expr); Line 406 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> token = Token.IDENTIFIER; Line 825 com.alibaba.druid.sql.parser.SQLSelectParser:parseGroupBy ---> SQLExpr having = this.exprParser.expr(); Line 191 com.alibaba.druid.sql.parser.SQLExprParser:bitXor ---> SQLExpr expr = primary(); Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 650 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:isIdentifierChar ---> return identifierFlags[c]; Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 611 com.alibaba.druid.sql.parser.Lexer:nextToken ---> ch = charAt(++pos); Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 823 com.alibaba.druid.sql.parser.SQLSelectParser:parseGroupBy ---> lexer.nextToken(); Line 121 com.alibaba.druid.sql.parser.CharTypes:isWhitespace ---> return (c <= whitespaceFlags.length && whitespaceFlags[c]) // Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 742 com.alibaba.druid.sql.parser.Lexer:nextToken ---> token = Token.STAR; Line 1069 com.alibaba.druid.sql.parser.SQLExprParser:methodRest ---> if (acceptLPAREN) { Line 620 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isFirstIdentifierChar(ch)) { Line 71 com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr:getName ---> return this.name; Line 1049 com.alibaba.druid.sql.parser.SQLExprParser:primaryRest ---> return methodRest(expr, true); Line 143 com.alibaba.druid.sql.parser.SQLExprParser:expr ---> if (lexer.token == Token.STAR) { Line 174 com.alibaba.druid.sql.parser.SQLExprParser:exprRest ---> expr = bitXorRest(expr); Line 192 com.alibaba.druid.sql.parser.SQLExprParser:bitXor ---> return bitXorRest(expr); Line 198 com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser:primary ---> return super.primary(); Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 371 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> if (!isIdentifierChar(ch)) { Line 380 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash ^= ch; Line 600 com.alibaba.druid.sql.parser.Lexer:nextToken ---> this.lines = 0; Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 604 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isWhitespace(ch)) { Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 366 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> bufPos = 1; Line 143 com.alibaba.druid.sql.parser.SQLExprParser:expr ---> if (lexer.token == Token.STAR) { Line 1070 com.alibaba.druid.sql.parser.SQLExprParser:methodRest ---> accept(Token.LPAREN); Line 645 com.alibaba.druid.sql.parser.Lexer:nextToken ---> switch (ch) { Line 1191 com.alibaba.druid.sql.parser.SQLExprParser:methodRest ---> SQLAggregateExpr aggregateExpr = parseAggregateExpr(methodName); Line 175 com.alibaba.druid.sql.parser.SQLExprParser:exprRest ---> expr = multiplicativeRest(expr); Line 274 com.alibaba.druid.sql.parser.SQLExprParser:bitXorRest ---> return expr; Line 274 com.alibaba.druid.sql.parser.SQLExprParser:bitXorRest ---> return expr; Line 278 com.alibaba.druid.sql.parser.SQLExprParser:multiplicative ---> SQLExpr expr = bitXor(); Line 685 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanNumber ---> bufPos++; Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 381 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> hash *= 0x100000001b3L; Line 611 com.alibaba.druid.sql.parser.Lexer:nextToken ---> ch = charAt(++pos); Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 144 com.alibaba.druid.sql.parser.SQLExprParser:expr ---> lexer.nextToken(); Line 2857 com.alibaba.druid.sql.parser.SQLExprParser:accept ---> lexer.nextToken(); Line 803 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (Character.isLetter(ch)) { Line 1996 com.alibaba.druid.sql.parser.Lexer:isOperator ---> return true; Line 1638 com.alibaba.druid.sql.parser.SQLExprParser:parseAggregateExpr ---> accept(Token.RPAREN); Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 319 com.alibaba.druid.sql.parser.SQLExprParser:multiplicativeRest ---> return expr; Line 176 com.alibaba.druid.sql.parser.SQLExprParser:exprRest ---> expr = additiveRest(expr); Line 279 com.alibaba.druid.sql.parser.SQLExprParser:multiplicative ---> return multiplicativeRest(expr); Line 192 com.alibaba.druid.sql.parser.SQLExprParser:bitXor ---> return bitXorRest(expr); Line 689 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanNumber ---> ch = charAt(++pos); Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 369 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanIdentifier ---> ch = charAt(++pos); Line 246 com.alibaba.druid.sql.parser.Lexer:scanChar ---> ch = charAt(++pos); Line 246 com.alibaba.druid.sql.parser.Lexer:scanChar ---> ch = charAt(++pos); Line 246 com.alibaba.druid.sql.parser.Lexer:scanChar ---> ch = charAt(++pos); Line 808 com.alibaba.druid.sql.parser.Lexer:nextToken ---> if (isOperator(ch)) { Line 2857 com.alibaba.druid.sql.parser.SQLExprParser:accept ---> lexer.nextToken(); Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 177 com.alibaba.druid.sql.parser.SQLExprParser:exprRest ---> expr = shiftRest(expr); Line 2072 com.alibaba.druid.sql.parser.SQLExprParser:additiveRest ---> return expr; Line 319 com.alibaba.druid.sql.parser.SQLExprParser:multiplicativeRest ---> return expr; Line 2038 com.alibaba.druid.sql.parser.SQLExprParser:additive ---> SQLExpr expr = multiplicative(); Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 684 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanNumber ---> if (ch >= '0' && ch <= '9') { Line 246 com.alibaba.druid.sql.parser.Lexer:scanChar ---> ch = charAt(++pos); Line 136 com.alibaba.druid.sql.parser.Lexer:charAt ---> if (index >= text.length()) { Line 809 com.alibaba.druid.sql.parser.Lexer:nextToken ---> scanOperator(); Line 246 com.alibaba.druid.sql.parser.Lexer:scanChar ---> ch = charAt(++pos); Line 2095 com.alibaba.druid.sql.parser.SQLExprParser:shiftRest ---> return expr; Line 2040 com.alibaba.druid.sql.parser.SQLExprParser:additive ---> if (lexer.token == Token.PLUS Line 279 com.alibaba.druid.sql.parser.SQLExprParser:multiplicative ---> return multiplicativeRest(expr); Line 2076 com.alibaba.druid.sql.parser.SQLExprParser:shift ---> SQLExpr expr = additive(); Line 658 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanNumber ---> if (ch == '0' && charAt(pos + 1) == 'b') { Line 689 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanNumber ---> ch = charAt(++pos); Line 140 com.alibaba.druid.sql.parser.Lexer:charAt ---> return text.charAt(index); Line 841 com.alibaba.druid.sql.parser.Lexer:scanOperator ---> switch (ch) { Line 178 com.alibaba.druid.sql.parser.SQLExprParser:exprRest ---> expr = bitAndRest(expr); Line 2077 com.alibaba.druid.sql.parser.SQLExprParser:shift ---> return shiftRest(expr); Line 2047 com.alibaba.druid.sql.parser.SQLExprParser:additive ---> return expr; Line 692 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanNumber ---> boolean isDouble = false; Line 694 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanNumber ---> if (ch == '.') { Line 737 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanNumber ---> if (isFirstIdentifierChar(ch) && !(ch == 'b' && bufPos == 1 && charAt(pos - 1) == '0')) { Line 58 com.alibaba.druid.sql.parser.CharTypes:isFirstIdentifierChar ---> if (c <= firstIdentifierFlags.length) { Line 246 com.alibaba.druid.sql.parser.Lexer:scanChar ---> ch = charAt(++pos); Line 921 com.alibaba.druid.sql.parser.Lexer:scanOperator ---> if (ch == '=') { Line 179 com.alibaba.druid.sql.parser.SQLExprParser:exprRest ---> expr = bitOrRest(expr); Line 1906 com.alibaba.druid.sql.parser.SQLExprParser:bitAndRest ---> return expr; Line 1896 com.alibaba.druid.sql.parser.SQLExprParser:bitAnd ---> SQLExpr expr = shift(); Line 2095 com.alibaba.druid.sql.parser.SQLExprParser:shiftRest ---> return expr; Line 734 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanNumber ---> if (isDouble) { Line 59 com.alibaba.druid.sql.parser.CharTypes:isFirstIdentifierChar ---> return firstIdentifierFlags[c]; Line 924 com.alibaba.druid.sql.parser.Lexer:scanOperator ---> } else if (ch == '>') { Line 1926 com.alibaba.druid.sql.parser.SQLExprParser:bitOrRest ---> return expr; Line 2077 com.alibaba.druid.sql.parser.SQLExprParser:shift ---> return shiftRest(expr); Line 737 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanNumber ---> if (isFirstIdentifierChar(ch) && !(ch == 'b' && bufPos == 1 && charAt(pos - 1) == '0')) { Line 928 com.alibaba.druid.sql.parser.Lexer:scanOperator ---> token = Token.GT; Line 180 com.alibaba.druid.sql.parser.SQLExprParser:exprRest ---> expr = inRest(expr); Line 1897 com.alibaba.druid.sql.parser.SQLExprParser:bitAnd ---> return bitAndRest(expr); Line 753 com.alibaba.druid.sql.dialect.mysql.parser.MySqlLexer:scanNumber ---> token = Token.LITERAL_INT; Line 904 com.actiontech.dble.plan.visitor.MySQLItemVisitor:initName ---> expr.accept(ov); Line 160 com.alibaba.druid.sql.parser.SQLExprParser:expr ---> if (token == Token.COMMA) { Line 159 com.alibaba.druid.sql.parser.SQLExprParser:expr ---> Token token = lexer.token; Line 169 com.alibaba.druid.sql.parser.SQLExprParser:expr ---> return exprRest(expr); Line 2034 com.alibaba.druid.sql.parser.SQLExprParser:inRest ---> return expr; Line 113 com.alibaba.druid.sql.ast.expr.SQLBinaryOperator: ---> this.name = name; Line 112 com.alibaba.druid.sql.ast.expr.SQLBinaryOperator: ---> SQLBinaryOperator(String name, int priority){ Line 115 com.alibaba.druid.sql.ast.expr.SQLBinaryOperator: ---> this.priority = priority; Line 114 com.alibaba.druid.sql.ast.expr.SQLBinaryOperator: ---> this.name_lcase = name.toLowerCase(); Line 52 com.alibaba.druid.sql.ast.expr.SQLBinaryOperator: ---> GreaterThan('>', 110), Line 1906 com.alibaba.druid.sql.parser.SQLExprParser:bitAndRest ---> return expr; Line 1910 com.alibaba.druid.sql.parser.SQLExprParser:bitOr ---> SQLExpr expr = bitAnd(); Line 2351 com.alibaba.druid.sql.parser.SQLExprParser:relationalRest ---> if (lexer.token == Token.EQ) { Line 40 com.alibaba.druid.sql.ast.SQLObjectImpl:accept ---> accept0(visitor); Line 162 com.alibaba.druid.sql.parser.SQLExprParser:expr ---> } else if (token == Token.EQ) { Line 181 com.alibaba.druid.sql.parser.SQLExprParser:exprRest ---> expr = relationalRest(expr); Line 52 com.alibaba.druid.sql.ast.expr.SQLBinaryOperator: ---> GreaterThan('>', 110), Line 1897 com.alibaba.druid.sql.parser.SQLExprParser:bitAnd ---> return bitAndRest(expr); Line 1911 com.alibaba.druid.sql.parser.SQLExprParser:bitOr ---> return bitOrRest(expr); Line 62 com.alibaba.druid.sql.ast.SQLObjectImpl:acceptChild ---> child.accept(visitor); Line 169 com.alibaba.druid.sql.ast.expr.SQLAggregateExpr:accept0 ---> visitor.endVisit(this); Line 164 com.alibaba.druid.sql.ast.expr.SQLAggregateExpr:accept0 ---> if (this.withinGroup != null) { Line 518 com.actiontech.dble.plan.visitor.MySQLItemVisitor:endVisit ---> item = new ItemSumCount(args, isDistinct, false, null); Line 2358 com.alibaba.druid.sql.parser.SQLExprParser:relationalRest ---> expr = new SQLBinaryOpExpr(expr, op, rightExp, getDbType()); Line 49 com.alibaba.druid.sql.parser.SQLParser:getDbType ---> return dbType; Line 2347 com.alibaba.druid.sql.parser.SQLExprParser:relationalRest ---> SQLBinaryOperator op = SQLBinaryOperator.GreaterThan; Line 1926 com.alibaba.druid.sql.parser.SQLExprParser:bitOrRest ---> return expr; Line 40 com.alibaba.druid.sql.ast.SQLObjectImpl:accept ---> accept0(visitor); Line 526 com.actiontech.dble.plan.visitor.MySQLItemVisitor:endVisit ---> initName(x); Line 2358 com.alibaba.druid.sql.parser.SQLExprParser:relationalRest ---> expr = new SQLBinaryOpExpr(expr, op, rightExp, getDbType()); Line 1911 com.alibaba.druid.sql.parser.SQLExprParser:bitOr ---> return bitOrRest(expr); Line 51 com.alibaba.druid.sql.ast.expr.SQLIntegerExpr:accept0 ---> visitor.endVisit(this); Line 63 com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr: ---> this.left = left; Line 136 com.actiontech.dble.plan.visitor.MySQLItemVisitor:endVisit ---> Item itemLeft = getItem(x.getLeft()); Line 904 com.actiontech.dble.plan.visitor.MySQLItemVisitor:initName ---> expr.accept(ov); Line 65 com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr: ---> setRight(right); Line 435 com.actiontech.dble.plan.visitor.MySQLItemVisitor:endVisit ---> initName(x); Line 99 com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr:getLeft ---> return this.left; Line 40 com.alibaba.druid.sql.ast.SQLObjectImpl:accept ---> accept0(visitor); Line 117 com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr:setRight ---> this.right = right; Line 282 com.actiontech.dble.plan.visitor.MySQLItemVisitor:endVisit ---> initName(x); Line 904 com.actiontech.dble.plan.visitor.MySQLItemVisitor:initName ---> expr.accept(ov); Line 136 com.actiontech.dble.plan.visitor.MySQLItemVisitor:endVisit ---> Item itemLeft = getItem(x.getLeft()); Line 23 com.actiontech.dble.plan.common.item.function.primary.ItemBoolFunc: ---> args.add(a); Line 139 com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr:accept0 ---> acceptChild(visitor, this.right); Line 904 com.actiontech.dble.plan.visitor.MySQLItemVisitor:initName ---> expr.accept(ov); Line 40 com.alibaba.druid.sql.ast.SQLObjectImpl:accept ---> accept0(visitor); Line 80 com.actiontech.dble.plan.visitor.MySQLItemVisitor:getItem ---> MySQLItemVisitor fv = new MySQLItemVisitor(currentDb, this.charsetIndex, this.metaManager); Line 21 com.actiontech.dble.plan.common.item.function.operator.ItemBoolFunc2: ---> cmp = new ArgComparator(a, b); Line 101 com.actiontech.dble.plan.common.item.function.operator.cmpfunc.util.ArgComparator: ---> this.b = b; Line 100 com.actiontech.dble.plan.common.item.function.operator.cmpfunc.util.ArgComparator: ---> this.a = a; Line 34 com.actiontech.dble.plan.common.item.function.operator.cmpfunc.util.ArgComparator: ---> private boolean caseInsensitive = false; Line 29 com.actiontech.dble.plan.common.item.function.operator.cmpfunc.util.ArgComparator: ---> boolean setNull = true; // TRUE <=> set owner->null_value Line 22 com.actiontech.dble.plan.common.item.function.primary.ItemBoolFunc: ---> this(new ArrayList()); Line 28 com.actiontech.dble.plan.common.item.function.primary.ItemBoolFunc: ---> super(args); Line 32 com.actiontech.dble.plan.common.item.function.primary.ItemIntFunc: ---> super(args); Line 35 com.actiontech.dble.plan.common.item.function.ItemFunc: ---> public ItemFunc(List args) { Line 30 com.actiontech.dble.plan.common.item.Item: ---> public abstract class Item { Line 146 com.actiontech.dble.plan.common.item.Item: ---> protected int maxLength = 0; Line 147 com.actiontech.dble.plan.common.item.Item: ---> protected int decimals = NOT_FIXED_DEC; Line 158 com.actiontech.dble.plan.common.item.Item: ---> protected int charsetIndex = 63; Line 36 com.actiontech.dble.plan.common.item.function.ItemFunc: ---> this.args = args; Line 99 com.actiontech.dble.plan.common.item.function.operator.cmpfunc.util.ArgComparator: ---> public ArgComparator(Item a, Item b) { Line 25 com.actiontech.dble.plan.common.item.function.operator.cmpfunc.util.ArgComparator: ---> double precision = 0.0; Line 21 com.actiontech.dble.plan.common.item.function.operator.ItemBoolFunc2: ---> cmp = new ArgComparator(a, b); Line 137 com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr:accept0 ---> if (visitor.visit(this)) { Line 58 com.alibaba.druid.sql.ast.SQLObjectImpl:acceptChild ---> if (child == null) { Line 40 com.alibaba.druid.sql.ast.SQLObjectImpl:accept ---> accept0(visitor); Line 949 com.actiontech.dble.plan.common.item.Item:setItemName ---> this.itemName = itemName; Line 142 com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr:accept0 ---> visitor.endVisit(this); Line 22 com.actiontech.dble.plan.common.item.function.operator.cmpfunc.ItemFuncGt: ---> super(a, b); Line 20 com.actiontech.dble.plan.common.item.function.operator.ItemBoolFunc2: ---> super(a, b); Line 250 com.actiontech.dble.plan.visitor.MySQLItemVisitor:endVisit ---> item = new ItemFuncGt(itemLeft, itemRight); Line 21 com.actiontech.dble.plan.common.item.function.operator.ItemBoolFunc2: ---> cmp = new ArgComparator(a, b); Line 142 com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr:accept0 ---> visitor.endVisit(this); Line 945 com.actiontech.dble.plan.common.item.Item:getItemName ---> return itemName; Line 283 com.actiontech.dble.plan.visitor.MySQLItemVisitor:endVisit ---> item.setItemName(item.getItemName().replaceAll('\n\\t', ' ')); Line 250 com.actiontech.dble.plan.visitor.MySQLItemVisitor:endVisit ---> item = new ItemFuncGt(itemLeft, itemRight); Line 283 com.actiontech.dble.plan.visitor.MySQLItemVisitor:endVisit ---> item.setItemName(item.getItemName().replaceAll('\n\\t', ' ')); Line 76 com.actiontech.dble.plan.visitor.MySQLItemVisitor:getItem ---> return item; Line 949 com.actiontech.dble.plan.common.item.Item:setItemName ---> this.itemName = itemName; Line 66 com.actiontech.dble.plan.visitor.TestMySQLItemVisitor:testGroupbyHaving ---> Assert.assertEquals(true, 'COUNT(*) > 1'.equals(item.getItemName())); Line 945 com.actiontech.dble.plan.common.item.Item:getItemName ---> return itemName; Line 66 com.actiontech.dble.plan.visitor.TestMySQLItemVisitor:testGroupbyHaving ---> Assert.assertEquals(true, 'COUNT(*) > 1'.equals(item.getItemName()));