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
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