Commit Graph

440 Commits

Author SHA1 Message Date
8930ed05b1 parser: fix bug 'BINARY' not parsed as charset name (#1803)
* parser: fix bug 'BINARY' not parsed as charset name
2016-10-09 19:45:53 +08:00
a33240d8a8 parser: set flag in parse function. (#1799)
Every `ast.Statement` needs to set flag before use, set the flag in parse function,
so we don't need to set it somewhere else and won't forget to do it.
2016-10-09 11:36:56 +08:00
6dec14119a Fix typos (#1714) 2016-09-09 22:58:47 +08:00
099e8a9880 parser: Support show function status grammar (#1710)
Parsed but do nothing. Just make workbench happy.
2016-09-09 16:51:35 +08:00
fe3555e77d *: FLUSH TABLE statement front end (#1701) 2016-09-08 13:27:09 +08:00
9c75a19ebf parser: mysql start transaction WITH CONSISTENT SNAPSHOT syntax (#1703) 2016-09-08 08:19:06 +08:00
5a3f87d099 support unhex. (#1675) 2016-09-01 19:25:04 +08:00
7bedd9cd40 parser: recognise \r\n as whitespace (#1672) 2016-09-01 11:51:26 +08:00
aabb7664ef *: Support ceil() and ceiling() (#1666)
* *: support ceil and ceiling
2016-09-01 10:53:02 +08:00
ed4649e85d *: Support load data local (#1634) 2016-08-30 09:38:37 +08:00
e33587ed47 support explain (#1632) 2016-08-26 11:19:23 +08:00
b8730279d9 parser: fix set upper-case variable (#1624)
* parser: fix set upper-case variable
2016-08-23 15:06:40 +08:00
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