Commit Graph

72 Commits

Author SHA1 Message Date
d0999dcf49 optimizer: use HasLen checker. 2015-12-18 14:37:17 +08:00
108dc596e3 optimizer: address comment. 2015-12-18 13:49:45 +08:00
fbc938e7b6 optimizer: address comment 2015-12-17 14:56:11 +08:00
2b58058501 optmizer: address comment 2015-12-17 10:20:20 +08:00
2e1cf26a32 optimizer: typeInferrer supports more expression.
This is require for implementing prepared statement, because binary protocol depends more
on the result field type to decode value, we have to correctly set the result field type.

For statement like 'select ?', the type of the field is unknown until we execute the statement with argument,
If the field type of  parameter marker `?' is not set properly, client will not be able to read the value.
2015-12-16 18:35:45 +08:00
d97f091cb7 parser: parse position expression in parser, fix order by position.
The position expression, like "1" in "order by 1" was parsed ito `*ast.ValueExpr` in parser, replaced to position expression by resolver,
But flag setter sets flag before resolving process, so position flag is not set.
2015-12-15 14:04:13 +08:00
1e1ef8a0bd *: Support connection_id()
Fix: https://github.com/pingcap/tidb/issues/715
2015-12-14 14:40:55 +08:00
4436aff284 ast: use IsConstant function
address comment
2015-12-14 10:37:34 +08:00
b8504f4f1e optimizer: fix build 2015-12-14 10:37:34 +08:00
6ab3b3cd6b evaluator: use FlagConstant 2015-12-14 10:37:34 +08:00
16757fd9b0 optimizer: add comment. use constant flag. 2015-12-14 10:37:34 +08:00
c970ff6d4d ast: move flag setter to ast 2015-12-14 10:37:34 +08:00
8337e63529 ast, optimizer: implement flag setter. 2015-12-14 10:37:34 +08:00
6222303129 ast, optimizer: add flag field for expression. 2015-12-14 10:37:34 +08:00
30ee5fd354 evaluator: funcCast set value directly without types.DataItem.
Other expression check `expr.GetValue() == nil` returns false when we wrap nil in DataItem.
2015-12-11 12:21:22 +08:00
2050c8dceb evaluator: fix unary evaluation
When unary operation is evaluated more than once, the old not nil value is not set when new value is evaluated to nil.
2015-12-10 13:15:52 +08:00
418a5fb326 optimizer/plan: fix import 2015-12-09 17:30:59 +08:00
bf90bfccc0 optimizer/plan: address comment. 2015-12-09 17:03:16 +08:00
674887a759 optimizer/plan: add missing format. 2015-12-09 15:17:15 +08:00
c674915062 evaluator, plan: address comment. 2015-12-09 15:13:45 +08:00
4f565159d0 optimizer, executor: remove panic and Fatal, returns error instead. 2015-12-09 14:53:41 +08:00
d5f82288d8 evaluator: use terror 2015-12-09 12:38:29 +08:00
77443be4e5 optimizer, executor, evaluator: address comment. 2015-12-07 19:56:39 +08:00
949d92d6df optimizer, executor: replace panic with log.Fatal 2015-12-07 18:39:51 +08:00
429716fc37 optimizer, executor: address comment. 2015-12-07 16:16:34 +08:00
0c265b9b42 optimizer, executor: fixes between range. 2015-12-07 14:41:04 +08:00
de05f0b893 optimizer: rename file. 2015-12-07 11:42:46 +08:00
9448297dd3 optimizer: rename binder to resolver. address comment. 2015-12-07 11:40:24 +08:00
a08b521b76 ast: address comment. 2015-12-07 10:12:46 +08:00
aae5b163b8 optimizer: add more comments for validator. 2015-12-04 11:53:19 +08:00
35815fe88b optimizer/plan: fix ColumnNameExpr condition check. 2015-12-04 11:36:24 +08:00
44e2c7c8df optimizer/evaluator: add more tests. 2015-12-02 13:17:28 +08:00
01d33e9261 evaluator: add tests. 2015-11-30 20:58:50 +08:00
3a491e7c2c optimizer/plan: handle not between range, fix column name range. 2015-11-30 16:21:01 +08:00
ea1b7d5a6b optimizer: reorganise files, add tests. 2015-11-27 19:40:24 +08:00
962ae7b258 optimizer: remove condition normaliser, handle AND in checker and range builder 2015-11-27 11:52:47 +08:00
19d52ba0e9 optimizer, executor: pass test. 2015-11-26 21:17:44 +08:00
cf9a23d23b optimizer, executor: build ranges for more expression, pass more tests. 2015-11-26 20:02:28 +08:00
3ba316fe55 optimizer, executor: use index range 2015-11-25 21:44:55 +08:00
f3e62b87ec optimizer: add static evaluator and range builder. 2015-11-24 20:44:12 +08:00
96ff5b0e25 executor: use index. 2015-11-24 14:16:27 +08:00
49bc1c8d9c executor: fix bugs, pass more tests. 2015-11-18 17:19:43 +08:00
2be0453f2f executor: fix build after merge. 2015-11-18 11:16:47 +08:00
c6888526ec executor: pass more tests. 2015-11-17 21:50:00 +08:00
dc5565eb33 executor: use new plan for basic select. 2015-11-16 21:55:26 +08:00
69dc388d65 optimizer: define what kind of statement is supported to use new plan. 2015-11-16 13:24:15 +08:00
c01af56fc3 executor, optimizer: new executor and optimizer implementation 2015-11-13 23:24:10 +08:00
70106799b2 Merge branch 'master' into coocood/binder-test 2015-11-06 10:56:53 +08:00
b24f320d55 parser: remove old parser and move ast/parser to /parser. 2015-11-05 16:03:26 +08:00
9be82dbe27 ast: address comment. 2015-11-05 14:14:40 +08:00