|
21 | 21 | import com.google.protobuf.UnknownFieldSet;
|
22 | 22 | import com.jd.jdbc.VSchemaManager;
|
23 | 23 | import com.jd.jdbc.engine.Engine;
|
| 24 | +import static com.jd.jdbc.engine.Engine.PulloutOpcode.PulloutExists; |
| 25 | +import static com.jd.jdbc.engine.Engine.PulloutOpcode.PulloutIn; |
| 26 | +import static com.jd.jdbc.engine.Engine.PulloutOpcode.PulloutNotIn; |
| 27 | +import static com.jd.jdbc.engine.Engine.PulloutOpcode.PulloutValue; |
| 28 | +import static com.jd.jdbc.engine.Engine.RouteOpcode.SelectDBA; |
| 29 | +import static com.jd.jdbc.engine.Engine.RouteOpcode.SelectReference; |
24 | 30 | import com.jd.jdbc.engine.OrderedAggregateEngine;
|
25 | 31 | import com.jd.jdbc.engine.RouteEngine;
|
26 | 32 | import com.jd.jdbc.engine.table.TableRouteEngine;
|
|
32 | 38 | import com.jd.jdbc.planbuilder.tableplan.TableRoutePlan;
|
33 | 39 | import com.jd.jdbc.sqlparser.SQLUtils;
|
34 | 40 | import com.jd.jdbc.sqlparser.SqlParser;
|
| 41 | +import static com.jd.jdbc.sqlparser.SqlParser.GroupByExpr.ColName; |
| 42 | +import static com.jd.jdbc.sqlparser.SqlParser.GroupByExpr.Literal; |
| 43 | +import static com.jd.jdbc.sqlparser.SqlParser.HAVING_STR; |
| 44 | +import static com.jd.jdbc.sqlparser.SqlParser.SelectExpr.AliasedExpr; |
| 45 | +import static com.jd.jdbc.sqlparser.SqlParser.SelectExpr.Nextval; |
| 46 | +import static com.jd.jdbc.sqlparser.SqlParser.SelectExpr.StarExpr; |
| 47 | +import static com.jd.jdbc.sqlparser.SqlParser.WHERE_STR; |
35 | 48 | import com.jd.jdbc.sqlparser.ast.SQLExpr;
|
36 | 49 | import com.jd.jdbc.sqlparser.ast.SQLLimit;
|
37 | 50 | import com.jd.jdbc.sqlparser.ast.SQLObject;
|
38 | 51 | import com.jd.jdbc.sqlparser.ast.SQLOrderBy;
|
39 | 52 | import com.jd.jdbc.sqlparser.ast.SQLSetQuantifier;
|
40 | 53 | import com.jd.jdbc.sqlparser.ast.expr.SQLAllColumnExpr;
|
41 | 54 | import com.jd.jdbc.sqlparser.ast.expr.SQLBinaryOpExpr;
|
| 55 | +import static com.jd.jdbc.sqlparser.ast.expr.SQLBinaryOperator.BooleanAnd; |
| 56 | +import static com.jd.jdbc.sqlparser.ast.expr.SQLBinaryOperator.BooleanOr; |
| 57 | +import static com.jd.jdbc.sqlparser.ast.expr.SQLBinaryOperator.Equality; |
42 | 58 | import com.jd.jdbc.sqlparser.ast.expr.SQLExistsExpr;
|
43 | 59 | import com.jd.jdbc.sqlparser.ast.expr.SQLIdentifierExpr;
|
44 | 60 | import com.jd.jdbc.sqlparser.ast.expr.SQLInSubQueryExpr;
|
|
48 | 64 | import com.jd.jdbc.sqlparser.ast.expr.SQLVariantRefListExpr;
|
49 | 65 | import com.jd.jdbc.sqlparser.ast.statement.SQLExprTableSource;
|
50 | 66 | import com.jd.jdbc.sqlparser.ast.statement.SQLJoinTableSource;
|
| 67 | +import static com.jd.jdbc.sqlparser.ast.statement.SQLJoinTableSource.JoinType; |
51 | 68 | import com.jd.jdbc.sqlparser.ast.statement.SQLSelect;
|
52 | 69 | import com.jd.jdbc.sqlparser.ast.statement.SQLSelectGroupByClause;
|
53 | 70 | import com.jd.jdbc.sqlparser.ast.statement.SQLSelectItem;
|
|
65 | 82 | import com.jd.jdbc.sqlparser.dialect.mysql.visitor.VtRewriteTableSchemaVisitor;
|
66 | 83 | import com.jd.jdbc.sqlparser.support.logging.Log;
|
67 | 84 | import com.jd.jdbc.sqlparser.support.logging.LogFactory;
|
| 85 | +import static com.jd.jdbc.sqlparser.utils.JdbcConstants.MYSQL; |
68 | 86 | import com.jd.jdbc.sqlparser.utils.TableNameUtils;
|
69 | 87 | import com.jd.jdbc.sqltypes.VtPlanValue;
|
70 | 88 | import com.jd.jdbc.sqltypes.VtValue;
|
71 | 89 | import com.jd.jdbc.tindexes.LogicTable;
|
72 | 90 | import com.jd.jdbc.tindexes.TableIndex;
|
73 | 91 | import com.jd.jdbc.vindexes.VKeyspace;
|
| 92 | +import static com.jd.jdbc.vindexes.Vschema.CODE_PINNED_TABLE; |
| 93 | +import static com.jd.jdbc.vindexes.Vschema.TYPE_PINNED_TABLE; |
| 94 | +import static com.jd.jdbc.vindexes.Vschema.TYPE_REFERENCE; |
| 95 | +import static com.jd.jdbc.vindexes.Vschema.TYPE_SEQUENCE; |
74 | 96 | import com.jd.jdbc.vindexes.hash.Binary;
|
75 | 97 | import com.jd.jdbc.vindexes.hash.BinaryHash;
|
76 | 98 | import com.jd.jdbc.vindexes.hash.Hash;
|
@@ -896,28 +918,6 @@ private void buildTablePrimitive(SQLExprTableSource tableExpr) throws SQLExcepti
|
896 | 918 | this.symtab = symtab;
|
897 | 919 | symtab.addVSchemaTable(tableExpr, vschemaTable, routeBuilder);
|
898 | 920 |
|
899 |
| -// sub := &tableSubstitution{ |
900 |
| -// oldExpr: tableExpr, |
901 |
| -// } |
902 |
| -// if tableExpr.As.IsEmpty() { |
903 |
| -// if tableName.Name != vschemaTable.Name { |
904 |
| -// // Table name does not match. Change and alias it to old name. |
905 |
| -// sub.newExpr = &sqlparser.AliasedTableExpr{ |
906 |
| -// Expr: sqlparser.TableName{Name: vschemaTable.Name}, |
907 |
| -// As: tableName.Name, |
908 |
| -// } |
909 |
| -// } |
910 |
| -// } else { |
911 |
| -// // Table is already aliased. |
912 |
| -// if tableName.Name != vschemaTable.Name { |
913 |
| -// // Table name does not match. Change it and reuse existing alias. |
914 |
| -// sub.newExpr = &sqlparser.AliasedTableExpr{ |
915 |
| -// Expr: sqlparser.TableName{Name: vschemaTable.Name}, |
916 |
| -// As: tableExpr.As, |
917 |
| -// } |
918 |
| -// } |
919 |
| -// } |
920 |
| - |
921 | 921 | RouteEngine routeEngine;
|
922 | 922 | if (TYPE_SEQUENCE.equalsIgnoreCase(vschemaTable.getType())) {
|
923 | 923 | routeEngine = new RouteEngine(Engine.RouteOpcode.SelectNext, keyspace);
|
|
0 commit comments