Commit Graph

32 Commits

Author SHA1 Message Date
d094a0fc97 planner: convert SemiJoin to InnerJoin in more cases (#9546) 2019-03-05 11:36:57 +08:00
5a283a98dd plan/executor: make semi joins null and empty aware (#9051) 2019-02-25 15:42:38 +08:00
0081e17b02 expression, planner: support builtin function benchmark (#9252) 2019-02-13 19:53:28 +08:00
09a5c8028e plan: derive col is not null from col op col conditions (#8603)
Check whether the `op` condition is null rejected, if yes, derive
`col is not null` for both sides of inner join, and for inner side
of outer join.

Also, remove duplicate conditions before pushing them down. Check
if the condition is mutable before removing duplicates.

For AntiSemiJoin, AntiLeftOuterSemiJoin and LeftOuterSemiJoin, do
not generate new `is not null` conditions.
2019-01-30 10:53:46 +08:00
H
6a06977dd1 plan: rewrite exact like expression to equal condition (#9071) 2019-01-28 19:12:30 +08:00
776c90fa79 planner: check null and empty for != any(subq) and = all(subq) (#9106) 2019-01-21 16:17:48 +08:00
0fdc526b42 planner: support window function frame clause (#9004) 2019-01-18 16:46:54 +08:00
0bc0f7d95b expression: throw "too big precision" error for CAST(AS TIME) (#8907) 2019-01-09 19:44:35 +08:00
021f7538bb sessionctx/variable: fix select variable return wrong result when variable is only global scope variable (#8968) 2019-01-08 15:46:53 +08:00
91cdbf2f54 planner: support window function (#8630) 2019-01-03 16:56:06 +08:00
1232db5590 planner/core: add DefaultExpr support for expressionRewriter (#8540) 2019-01-02 23:36:36 +08:00
64cd9b246f planner,types: refactor the PR #8619 by using parser/types/FieldType.Clone() (#8641) 2018-12-12 10:23:57 +08:00
18b33fb425 expression,planner: fix to preserve the precision information of a timestamp-typed column in the plan cache (#8619) 2018-12-10 20:12:24 +08:00
6bd8bddb12 planner/core: simple greedy join reorder based on CBO (#8394) 2018-12-07 16:34:19 +08:00
c677187728 plan: support ? in Order By / Group By / Limit Offset clauses (#8206) 2018-12-03 21:48:54 +08:00
3b68ee59a6 planner: for UNION statements, ORDER BY cannot use column references including a table name (#8389) 2018-11-29 12:40:08 +08:00
a28a3a719a planner: fix expression rewriter wrong compare logic (#8269) 2018-11-13 10:49:15 +08:00
011cdce950 planner: fix row compare logic for ast.LE and ast.GE (#8248) 2018-11-12 10:34:27 +08:00
6c242ad47d planner: fix wrong row compare logic in expression_rewriter (#8241) 2018-11-08 22:05:24 +08:00
4a3080a1c1 plan: use original field name when Column is extracted from IfNull (#8225) 2018-11-08 15:13:45 +08:00
1082d5f1ac expression: fix wrong compare result of row (#8222) 2018-11-08 12:45:03 +08:00
34c3d4ccc6 planner,executor,parser: support the prepared plan cache for insert/delete/update statements (#8107) 2018-11-05 14:24:48 +08:00
60d05bd759 planner: eliminate ifnull in expression rewriting process (#7996) 2018-11-02 12:50:27 +08:00
5374ff8935 expression,planner: support non-deterministic functions (e.g., now) in the plan cache (#8105) 2018-11-01 23:53:32 +08:00
32b1dbd8d5 *: rename "github.com/pkg/errors" to "github.com/pingcap/errors" (#8136)
We import "github.com/pkg/errors" in the code, and actually put
the "github.com/pingcap/errors" there in the vendor path.
That's a dirty hack, and prevent the introduce of Go module.
2018-11-01 16:09:07 +08:00
696ef7bae2 plan: convert in subquery to agg and inner join (#7531) 2018-10-30 19:19:32 +08:00
f370da0b43 planner: export init() to Init() (#8060) 2018-10-26 10:44:30 +08:00
89dda9d9a8 *: move parser to a separate repository (#8036) 2018-10-25 11:12:10 +08:00
25118db843 *: move ast.NewValueExpr to standalone parser_driver package (#7952)
Make the ast package get rid of the dependency of types.Datum
2018-10-19 19:37:55 +08:00
dbdd806c0e *: add session variable "tidb_enable_cascades_planner" (#7879) 2018-10-12 13:21:51 +08:00
d60a1a227b plan: build anti semi join for NOT EXISTS (#7842) 2018-10-09 16:57:15 +08:00
e79bd946ed *: change package name from plan to planner (#7760) 2018-09-25 11:16:39 +08:00