Commit Graph

428 Commits

Author SHA1 Message Date
c90d91cba9 *: Support insert ignore (#1579)
Ignore duplicate key errors for insert ignore stmt, Fix #1570
2016-08-22 14:18:56 +08:00
3eb6f4f513 parser: remove the old lexer, clean up (#1597) 2016-08-18 14:29:45 +08:00
a3eac844ae *: Support set names binary (#1578) 2016-08-15 22:25:23 +08:00
ac4b8c90b6 parser: fix a lex bug (#1590)
fix bug `numeric` recognised as numericType in new lexer
2016-08-15 16:59:09 +08:00
0a0abbb2e7 parser: use the new lexer as default (#1566) 2016-08-15 10:06:52 +08:00
dd654d9ed3 parser: peek neither byte nor a valid UTF8 rune bug fix (#1580) 2016-08-11 15:33:16 +08:00
09d23d225c parser: refact scan string (#1563) 2016-08-10 19:10:34 +08:00
4c0e106152 *: goyacc generated code tiny change (#1574) 2016-08-10 10:32:10 +08:00
3545493808 parser: cache variable in parser to avoid allocation (#1565) 2016-08-08 23:17:44 +08:00
a5db620286 parser: rewrite lex (#1514)
introduce a handwriten lexer, which should be better in performance and support UTF8.
it's still not used as default one, a switch is provided by specifying -newlexer=true in tidb-server.
2016-08-06 16:29:21 +08:00
398eec015d parser: move lexer's int/float/hex method to function (#1529)
the old lexer and the new lexer can both use those code
2016-08-01 18:44:54 +08:00
5cae3c3f90 more token values moved to yySymType's ident field (#1526) 2016-08-01 13:18:15 +08:00
470e7c245e parser: add an indent field for yySymType (#1516)
current all kind of data store in item field,
from token to a AST field follow this patten:
identifier string -> interface{} -> string

translate to interface{} represention cause
unnecessay allocation. add an indent field
and store identifier as string would avoid that
2016-07-29 10:40:22 +08:00
4a4faccba3 Add builtin function hex (#1504) 2016-07-28 13:53:54 +08:00
8ad34f0ad9 parser: use yyLex.Error instead of (*lex).err (#1492) 2016-07-27 14:42:40 +08:00
b42dae814a parser: move charset/collation/list fields to parser from lexer (#1491) 2016-07-27 11:20:31 +08:00
128af2e92a parser: store sql string in parser and move offset related method (#1493) 2016-07-27 10:50:06 +08:00
c2831f6290 *: put goyacc tool into vendor (#1499) 2016-07-27 10:30:10 +08:00
04da3d2f8b parser: add testcases for lexer (#1503) 2016-07-26 13:01:32 +08:00
5fee2ffd9b parser: clean up unused code (#1480) 2016-07-25 15:21:45 +08:00
b33ab24109 *: Support set variable to default value. (#1481)
To set a SESSION variable to the GLOBAL value or a GLOBAL value to the compiled-in MySQL default value, use the DEFAULT keyword.
See http://dev.mysql.com/doc/refman/5.7/en/set-statement.html
2016-07-22 10:23:03 +08:00
1e6e1ca6f0 *: Support binlog stmt (#1479)
Parse and ingore it.
2016-07-21 13:39:15 +08:00
8749945b0c *: add builtin function greatest (#1463) 2016-07-20 11:32:14 +08:00
537abcbd84 parser: Allow "no" as an identifier (#1476) 2016-07-20 10:46:31 +08:00
ebcf42b371 parser: add a benchmark test for Parse (#1450) 2016-07-18 11:18:25 +08:00
7654b6b5d5 *: Support sleep function (#1457)
* *: support sleep function

* evaluator: add SQL mode judgement
2016-07-16 13:48:45 +08:00
61cdf69d16 parser: Support show keys statement (#1460) 2016-07-16 13:46:16 +08:00
1cdb2cc18d Fix bugs in string literal unescape (#1432)
Unescape string literal in lex scanner
2016-07-13 11:50:29 +08:00
d4f85c8138 Add get_lock() and key_column_usage table (#1437)
Parsed but ignored. This is used for Ruby's activerecord migrations.
2016-07-13 10:57:05 +08:00
cbac6da6ee *: Remove SetCharsetStmt, use SetStmt instead (#1422)
"set @@session.sql_mode=1, names utf8, charset utf8;" is a valid sql statement.
2016-07-11 16:22:33 +08:00
0132246ff5 *: Support STATS_PERSISTENT option in CreateTableStmt (#1416)
Parsed but ignored. Just prevent error.
2016-07-09 11:41:27 +08:00
e234ab65a6 *: Support grant all privileges syntax (#1417)
Add missing syntax rule.
2016-07-09 08:10:55 +08:00
db4cdcfaec parser: reduce memory allocation (#1408) 2016-07-07 16:42:30 +08:00
0450ba0b47 *: unify "See url" format (#1391)
* *: unify "See url" format
2016-07-05 11:21:10 +08:00
b1e863ef80 *: fix count(*) push down. (#1363) 2016-06-30 13:27:36 +08:00
234d0be5de *: Support build range, support betweenExpr, inExpr and likeExpr convert to scalarFunc (#1344)
* *: support build range, support betweenExpr, inExpr and likeExpr convert
to scalarFunc
2016-06-27 20:30:16 +08:00
b3bd0dce4d *: add builtin string function SPACE (#1332) 2016-06-21 15:45:26 +08:00
67378982bf parser: add ANALYSE TABLE syntax (#1323) 2016-06-15 16:21:39 +08:00
d9569a6801 *: Support date_format (#1295)
* *: support date_format

* evaluator: update yearweek function
2016-06-06 18:49:06 +08:00
0373895334 *: Support time (#1282)
* *: support time
2016-06-02 10:48:09 +08:00
97df813e92 fix parsing error caused by single quote transformation (#1274)
fix parsing error caused by single quote transformation
2016-06-01 17:41:20 +08:00
61532d7c4e *: Support monthname (#1279)
* *: support monthname
2016-06-01 14:02:53 +08:00
f9c31d9130 Hanfei/rewrite plan (#1272) 2016-06-01 13:12:55 +08:00
a58a8fc365 parser: appending item to list instead of appending list to item. (#1276)
* parser:  appending item to list instead of appending list to item.

Reduce memory allocation.

* parser: apply the same optimization for 'ROW'.

* *: add test
2016-05-31 20:05:16 +08:00
86fe54dadc *: Fix issue 1118 (#1259)
* *: fix issue 1118
2016-05-26 12:49:43 +08:00
55ed68ca6c add builtin-reverse func (#1224) 2016-05-13 20:53:55 +08:00
2e355f3749 *: Fix issue#1114 (#1231)
* *: supprot assignment

* *: fix issue 1114
2016-05-13 11:26:26 +08:00
24503eb791 parser: support parse "ALTER TABLE DISABLE KEYS" (#1211)
* parser: support parse "ALTER TABLE DISABLE KEYS"

This statement is used in `mysqldump`.

* parser: address comment
2016-05-09 14:39:31 +08:00
0841dbef9b *: Support builtin function round(X), round(X, D) (#1208)
Support builtin function round(X), round(X, D)
2016-05-07 13:38:02 +08:00
8a15d2102b parser: Add "action" into UnReservedKeyword (#1205)
Fix zabbix login error
2016-05-06 12:11:46 +08:00