Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions sql-statements/sql-statement-execute.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@ The `EXECUTE` statement provides an SQL interface to server-side prepared statem

## Synopsis

**ExecuteStmt:**

![ExecuteStmt](/media/sqlgram/ExecuteStmt.png)
```ebnf+diagram
ExecuteStmt ::=
'EXECUTE' Identifier ( 'USING' UserVariable ( ',' UserVariable )* )?
```

## Examples

Expand Down
28 changes: 17 additions & 11 deletions sql-statements/sql-statement-explain-analyze.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,23 @@ The `EXPLAIN ANALYZE` statement works similar to `EXPLAIN`, with the major diffe

## Synopsis

**ExplainSym:**

![ExplainSym](/media/sqlgram/ExplainSym.png)

**ExplainStmt:**

![ExplainStmt](/media/sqlgram/ExplainStmt.png)

**ExplainableStmt:**

![ExplainableStmt](/media/sqlgram/ExplainableStmt.png)
```ebnf+diagram
ExplainSym ::=
'EXPLAIN'
| 'DESCRIBE'
| 'DESC'

ExplainStmt ::=
ExplainSym ( TableName ColumnName? | 'ANALYZE'? ExplainableStmt | 'FOR' 'CONNECTION' NUM | 'FORMAT' '=' ( stringLit | ExplainFormatType ) ( 'FOR' 'CONNECTION' NUM | ExplainableStmt ) )

ExplainableStmt ::=
SelectStmt
| DeleteFromStmt
| UpdateStmt
| InsertIntoStmt
| ReplaceIntoStmt
| UnionStmt
```

## EXPLAIN ANALYZE output format

Expand Down
28 changes: 17 additions & 11 deletions sql-statements/sql-statement-explain.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,23 @@ TiDB supports the `EXPLAIN [options] FOR CONNECTION connection_id` statement. Ho

## Synopsis

**ExplainSym:**

![ExplainSym](/media/sqlgram/ExplainSym.png)

**ExplainStmt:**

![ExplainStmt](/media/sqlgram/ExplainStmt.png)

**ExplainableStmt:**

![ExplainableStmt](/media/sqlgram/ExplainableStmt.png)
```ebnf+diagram
ExplainSym ::=
'EXPLAIN'
| 'DESCRIBE'
| 'DESC'

ExplainStmt ::=
ExplainSym ( TableName ColumnName? | 'ANALYZE'? ExplainableStmt | 'FOR' 'CONNECTION' NUM | 'FORMAT' '=' ( stringLit | ExplainFormatType ) ( 'FOR' 'CONNECTION' NUM | ExplainableStmt ) )

ExplainableStmt ::=
SelectStmt
| DeleteFromStmt
| UpdateStmt
| InsertIntoStmt
| ReplaceIntoStmt
| UnionStmt
```

## `EXPLAIN` output format

Expand Down
17 changes: 8 additions & 9 deletions sql-statements/sql-statement-flashback-table.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,16 @@ FLASHBACK TABLE table_name [TO other_table_name]

## Synopsis

**FlashbackTableStmt:**
```ebnf+diagram
FlashbackTableStmt ::=
'FLASHBACK' 'TABLE' TableName FlashbackToNewName

![FlashbackTableStmt](/media/sqlgram/FlashbackTableStmt.png)
TableName ::=
Identifier ( '.' Identifier )?

**TableName:**

![TableName](/media/sqlgram/TableName.png)

**FlashbackToNewName:**

![FlashbackToNewName](/media/sqlgram/FlashbackToNewName.png)
FlashbackToNewName ::=
( 'TO' Identifier )?
```

## Notes

Expand Down
26 changes: 15 additions & 11 deletions sql-statements/sql-statement-flush-privileges.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,21 @@ This statement triggers TiDB to reload the in-memory copy of privileges from the

## Synopsis

**FlushStmt:**

![FlushStmt](/media/sqlgram/FlushStmt.png)

**NoWriteToBinLogAliasOpt:**

![NoWriteToBinLogAliasOpt](/media/sqlgram/NoWriteToBinLogAliasOpt.png)

**FlushOption:**

![FlushOption](/media/sqlgram/FlushOption.png)
```ebnf+diagram
FlushStmt ::=
'FLUSH' NoWriteToBinLogAliasOpt FlushOption

NoWriteToBinLogAliasOpt ::=
( 'NO_WRITE_TO_BINLOG' | 'LOCAL' )?

FlushOption ::=
'PRIVILEGES'
| 'STATUS'
| 'TIDB' 'PLUGINS' PluginNameList
| 'HOSTS'
| LogTypeOpt 'LOGS'
| TableOrTables TableNameListOpt WithReadLockOpt
```

## Examples

Expand Down
26 changes: 15 additions & 11 deletions sql-statements/sql-statement-flush-status.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,21 @@ This statement is included for compatibility with MySQL. It has no effect on TiD

## Synopsis

**FlushStmt:**

![FlushStmt](/media/sqlgram/FlushStmt.png)

**NoWriteToBinLogAliasOpt:**

![NoWriteToBinLogAliasOpt](/media/sqlgram/NoWriteToBinLogAliasOpt.png)

**FlushOption:**

