Commit Graph

94 Commits

Author SHA1 Message Date
fcbd15dae8 optimizer: address comment. 2016-01-04 10:34:41 +08:00
a8baf4fc02 optimizer: clean up again. 2016-01-03 12:40:23 +08:00
d1f0c76952 optimizer: tiny clean up. 2016-01-03 12:36:18 +08:00
e45c31b89d Merge pull request #754 from hhkbp2/complete-adddate,subdate-functions
add ast evaluation for date arith
2015-12-29 14:35:00 +08:00
405e6c57d4 add ast evaluation for date arith 2015-12-29 11:42:02 +08:00
0b99e0440b *: Move variable errors to sessionctx/variable 2015-12-24 15:27:41 +08:00
852ad1dc0f Merge pull request #789 from pingcap/coocood/parser-parse
parser: remove YYParse function, use Parse and ParseOneStmt instead.
2015-12-24 11:51:55 +08:00
6a364d4f03 Merge remote-tracking branch 'origin/master' into shenli/optimizer-error
Conflicts:
	tidb-server/server/server_test.go
2015-12-24 11:18:41 +08:00
631045ce5f parser: address comment. 2015-12-24 10:47:37 +08:00
71ee106bbe optimizer: Remove useless error code 2015-12-24 10:39:28 +08:00
bfd188d844 parser: remove YYParse function, use Parse and ParseOne instead. 2015-12-23 18:25:28 +08:00
5f64441bc9 *: Address comment 2015-12-23 17:57:36 +08:00
c7baa9f1f5 *: Add test case for optimizer error 2015-12-23 17:43:31 +08:00
b95f73a5bb optimizer: Add errcode map between terror and mysql error 2015-12-23 17:34:31 +08:00
cce746ee8a Merge branch 'master' into coocood/prepare
Conflicts:
	session.go
2015-12-22 13:24:57 +08:00
4f551e17da evaluator: Check return values from valid call expressions in funcCall test. 2015-12-21 15:13:09 +08:00
55d12c184f evaluator: Refine tests for funcCall.
1. Remove the fake builtin.Func.
2. Fix one bug in handling unlimited arguments upper bound.
2015-12-21 14:45:51 +08:00
a5dbd000dc evaluator: Add tests for funcCall. 2015-12-21 11:45:44 +08:00
a5b5fd67fa evaluator: Check function call min and max arguments in new evaluator.
For github issue #758.
2015-12-20 23:17:17 +08:00
c5fae25a60 optimizer: validates '?' is not allowed in non-prepare mode. 2015-12-18 19:40:45 +08:00
06a0f05747 optimizer: fix field name, executor: do optimizer.Prepare only if supported. 2015-12-18 16:56:08 +08:00
dcdb32dbde plan. executor: support prepared statement. 2015-12-18 16:56:08 +08:00
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