Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sql-statements: use EBNF to render syntax diagrams - second batch (#5376) #5409

Merged
merged 2 commits into from
Jan 27, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
2 changes: 1 addition & 1 deletion sql-statements/sql-statement-alter-table.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ AlterTableSpec ::=
| ( 'DISABLE' | 'ENABLE' ) 'KEYS'
| ( 'MODIFY' ColumnKeywordOpt IfExists | 'CHANGE' ColumnKeywordOpt IfExists ColumnName ) ColumnDef ColumnPosition
| 'ALTER' ( ColumnKeywordOpt ColumnName ( 'SET' 'DEFAULT' ( SignedLiteral | '(' Expression ')' ) | 'DROP' 'DEFAULT' ) | 'CHECK' Identifier EnforcedOrNot | 'INDEX' Identifier IndexInvisible )
| 'RENAME' ( ( 'COLUMN' | KeyOrIndex ) Identifier 'TO' Identifier | ( 'TO' | | 'AS' ) TableName )
| 'RENAME' ( ( 'COLUMN' | KeyOrIndex ) Identifier 'TO' Identifier | ( 'TO' | '='? | 'AS' ) TableName )
| LockClause
| AlgorithmClause
| 'FORCE'
Expand Down
8 changes: 5 additions & 3 deletions sql-statements/sql-statement-begin.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,11 @@ aliases: ['/docs-cn/stable/sql-statements/sql-statement-begin/','/docs-cn/v4.0/s

## 语法图

**BeginTransactionStmt:**

![BeginTransactionStmt](/media/sqlgram/BeginTransactionStmt.png)
```ebnf+diagram
BeginTransactionStmt ::=
'BEGIN' ( 'PESSIMISTIC' | 'OPTIMISTIC' )?
| 'START' 'TRANSACTION' ( 'READ' ( 'WRITE' | 'ONLY' ( 'WITH' 'TIMESTAMP' 'BOUND' TimestampBound )? ) | 'WITH' 'CONSISTENT' 'SNAPSHOT' )?
```

## 示例

Expand Down
55 changes: 36 additions & 19 deletions sql-statements/sql-statement-change-column.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,42 @@ aliases: ['/docs-cn/stable/sql-statements/sql-statement-change-column/','/docs-c

## 语法图

**AlterTableStmt:**

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

**AlterTableSpec:**

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

**ColumnName:**

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

**ColumnDef:**

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

**ColumnPosition:**

![ColumnPosition](/media/sqlgram/ColumnPosition.png)
```ebnf+diagram
AlterTableStmt ::=
'ALTER' IgnoreOptional 'TABLE' TableName ( AlterTableSpecListOpt AlterTablePartitionOpt | 'ANALYZE' 'PARTITION' PartitionNameList ( 'INDEX' IndexNameList )? AnalyzeOptionListOpt )
AlterTableSpec ::=
TableOptionList
| 'SET' 'TIFLASH' 'REPLICA' LengthNum LocationLabelList
| 'CONVERT' 'TO' CharsetKw ( CharsetName | 'DEFAULT' ) OptCollate
| 'ADD' ( ColumnKeywordOpt IfNotExists ( ColumnDef ColumnPosition | '(' TableElementList ')' ) | Constraint | 'PARTITION' IfNotExists NoWriteToBinLogAliasOpt ( PartitionDefinitionListOpt | 'PARTITIONS' NUM ) )
| ( ( 'CHECK' | 'TRUNCATE' ) 'PARTITION' | ( 'OPTIMIZE' | 'REPAIR' | 'REBUILD' ) 'PARTITION' NoWriteToBinLogAliasOpt ) AllOrPartitionNameList
| 'COALESCE' 'PARTITION' NoWriteToBinLogAliasOpt NUM
| 'DROP' ( ColumnKeywordOpt IfExists ColumnName RestrictOrCascadeOpt | 'PRIMARY' 'KEY' | 'PARTITION' IfExists PartitionNameList | ( KeyOrIndex IfExists | 'CHECK' ) Identifier | 'FOREIGN' 'KEY' IfExists Symbol )
| 'EXCHANGE' 'PARTITION' Identifier 'WITH' 'TABLE' TableName WithValidationOpt
| ( 'IMPORT' | 'DISCARD' ) ( 'PARTITION' AllOrPartitionNameList )? 'TABLESPACE'
| 'REORGANIZE' 'PARTITION' NoWriteToBinLogAliasOpt ReorganizePartitionRuleOpt
| 'ORDER' 'BY' AlterOrderItem ( ',' AlterOrderItem )*
| ( 'DISABLE' | 'ENABLE' ) 'KEYS'
| ( 'MODIFY' ColumnKeywordOpt IfExists | 'CHANGE' ColumnKeywordOpt IfExists ColumnName ) ColumnDef ColumnPosition
| 'ALTER' ( ColumnKeywordOpt ColumnName ( 'SET' 'DEFAULT' ( SignedLiteral | '(' Expression ')' ) | 'DROP' 'DEFAULT' ) | 'CHECK' Identifier EnforcedOrNot | 'INDEX' Identifier IndexInvisible )
| 'RENAME' ( ( 'COLUMN' | KeyOrIndex ) Identifier 'TO' Identifier | ( 'TO' | '='? | 'AS' ) TableName )
| LockClause
| AlgorithmClause
| 'FORCE'
| ( 'WITH' | 'WITHOUT' ) 'VALIDATION'
| 'SECONDARY_LOAD'
| 'SECONDARY_UNLOAD'
ColumnName ::=
Identifier ( '.' Identifier ( '.' Identifier )? )?
ColumnDef ::=
ColumnName ( Type | 'SERIAL' ) ColumnOptionListOpt
ColumnPosition ::=
( 'FIRST' | 'AFTER' ColumnName )?
```

## 示例

Expand Down
13 changes: 7 additions & 6 deletions sql-statements/sql-statement-commit.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,14 @@ aliases: ['/docs-cn/stable/sql-statements/sql-statement-commit/','/docs-cn/v4.0/

## 语法图

**CommitStmt:**
```ebnf+diagram
CommitStmt ::=
'COMMIT' CompletionTypeWithinTransaction?
![CommitStmt](/media/sqlgram/CommitStmt.png)

**CompletionTypeWithinTransaction:**

![CompletionTypeWithinTransaction](/media/sqlgram/CompletionTypeWithinTransaction.png)
CompletionTypeWithinTransaction ::=
'AND' ( 'CHAIN' ( 'NO' 'RELEASE' )? | 'NO' 'CHAIN' ( 'NO'? 'RELEASE' )? )
| 'NO'? 'RELEASE'
```

## 示例

Expand Down
17 changes: 8 additions & 9 deletions sql-statements/sql-statement-create-binding.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,16 @@ aliases: ['/docs-cn/stable/sql-statements/sql-statement-create-binding/','/docs-

## 语法图

**CreateBindingStmt:**
```ebnf+diagram
CreateBindingStmt ::=
'CREATE' GlobalScope 'BINDING' 'FOR' SelectStmt 'USING' SelectStmt

![CreateBindingStmt](/media/sqlgram/CreateBindingStmt.png)
GlobalScope ::=
( 'GLOBAL' | 'SESSION' )?

**GlobalScope:**

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

**SelectStmt**

![SelectStmt](/media/sqlgram/SelectStmt.png)
SelectStmt ::=
( SelectStmtBasic | SelectStmtFromDualTable | SelectStmtFromTable ) OrderByOptional SelectStmtLimit SelectLockOpt SelectStmtIntoOption
```

****

Expand Down
22 changes: 10 additions & 12 deletions sql-statements/sql-statement-create-database.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,19 @@ aliases: ['/docs-cn/stable/sql-statements/sql-statement-create-database/','/docs

## 语法图

**CreateDatabaseStmt:**
```ebnf+diagram
CreateDatabaseStmt ::=
'CREATE' 'DATABASE' IfNotExists DBName DatabaseOptionListOpt
![CreateDaatabaseStmt](/media/sqlgram/CreateDatabaseStmt.png)
IfNotExists ::=
( 'IF' 'NOT' 'EXISTS' )?
**IfNotExists:**
DBName ::=
Identifier
![IfNotExists](/media/sqlgram/IfNotExists.png)

**DBName:**

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

**DatabaseOptionListOpt:**

![DatabaseOptionListOpt](/media/sqlgram/DatabaseOptionListOpt.png)
DatabaseOptionListOpt ::=
DatabaseOptionList?
```

## 语法说明

Expand Down
83 changes: 38 additions & 45 deletions sql-statements/sql-statement-create-index.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,65 +10,58 @@ aliases: ['/docs-cn/stable/sql-statements/sql-statement-create-index/','/docs-cn

## 语法图

**CreateIndexStmt:**
```ebnf+diagram
CreateIndexStmt ::=
'CREATE' IndexKeyTypeOpt 'INDEX' IfNotExists Identifier IndexTypeOpt 'ON' TableName '(' IndexPartSpecificationList ')' IndexOptionList IndexLockAndAlgorithmOpt
![CreateIndexStmt](/media/sqlgram/CreateIndexStmt.png)
IndexKeyTypeOpt ::=
( 'UNIQUE' | 'SPATIAL' | 'FULLTEXT' )?
**IndexKeyTypeOpt:**
IfNotExists ::=
( 'IF' 'NOT' 'EXISTS' )?
![IndexKeyTypeOpt](/media/sqlgram/IndexKeyTypeOpt.png)
IndexTypeOpt ::=
IndexType?
**IfNotExists:**
IndexPartSpecificationList ::=
IndexPartSpecification ( ',' IndexPartSpecification )*
![IfNotExists](/media/sqlgram/IfNotExists.png)
IndexOptionList ::=
IndexOption*
**IndexTypeOpt:**
IndexLockAndAlgorithmOpt ::=
( LockClause AlgorithmClause? | AlgorithmClause LockClause? )?
![IndexTypeOpt](/media/sqlgram/IndexTypeOpt.png)
IndexType ::=
( 'USING' | 'TYPE' ) IndexTypeName
**IndexPartSpecificationList:**
IndexPartSpecification ::=
( ColumnName OptFieldLen | '(' Expression ')' ) Order
![IndexPartSpecificationList](/media/sqlgram/IndexPartSpecificationList.png)
IndexOption ::=
'KEY_BLOCK_SIZE' '='? LengthNum
| IndexType
| 'WITH' 'PARSER' Identifier
| 'COMMENT' stringLit
| IndexInvisible
**IndexOptionList:**
IndexTypeName ::=
'BTREE'
| 'HASH'
| 'RTREE'
![IndexOptionList](/media/sqlgram/IndexOptionList.png)
ColumnName ::=
Identifier ( '.' Identifier ( '.' Identifier )? )?
**IndexLockAndAlgorithmOpt:**
OptFieldLen ::=
FieldLen?
![IndexLockAndAlgorithmOpt](/media/sqlgram/IndexLockAndAlgorithmOpt.png)
IndexNameList ::=
( Identifier | 'PRIMARY' )? ( ',' ( Identifier | 'PRIMARY' ) )*
**IndexType:**

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

**IndexPartSpecification:**

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

**IndexOption:**

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

**IndexTypeName:**

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

**ColumnName:**

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

**OptFieldLen:**

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

**IndexNameList:**

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

**KeyOrIndex:**

![KeyOrIndex](/media/sqlgram/KeyOrIndex.png)
KeyOrIndex ::=
'Key' | 'Index'
```

## 示例

Expand Down
17 changes: 8 additions & 9 deletions sql-statements/sql-statement-create-role.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,16 @@ summary: TiDB 数据库中 CREATE ROLE 的使用概况。

## 语法图

**CreateRoleStmt:**
```ebnf+diagram
CreateRoleStmt ::=
'CREATE' 'ROLE' IfNotExists RoleSpec (',' RoleSpec)*
![CreateRoleStmt](/media/sqlgram/CreateRoleStmt.png)
IfNotExists ::=
('IF' 'NOT' 'EXISTS')?
**IfNotExists:**

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

**RoleSpec:**

![RoleSpec](/media/sqlgram/RoleSpec.png)
RoleSpec ::=
Rolename
```

## 示例

Expand Down
48 changes: 25 additions & 23 deletions sql-statements/sql-statement-create-sequence.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,29 +10,31 @@ aliases: ['/docs-cn/stable/sql-statements/sql-statement-create-sequence/','/docs

## 语法图

**CreateSequenceStmt:**

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

**IfNotExists:**

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

**TableName:**

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

**CreateSequenceOptionListOpt:**

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

**SequenceOptionList:**

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

**SequenceOption:**

![SequenceOption](/media/sqlgram/SequenceOption.png)
```ebnf+diagram
CreateSequenceStmt ::=
'CREATE' 'SEQUENCE' IfNotExists TableName CreateSequenceOptionListOpt CreateTableOptionListOpt
IfNotExists ::=
('IF' 'NOT' 'EXISTS')?
TableName ::=
Identifier ('.' Identifier)?
CreateSequenceOptionListOpt ::=
SequenceOption*
SequenceOptionList ::=
SequenceOption
SequenceOption ::=
( 'INCREMENT' ( '='? | 'BY' ) | 'START' ( '='? | 'WITH' ) | ( 'MINVALUE' | 'MAXVALUE' | 'CACHE' ) '='? ) SignedNum
| 'NOMINVALUE'
| 'NO' ( 'MINVALUE' | 'MAXVALUE' | 'CACHE' | 'CYCLE' )
| 'NOMAXVALUE'
| 'NOCACHE'
| 'CYCLE'
| 'NOCYCLE'
```

## 语法说明

Expand Down
13 changes: 7 additions & 6 deletions sql-statements/sql-statement-create-table-like.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,14 @@ aliases: ['/docs-cn/stable/sql-statements/sql-statement-create-table-like/','/do

## 语法图

**CreateTableLikeStmt:**
```ebnf+diagram
CreateTableLikeStmt ::=
'CREATE' OptTemporary 'TABLE' IfNotExists TableName LikeTableWithOrWithoutParen
![CreateTableLikeStmt](/media/sqlgram/CreateTableLikeStmt.png)

**LikeTableWithOrWithoutParen:**

![LikeTableWithOrWithoutParen](/media/sqlgram/LikeTableWithOrWithoutParen.png)
LikeTableWithOrWithoutParen ::=
'LIKE' TableName
| '(' 'LIKE' TableName ')'
```

## 示例

Expand Down
Loading