![FlushOption](/media/sqlgram/FlushOption.png)
```ebnf+diagram
FlushStmt ::=
'FLUSH' NoWriteToBinLogAliasOpt FlushOption

NoWriteToBinLogAliasOpt ::=
( 'NO_WRITE_TO_BINLOG' | 'LOCAL' )?

FlushOption ::=
'PRIVILEGES'
| 'STATUS'
| 'TIDB' 'PLUGINS' PluginNameList
| 'HOSTS'
| LogTypeOpt 'LOGS'
| TableOrTables TableNameListOpt WithReadLockOpt
```

## Examples

Expand Down
43 changes: 22 additions & 21 deletions sql-statements/sql-statement-flush-tables.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,33 +10,34 @@ This statement is included for compatibility with MySQL. It has no effective usa

## Synopsis

**FlushStmt:**
```ebnf+diagram
FlushStmt ::=
'FLUSH' NoWriteToBinLogAliasOpt FlushOption

![FlushStmt](/media/sqlgram/FlushStmt.png)
NoWriteToBinLogAliasOpt ::=
( 'NO_WRITE_TO_BINLOG' | 'LOCAL' )?

**NoWriteToBinLogAliasOpt:**
FlushOption ::=
'PRIVILEGES'
| 'STATUS'
| 'TIDB' 'PLUGINS' PluginNameList
| 'HOSTS'
| LogTypeOpt 'LOGS'
| TableOrTables TableNameListOpt WithReadLockOpt

![NoWriteToBinLogAliasOpt](/media/sqlgram/NoWriteToBinLogAliasOpt.png)
LogTypeOpt ::=
( 'BINARY' | 'ENGINE' | 'ERROR' | 'GENERAL' | 'SLOW' )?

**FlushOption:**
TableOrTables ::=
'TABLE'
| 'TABLES'

![FlushOption](/media/sqlgram/FlushOption.png)
TableNameListOpt ::=
TableNameList?

**LogTypeOpt:**

![LogTypeOpt](/media/sqlgram/LogTypeOpt.png)

**TableOrTables:**

![TableOrTables](/media/sqlgram/TableOrTables.png)

**TableNameListOpt:**

![TableNameListOpt](/media/sqlgram/TableNameListOpt.png)

**WithReadLockOpt:**

![WithReadLockOpt](/media/sqlgram/WithReadLockOpt.png)
WithReadLockOpt ::=
( 'WITH' 'READ' 'LOCK' )?
```

## Examples

Expand Down
73 changes: 46 additions & 27 deletions sql-statements/sql-statement-grant-privileges.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,33 +10,52 @@ This statement allocates privileges to a pre-existing user in TiDB. The privileg

## Synopsis

**GrantStmt:**

![GrantStmt](/media/sqlgram/GrantStmt.png)

**PrivElemList:**

![PrivElemList](/media/sqlgram/PrivElemList.png)

**PrivElem:**

![PrivElem](/media/sqlgram/PrivElem.png)

**PrivType:**

![PrivType](/media/sqlgram/PrivType.png)

**ObjectType:**

![ObjectType](/media/sqlgram/ObjectType.png)

**PrivLevel:**

![PrivLevel](/media/sqlgram/PrivLevel.png)

**UserSpecList:**

![UserSpecList](/media/sqlgram/UserSpecList.png)
```ebnf+diagram
GrantStmt ::=
'GRANT' PrivElemList 'ON' ObjectType PrivLevel 'TO' UserSpecList RequireClauseOpt WithGrantOptionOpt

PrivElemList ::=
PrivElem ( ',' PrivElem )*

PrivElem ::=
PrivType ( '(' ColumnNameList ')' )?

PrivType ::=
'ALL' 'PRIVILEGES'?
| 'ALTER' 'ROUTINE'?
| 'CREATE' ( 'USER' | 'TEMPORARY' 'TABLES' | 'VIEW' | 'ROLE' | 'ROUTINE' )?
| 'TRIGGER'
| 'DELETE'
| 'DROP' 'ROLE'?
| 'PROCESS'
| 'EXECUTE'
| 'INDEX'
| 'INSERT'
| 'SELECT'
| 'SUPER'
| 'SHOW' ( 'DATABASES' | 'VIEW' )
| 'UPDATE'
| 'GRANT' 'OPTION'
| 'REFERENCES'
| 'REPLICATION' ( 'SLAVE' | 'CLIENT' )
| 'USAGE'
| 'RELOAD'
| 'FILE'
| 'CONFIG'
| 'LOCK' 'TABLES'
| 'EVENT'
| 'SHUTDOWN'

ObjectType ::=
'TABLE'?

PrivLevel ::=
'*' ( '.' '*' )?
| Identifier ( '.' ( '*' | Identifier ) )?

UserSpecList ::=
UserSpec ( ',' UserSpec )*
```

## Examples

Expand Down
17 changes: 8 additions & 9 deletions sql-statements/sql-statement-grant-role.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,16 @@ Assigns a previously created role to an existing user. The user can use then use

## Synopsis

**GrantRoleStmt:**
```ebnf+diagram
GrantRoleStmt ::=
'GRANT' RolenameList 'TO' UsernameList

![GrantRoleStmt](/media/sqlgram/GrantRoleStmt.png)
RolenameList ::=
Rolename ( ',' Rolename )*

**RolenameList:**

![RolenameList](/media/sqlgram/RolenameList.png)

**UsernameList:**

![UsernameList](/media/sqlgram/UsernameList.png)
UsernameList ::=
Username ( ',' Username )*
```

## Examples

Expand Down
Loading