Commit Graph

1443 Commits

Author SHA1 Message Date
397683047e [parser] parser: Fix tidb issue 24439 Inconsistent error with MySQL for GRANT CREATE USER ON <specific db>.* (#1224)
* add StaticGlobalOnlyPrivs

* fix
2021-10-09 14:53:23 +08:00
434ae88964 [parser] ast: add resultSetNode() to ResultSetNode (#1216)
Co-authored-by: ti-srebot <66930949+ti-srebot@users.noreply.github.com>
2021-10-09 14:53:23 +08:00
ed312bd0dd [parser] lexer: fix lexer get wrong token (#1222) 2021-10-09 14:53:23 +08:00
c72868080c [parser] fix CTE parser (#1217)
Signed-off-by: wjhuang2016 <huangwenjun1997@gmail.com>
2021-10-09 14:53:23 +08:00
fd730ec231 [parser] parser: support the 'create global temporary table' syntax (#1211) 2021-10-09 14:53:23 +08:00
c298f32dd3 [parser] ddl: admin show ddl jobs output confusing with multiple jobs (#1210)
* change "none" 2 "queueing"

Signed-off-by: lihaowei <haoweili35@gmail.com>

* 4 review

Signed-off-by: lihaowei <haoweili35@gmail.com>

* restore origin word

* *: change none 2 queueing
2021-10-09 14:53:23 +08:00
6a97668216 [parser] ast: visit Join.Using in Join.Accept (#1214) 2021-10-09 14:53:23 +08:00
b6c5ada1d5 [parser] *: add as of clause for SET and SELECT (#1206)
* *: add as of clause

Signed-off-by: nolouch <nolouch@gmail.com>

* resolve shift-reduce conflict

* *: fix and try to add test

Signed-off-by: nolouch <nolouch@gmail.com>

* *: add timestamp

Signed-off-by: nolouch <nolouch@gmail.com>

* make as of to token

Signed-off-by: nolouch <nolouch@gmail.com>

* address comments

Signed-off-by: nolouch <nolouch@gmail.com>

* add test

Signed-off-by: nolouch <nolouch@gmail.com>

* make of as Reserved(from mysql 8.0)

Signed-off-by: nolouch <nolouch@gmail.com>

* add set test case

Signed-off-by: nolouch <nolouch@gmail.com>

* address comment

Signed-off-by: nolouch <nolouch@gmail.com>

Co-authored-by: tangenta <tangenta@126.com>
2021-10-09 14:53:23 +08:00
67b2a63ac9 [parser] Add EnumSetAsIntFlag flag to control enum behavior. (#1165)
* add enumset as int flag

* update evaltype

* add has function

* Update mysql/type.go

Co-authored-by: tangenta <tangenta@126.com>

Co-authored-by: tangenta <tangenta@126.com>
2021-10-09 14:53:23 +08:00
81fcae6419 [parser] ast: fix testPlanSuite.TestNameResolver failed in tidb repo (#1212)
* fix-name-resolver

* add comments
2021-10-09 14:53:23 +08:00
ccf996259d [parser] support CTE clause (#1207) 2021-10-09 14:53:23 +08:00
f09db3e3ce [parser] feat: force_index hint (#1205) 2021-10-09 14:53:23 +08:00
xhe
bc860cdd5e [parser] *: fix static check report (#1195)
* ast: base.go

Signed-off-by: xhe <xw897002528@gmail.com>

* ast: expressions.go

Signed-off-by: xhe <xw897002528@gmail.com>

* ast: misc_test.go

Signed-off-by: xhe <xw897002528@gmail.com>

* *: digester.go

Signed-off-by: xhe <xw897002528@gmail.com>

* goyacc: format_yacc.go

Signed-off-by: xhe <xw897002528@gmail.com>

* *: lexer_test.go

Signed-off-by: xhe <xw897002528@gmail.com>

* *: misc.go

Signed-off-by: xhe <xw897002528@gmail.com>

* model: model.go

Signed-off-by: xhe <xw897002528@gmail.com>

* model: model_test.go

Signed-off-by: xhe <xw897002528@gmail.com>

* *: parser_test.go

Signed-off-by: xhe <xw897002528@gmail.com>

* test_driver: test_driver_datum.go

Signed-off-by: xhe <xw897002528@gmail.com>

* test_driver: test_driver_mydecimal.go

Signed-off-by: xhe <xw897002528@gmail.com>

* ast: ddl.go, bugfix

Signed-off-by: xhe <xw897002528@gmail.com>

* mysql: errcode.go

charset/charset.go is passing errcode to NewStd, which requires int. But
here codes are uint16. To get rid of the error, uint16 is removed.

Signed-off-by: xhe <xw897002528@gmail.com>

* model: better test

Signed-off-by: xhe <xw897002528@gmail.com>

* *: fix timezone

Signed-off-by: xhe <xw897002528@gmail.com>

Co-authored-by: ti-srebot <66930949+ti-srebot@users.noreply.github.com>
2021-10-09 14:53:23 +08:00
940fbea282 [parser] parser, ast: add RENAME USER stmt (#1204) 2021-10-09 14:53:23 +08:00
5f6739c14e [parser] mysql: modify TypeNewDecimal length in defaultLengthAndDecimalForCast (#1202) 2021-10-09 14:53:23 +08:00
xhe
0b7ab92e3a [parser] mysql: small privileges refactor (#1198)
* mysql: extract privs out

Signed-off-by: xhe <xw897002528@gmail.com>

* mysql: add priv.String()

Signed-off-by: xhe <xw897002528@gmail.com>

* mysql: add privs.Has()

Signed-off-by: xhe <xw897002528@gmail.com>

* mysql: add p.SetString() and p.ColumnString()

Signed-off-by: xhe <xw897002528@gmail.com>

* mysql: add NewPrivFromSetEnum/Column

Signed-off-by: xhe <xw897002528@gmail.com>

* *: add license

Co-authored-by: kennytm <kennytm@gmail.com>

* *: complete the license

Signed-off-by: xhe <xw897002528@gmail.com>

Co-authored-by: kennytm <kennytm@gmail.com>
Co-authored-by: ti-srebot <66930949+ti-srebot@users.noreply.github.com>
2021-10-09 14:53:23 +08:00
c80bc1e8f9 [parser] parser, ast: add explain for ALTER TABLE (#1196)
Co-authored-by: ti-srebot <66930949+ti-srebot@users.noreply.github.com>
2021-10-09 14:53:23 +08:00
xhe
8112420b91 [parser] mysql: add create_view to tables_priv (#1201)
Signed-off-by: xhe <xw897002528@gmail.com>

Co-authored-by: ti-srebot <66930949+ti-srebot@users.noreply.github.com>
2021-10-09 14:53:23 +08:00
a276562af7 [parser] auth: fix CheckScrambledPassword() panic for invalid input (#1197)
* auth: fix CheckScrambledPassword() panic for invalid input

* fix CI

Co-authored-by: ti-srebot <66930949+ti-srebot@users.noreply.github.com>
2021-10-09 14:53:23 +08:00
568cdcc4bd [parser] downgrade mysql driver version (#1193)
* downgrade mysql driver version

* use v1.4.1

* use v1.3.0
2021-10-09 14:53:23 +08:00
5020689f09 [parser] parser: Add truncate all support (#1179)
* remove warning
* make parser
2021-10-09 14:53:23 +08:00
8cd0659690 [parser] set right not null flag when newing extra PK (#1189)
* set right not null flag when newing extra PK

* add test

* fmt

Co-authored-by: ti-srebot <66930949+ti-srebot@users.noreply.github.com>
2021-10-09 14:53:23 +08:00
4bc38d9c99 [parser] privileges: show create view privilege should in AllTablePrivs (#1182)
Co-authored-by: jwxiong <xiongjiwei1996@outlook.com>
2021-10-09 14:53:23 +08:00
7515d165a3 [parser] parser: regard NULL as literal when normalizing query (#1166)
* parser: regard NULL as literal when normalizing queries

Currently, Normalize() converts "SELECT NULL" to "select null", while NULL is
regarded as a literal in MySQL, as described in the documentation.
https://dev.mysql.com/doc/refman/8.0/en/literals.html
It seems natural that Normalize() would convert "SELECT NULL" to "select ?"
from the consistency viewpoint.

* Handle case of 'select `null`'

* Fix quotation

Co-authored-by: Arenatlx <ailinsilence4@gmail.com>
Co-authored-by: kennytm <kennytm@gmail.com>
2021-10-09 14:53:23 +08:00
bb256c7e19 [parser] format: add RestoreStringWithoutCharset flag (#1184)
Co-authored-by: ti-srebot <66930949+ti-srebot@users.noreply.github.com>
2021-10-09 14:53:23 +08:00
0ab86feca6 [parser] add ActionType: ActionDropIndexes (#1186) 2021-10-09 14:53:23 +08:00
a27471d6df [parser] statistics: introduce a new kind of syntax to drop global-stats #1181 2021-10-09 14:53:23 +08:00
cead7b3c5d [parser] parser: support show stats_extended syntax (#1178) 2021-10-09 14:53:23 +08:00
747a99dd53 [parser] add the new stmt: drop stats partition (#1177) 2021-10-09 14:53:23 +08:00
10b601cc69 [parser] restore: fix the bug about restore join table generate syntax error SQL (#1173) 2021-10-09 14:53:23 +08:00
b3efddbbec [parser] digest: add missed backquote when getting digest (#1176)
* fix test

* add test
2021-10-09 14:53:23 +08:00
9c4959a061 [parser] lexer: quote identifier when get sql digest (#1151)
* fix

* fix

* Update digester.go

Co-authored-by: kennytm <kennytm@gmail.com>

Co-authored-by: kennytm <kennytm@gmail.com>
2021-10-09 14:53:23 +08:00
51f162cf17 [parser] model: add a version for the clustered index (#1172) 2021-10-09 14:53:23 +08:00
1f210fe678 [parser] model: add a new TableInfoVersion for separating id allocators (#1170) 2021-10-09 14:53:23 +08:00
bed9d55584 [parser] parser: update the broken link for Contribution Guide in README.md (#1167) 2021-10-09 14:53:23 +08:00
7aa3bf1b2f [parser] Add "START TRANSACTION WITH CAUSAL CONSISTENCY ONLY" (#1162)
* add a start transaction without external consistency statement

Signed-off-by: ekexium <ekexium@gmail.com>

* change the grammar to 'with causal consistency'

Signed-off-by: ekexium <ekexium@gmail.com>

* rename WithoutExternalConsistency to CausalConsistency

Signed-off-by: ekexium <ekexium@gmail.com>

* change syntax to 'start transaction with causal consistency only'

Signed-off-by: ekexium <ekexium@gmail.com>

Co-authored-by: ti-srebot <66930949+ti-srebot@users.noreply.github.com>
2021-10-09 14:53:23 +08:00
b700ada012 [parser] README: add more resources (#1163) 2021-10-09 14:53:23 +08:00
f2bcba6779 [parser] ast: support explain format = 'test' syntax (#1164) 2021-10-09 14:53:23 +08:00
85c41d1017 [parser] parser: support builtin function SOUNDEX (#1161)
* add soundex

* add unit test
2021-10-09 14:53:23 +08:00
ef95ffa348 [parser] parser, ast: replace TIDB_STATS with STATS_EXTENDED (#1159) 2021-10-09 14:53:23 +08:00
5e94208b8b [parser] ast, misc, parser: add FLUSH CLIENT_ERRORS_SUMMARY (#1154) 2021-10-09 14:53:23 +08:00
e944f5cfcb [parser] *: add CREATE IMPORT and other control statement (#1147) 2021-10-09 14:53:23 +08:00
6a18e2f063 [parser] *: support CLUSTERED and NONCLUSTERED syntax (#1153) 2021-10-09 14:53:23 +08:00
a0c6fa67ae [parser] remove proxy from reserved keyword (#1150)
Signed-off-by: iosmanthus <myosmanthustree@gmail.com>
2021-10-09 14:53:23 +08:00
df2a55a4cc [parser] parser: compatible with select...for share statement (#946)
* parser: compatible with `select...for share` statement

* parser: parse `LOCK IN SHARE MODE` into `FOR SHARE` and support `NOWAIT` & `SKIP LOCKED`

* merge master

* SelectLockType.String() returns string only

* update parser_test.go

* resolve conflicts
2021-10-09 14:53:23 +08:00
a3519e86f4 [parser] *: create / drop extended stats by ALTER TABLE (#1138) 2021-10-09 14:53:23 +08:00
df89db3af2 [parser] parser: change the trace statement default format to row (#1107)
* parser: change trace statement default format to row

* fix CI

Co-authored-by: tangenta <tangenta@126.com>
2021-10-09 14:53:23 +08:00
8950ad0f44 [parser] *: support dynamic privileges and more extended privileges (#1144)
* *: support dynamic privileges and more extended privileges

* address comment

* address comment
2021-10-09 14:53:23 +08:00
ca82007543 [parser] Revert "make prepared readonly (#1139)" (#1145)
This reverts commit 72e9144ea37c26c219dc36afeb6a2e7689f12f27.
2021-10-09 14:53:23 +08:00
d0d67ddb9e [parser] *: support GRANT PROXY (#1142) 2021-10-09 14:53:23 +08:00