Start:

Statement ;

Start    ::= Statement ( ';' Statement )*

no references


Statement:

EmptyStmt AdminStmt AlterDatabaseStmt AlterTableStmt AlterUserStmt AlterInstanceStmt AnalyzeTableStmt BeginTransactionStmt BinlogStmt BRIEStmt CommitStmt DeallocateStmt DeleteFromStmt ExecuteStmt ExplainStmt ChangeStmt CreateDatabaseStmt CreateIndexStmt CreateTableStmt CreateViewStmt CreateUserStmt CreateRoleStmt CreateBindingStmt CreateSequenceStmt DoStmt DropDatabaseStmt DropIndexStmt DropTableStmt DropSequenceStmt DropViewStmt DropUserStmt DropRoleStmt DropStatsStmt DropBindingStmt FlushStmt FlashbackTableStmt GrantStmt GrantRoleStmt InsertIntoStmt IndexAdviseStmt KillStmt LoadDataStmt LoadStatsStmt PreparedStmt RollbackStmt RenameTableStmt ReplaceIntoStmt RecoverTableStmt RevokeStmt RevokeRoleStmt SelectStmt UnionStmt SetStmt SetRoleStmt SetDefaultRoleStmt SplitRegionStmt ShowStmt SubSelect TraceStmt TruncateTableStmt UpdateStmt UseStmt UnlockTablesStmt LockTablesStmt SHUTDOWN

Statement
         ::= EmptyStmt
           | AdminStmt
           | AlterDatabaseStmt
           | AlterTableStmt
           | AlterUserStmt
           | AlterInstanceStmt
           | AnalyzeTableStmt
           | BeginTransactionStmt
           | BinlogStmt
           | BRIEStmt
           | CommitStmt
           | DeallocateStmt
           | DeleteFromStmt
           | ExecuteStmt
           | ExplainStmt
           | ChangeStmt
           | CreateDatabaseStmt
           | CreateIndexStmt
           | CreateTableStmt
           | CreateViewStmt
           | CreateUserStmt
           | CreateRoleStmt
           | CreateBindingStmt
           | CreateSequenceStmt
           | DoStmt
           | DropDatabaseStmt
           | DropIndexStmt
           | DropTableStmt
           | DropSequenceStmt
           | DropViewStmt
           | DropUserStmt
           | DropRoleStmt
           | DropStatsStmt
           | DropBindingStmt
           | FlushStmt
           | FlashbackTableStmt
           | GrantStmt
           | GrantRoleStmt
           | InsertIntoStmt
           | IndexAdviseStmt
           | KillStmt
           | LoadDataStmt
           | LoadStatsStmt
           | PreparedStmt
           | RollbackStmt
           | RenameTableStmt
           | ReplaceIntoStmt
           | RecoverTableStmt
           | RevokeStmt
           | RevokeRoleStmt
           | SelectStmt
           | UnionStmt
           | SetStmt
           | SetRoleStmt
           | SetDefaultRoleStmt
           | SplitRegionStmt
           | ShowStmt
           | SubSelect
           | TraceStmt
           | TruncateTableStmt
           | UpdateStmt
           | UseStmt
           | UnlockTablesStmt
           | LockTablesStmt
           | 'SHUTDOWN'

referenced by:


EmptyStmt:

EmptyStmt
         ::=

referenced by:


AdminStmt:

ADMIN SHOW DDL JOBS Int64Num WhereClauseOptional JOB QUERIES NumList TableName NEXT_ROW_ID SLOW AdminShowSlow CHECK TABLE TableNameList INDEX TableName Identifier HandleRange , RECOVER INDEX TableName Identifier CLEANUP INDEX TableName Identifier TABLE LOCK TableNameList CHECKSUM TABLE TableNameList CANCEL DDL JOBS NumList RELOAD EXPR_PUSHDOWN_BLACKLIST OPT_RULE_BLACKLIST BINDINGS PLUGINS ENABLE DISABLE PluginNameList REPAIR TABLE TableName CreateTableStmt FLUSH CAPTURE EVOLVE BINDINGS

AdminStmt
         ::= 'ADMIN' ( 'SHOW' ( 'DDL' ( 'JOBS' Int64Num? WhereClauseOptional | 'JOB' 'QUERIES' NumList )? | TableName 'NEXT_ROW_ID' | 'SLOW' AdminShowSlow ) | 'CHECK' ( 'TABLE' TableNameList | 'INDEX' TableName Identifier ( HandleRange ( ',' HandleRange )* )? ) | 'RECOVER' 'INDEX' TableName Identifier | 'CLEANUP' ( 'INDEX' TableName Identifier | 'TABLE' 'LOCK' TableNameList ) | 'CHECKSUM' 'TABLE' TableNameList | 'CANCEL' 'DDL' 'JOBS' NumList | 'RELOAD' ( 'EXPR_PUSHDOWN_BLACKLIST' | 'OPT_RULE_BLACKLIST' | 'BINDINGS' ) | 'PLUGINS' ( 'ENABLE' | 'DISABLE' ) PluginNameList | 'REPAIR' 'TABLE' TableName CreateTableStmt | ( 'FLUSH' | 'CAPTURE' | 'EVOLVE' ) 'BINDINGS' )

referenced by:


AlterDatabaseStmt:

ALTER DATABASE DBName DatabaseOptionList

AlterDatabaseStmt
         ::= 'ALTER' 'DATABASE' DBName? DatabaseOptionList

referenced by:


AlterTableStmt:

ALTER IgnoreOptional TABLE TableName AlterTableSpecListOpt AlterTablePartitionOpt ANALYZE PARTITION PartitionNameList INDEX IndexNameList AnalyzeOptionListOpt

AlterTableStmt
         ::= 'ALTER' IgnoreOptional 'TABLE' TableName ( AlterTableSpecListOpt AlterTablePartitionOpt | 'ANALYZE' 'PARTITION' PartitionNameList ( 'INDEX' IndexNameList )? AnalyzeOptionListOpt )

referenced by:


AlterUserStmt:

ALTER USER IfExists UserSpecList RequireClauseOpt ConnectionOptions PasswordOrLockOptions USER ( ) IDENTIFIED BY AuthString

AlterUserStmt
         ::= 'ALTER' 'USER' IfExists ( UserSpecList RequireClauseOpt ConnectionOptions PasswordOrLockOptions | 'USER' '(' ')' 'IDENTIFIED' 'BY' AuthString )

referenced by:


AlterInstanceStmt:

ALTER INSTANCE InstanceOption

AlterInstanceStmt
         ::= 'ALTER' 'INSTANCE' InstanceOption

referenced by:


AnalyzeTableStmt:

ANALYZE TABLE TableNameList TableName INDEX IndexNameList PARTITION PartitionNameList INDEX IndexNameList INCREMENTAL TABLE TableName PARTITION PartitionNameList INDEX IndexNameList AnalyzeOptionListOpt

AnalyzeTableStmt
         ::= 'ANALYZE' ( 'TABLE' ( TableNameList | TableName ( 'INDEX' IndexNameList | 'PARTITION' PartitionNameList ( 'INDEX' IndexNameList )? ) ) | 'INCREMENTAL' 'TABLE' TableName ( 'PARTITION' PartitionNameList )? 'INDEX' IndexNameList ) AnalyzeOptionListOpt

referenced by:


BeginTransactionStmt:

BEGIN PESSIMISTIC OPTIMISTIC START TRANSACTION READ WRITE ONLY WITH TIMESTAMP BOUND TimestampBound WITH CONSISTENT SNAPSHOT

BeginTransactionStmt
         ::= 'BEGIN' ( 'PESSIMISTIC' | 'OPTIMISTIC' )?
           | 'START' 'TRANSACTION' ( 'READ' ( 'WRITE' | 'ONLY' ( 'WITH' 'TIMESTAMP' 'BOUND' TimestampBound )? ) | 'WITH' 'CONSISTENT' 'SNAPSHOT' )?

referenced by:


BinlogStmt:

BINLOG stringLit

BinlogStmt
         ::= 'BINLOG' stringLit

referenced by:


BRIEStmt:

BACKUP BRIETables TO RESTORE IMPORT BRIETables FROM stringLit BRIEOption

BRIEStmt ::= ( 'BACKUP' BRIETables 'TO' | ( 'RESTORE' | 'IMPORT' ) BRIETables 'FROM' ) stringLit BRIEOption*

referenced by:


CommitStmt:

COMMIT CompletionTypeWithinTransaction

CommitStmt
         ::= 'COMMIT' CompletionTypeWithinTransaction?

referenced by:


DeallocateStmt:

DeallocateSym PREPARE Identifier

DeallocateStmt
         ::= DeallocateSym 'PREPARE' Identifier

referenced by:


DeleteFromStmt:

DELETE TableOptimizerHints PriorityOpt QuickOptional IgnoreOptional FROM TableName TableAsNameOpt IndexHintListOpt WhereClauseOptional OrderByOptional LimitClause TableAliasRefList USING TableRefs WhereClauseOptional TableAliasRefList FROM TableRefs WhereClauseOptional

DeleteFromStmt
         ::= 'DELETE' TableOptimizerHints PriorityOpt QuickOptional IgnoreOptional ( 'FROM' ( TableName TableAsNameOpt IndexHintListOpt WhereClauseOptional OrderByOptional LimitClause | TableAliasRefList 'USING' TableRefs WhereClauseOptional ) | TableAliasRefList 'FROM' TableRefs WhereClauseOptional )

referenced by:


ExecuteStmt:

EXECUTE Identifier USING UserVariable ,

ExecuteStmt
         ::= 'EXECUTE' Identifier ( 'USING' UserVariable ( ',' UserVariable )* )?

referenced by:


ExplainStmt:

ExplainSym TableName ColumnName ANALYZE ExplainableStmt FOR CONNECTION NUM FORMAT = stringLit ExplainFormatType FOR CONNECTION NUM ExplainableStmt

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

referenced by:


ChangeStmt:

CHANGE PUMP DRAINER TO NODE_STATE eq stringLit forKwd NODE_ID stringLit

ChangeStmt
         ::= 'CHANGE' ( 'PUMP' | 'DRAINER' ) 'TO' 'NODE_STATE' eq stringLit forKwd 'NODE_ID' stringLit

referenced by:


CreateDatabaseStmt:

CREATE DATABASE IfNotExists DBName DatabaseOptionListOpt

CreateDatabaseStmt
         ::= 'CREATE' 'DATABASE' IfNotExists DBName DatabaseOptionListOpt

referenced by:


CreateIndexStmt:

CREATE IndexKeyTypeOpt INDEX IfNotExists Identifier IndexTypeOpt ON TableName ( IndexPartSpecificationList ) IndexOptionList IndexLockAndAlgorithmOpt

CreateIndexStmt
         ::= 'CREATE' IndexKeyTypeOpt 'INDEX' IfNotExists Identifier IndexTypeOpt 'ON' TableName '(' IndexPartSpecificationList ')' IndexOptionList IndexLockAndAlgorithmOpt

referenced by:


CreateTableStmt:

CREATE OptTemporary TABLE IfNotExists TableName TableElementListOpt CreateTableOptionListOpt PartitionOpt DuplicateOpt AsOpt CreateTableSelectOpt LikeTableWithOrWithoutParen

CreateTableStmt
         ::= 'CREATE' OptTemporary 'TABLE' IfNotExists TableName ( TableElementListOpt CreateTableOptionListOpt PartitionOpt DuplicateOpt AsOpt CreateTableSelectOpt | LikeTableWithOrWithoutParen )

referenced by:


CreateViewStmt:

CREATE OrReplace ViewAlgorithm ViewDefiner ViewSQLSecurity VIEW ViewName ViewFieldList AS CreateViewSelectOpt ViewCheckOption

CreateViewStmt
         ::= 'CREATE' OrReplace ViewAlgorithm ViewDefiner ViewSQLSecurity 'VIEW' ViewName ViewFieldList 'AS' CreateViewSelectOpt ViewCheckOption

referenced by:


CreateUserStmt:

CREATE USER IfNotExists UserSpecList RequireClauseOpt ConnectionOptions PasswordOrLockOptions

CreateUserStmt
         ::= 'CREATE' 'USER' IfNotExists UserSpecList RequireClauseOpt ConnectionOptions PasswordOrLockOptions

referenced by:


CreateRoleStmt:

CREATE ROLE IfNotExists RoleSpec ,

CreateRoleStmt
         ::= 'CREATE' 'ROLE' IfNotExists RoleSpec ( ',' RoleSpec )*

referenced by:


CreateBindingStmt:

CREATE GlobalScope BINDING FOR SelectStmt USING SelectStmt

CreateBindingStmt
         ::= 'CREATE' GlobalScope 'BINDING' 'FOR' SelectStmt 'USING' SelectStmt

referenced by:


CreateSequenceStmt:

CREATE SEQUENCE IfNotExists TableName CreateSequenceOptionListOpt CreateTableOptionListOpt

CreateSequenceStmt
         ::= 'CREATE' 'SEQUENCE' IfNotExists TableName CreateSequenceOptionListOpt CreateTableOptionListOpt

referenced by:


DoStmt:

DO ExpressionList

DoStmt   ::= 'DO' ExpressionList

referenced by:


DropDatabaseStmt:

DROP DATABASE IfExists DBName

DropDatabaseStmt
         ::= 'DROP' 'DATABASE' IfExists DBName

referenced by:


DropIndexStmt:

DROP INDEX IfExists Identifier ON TableName IndexLockAndAlgorithmOpt

DropIndexStmt
         ::= 'DROP' 'INDEX' IfExists Identifier 'ON' TableName IndexLockAndAlgorithmOpt

referenced by:


DropTableStmt:

DROP OptTemporary TableOrTables IfExists TableNameList RestrictOrCascadeOpt

DropTableStmt
         ::= 'DROP' OptTemporary TableOrTables IfExists TableNameList RestrictOrCascadeOpt

referenced by:


DropSequenceStmt:

DROP SEQUENCE IfExists TableNameList

DropSequenceStmt
         ::= 'DROP' 'SEQUENCE' IfExists TableNameList

referenced by:


DropViewStmt:

DROP VIEW IF EXISTS TableNameList RestrictOrCascadeOpt

DropViewStmt
         ::= 'DROP' 'VIEW' ( 'IF' 'EXISTS' )? TableNameList RestrictOrCascadeOpt

referenced by:


DropUserStmt:

DROP USER IF EXISTS UsernameList

DropUserStmt
         ::= 'DROP' 'USER' ( 'IF' 'EXISTS' )? UsernameList

referenced by:


DropRoleStmt:

DROP ROLE IF EXISTS RolenameList

DropRoleStmt
         ::= 'DROP' 'ROLE' ( 'IF' 'EXISTS' )? RolenameList

referenced by:


DropStatsStmt:

DROP STATS TableName

DropStatsStmt
         ::= 'DROP' 'STATS' TableName

referenced by:


DropBindingStmt:

DROP GlobalScope BINDING FOR SelectStmt USING SelectStmt

DropBindingStmt
         ::= 'DROP' GlobalScope 'BINDING' 'FOR' SelectStmt ( 'USING' SelectStmt )?

referenced by:


FlushStmt:

FLUSH NoWriteToBinLogAliasOpt FlushOption

FlushStmt
         ::= 'FLUSH' NoWriteToBinLogAliasOpt FlushOption

referenced by:


FlashbackTableStmt:

FLASHBACK TABLE TableName FlashbackToNewName

FlashbackTableStmt
         ::= 'FLASHBACK' 'TABLE' TableName FlashbackToNewName

referenced by:


GrantStmt:

GRANT PrivElemList ON ObjectType PrivLevel TO UserSpecList RequireClauseOpt WithGrantOptionOpt

GrantStmt
         ::= 'GRANT' PrivElemList 'ON' ObjectType PrivLevel 'TO' UserSpecList RequireClauseOpt WithGrantOptionOpt

referenced by:


GrantRoleStmt:

GRANT RolenameList TO UsernameList

GrantRoleStmt
         ::= 'GRANT' RolenameList 'TO' UsernameList

referenced by:


InsertIntoStmt:

INSERT TableOptimizerHints PriorityOpt IgnoreOptional IntoOpt TableName PartitionNameListOpt InsertValues OnDuplicateKeyUpdate

InsertIntoStmt
         ::= 'INSERT' TableOptimizerHints PriorityOpt IgnoreOptional IntoOpt TableName PartitionNameListOpt InsertValues OnDuplicateKeyUpdate

referenced by:


IndexAdviseStmt:

INDEX ADVISE LocalOpt INFILE stringLit MaxMinutesOpt MaxIndexNumOpt Lines

IndexAdviseStmt
         ::= 'INDEX' 'ADVISE' LocalOpt 'INFILE' stringLit MaxMinutesOpt MaxIndexNumOpt Lines

referenced by:


KillStmt:

KillOrKillTiDB CONNECTION QUERY NUM

KillStmt ::= KillOrKillTiDB ( 'CONNECTION' | 'QUERY' )? NUM

referenced by:


LoadDataStmt:

LOAD DATA LocalOpt INFILE stringLit DuplicateOpt INTO TABLE TableName CharsetOpt Fields Lines IgnoreLines ColumnNameOrUserVarListOptWithBrackets LoadDataSetSpecOpt

LoadDataStmt
         ::= 'LOAD' 'DATA' LocalOpt 'INFILE' stringLit DuplicateOpt 'INTO' 'TABLE' TableName CharsetOpt Fields Lines IgnoreLines ColumnNameOrUserVarListOptWithBrackets LoadDataSetSpecOpt

referenced by:


LoadStatsStmt:

LOAD STATS stringLit

LoadStatsStmt
         ::= 'LOAD' 'STATS' stringLit

referenced by:


PreparedStmt:

PREPARE Identifier FROM PrepareSQL

PreparedStmt
         ::= 'PREPARE' Identifier 'FROM' PrepareSQL

referenced by:


RollbackStmt:

ROLLBACK CompletionTypeWithinTransaction

RollbackStmt
         ::= 'ROLLBACK' CompletionTypeWithinTransaction?

referenced by:


RenameTableStmt:

RENAME TABLE TableToTable ,

RenameTableStmt
         ::= 'RENAME' 'TABLE' TableToTable ( ',' TableToTable )*

referenced by:


ReplaceIntoStmt:

REPLACE PriorityOpt IntoOpt TableName PartitionNameListOpt InsertValues

ReplaceIntoStmt
         ::= 'REPLACE' PriorityOpt IntoOpt TableName PartitionNameListOpt InsertValues

referenced by:


RecoverTableStmt:

RECOVER TABLE BY JOB Int64Num TableName Int64Num

RecoverTableStmt
         ::= 'RECOVER' 'TABLE' ( 'BY' 'JOB' Int64Num | TableName Int64Num? )

referenced by:


RevokeStmt:

REVOKE PrivElemList ON ObjectType PrivLevel FROM UserSpecList

RevokeStmt
         ::= 'REVOKE' PrivElemList 'ON' ObjectType PrivLevel 'FROM' UserSpecList

referenced by:


RevokeRoleStmt:

REVOKE RolenameList FROM UsernameList

RevokeRoleStmt
         ::= 'REVOKE' RolenameList 'FROM' UsernameList

referenced by:


SelectStmt:

SelectStmtBasic SelectStmtFromDualTable SelectStmtFromTable OrderByOptional SelectStmtLimit SelectLockOpt SelectStmtIntoOption

SelectStmt
         ::= ( SelectStmtBasic | SelectStmtFromDualTable | SelectStmtFromTable ) OrderByOptional SelectStmtLimit SelectLockOpt SelectStmtIntoOption

referenced by:


UnionStmt:

UnionSelect UNION UnionOpt SelectStmtBasic SelectStmtFromDualTable SelectStmtFromTable OrderByOptional SelectStmtLimit SelectLockOpt ( SelectStmt ) OrderByOptional SelectStmtLimit

UnionStmt
         ::= ( UnionSelect 'UNION' UnionOpt )+ ( ( SelectStmtBasic | SelectStmtFromDualTable | SelectStmtFromTable ) OrderByOptional SelectStmtLimit SelectLockOpt | '(' SelectStmt ')' OrderByOptional SelectStmtLimit )

referenced by:


SetStmt:

SET VariableAssignment , VariableAssignment PASSWORD FOR Username eq PasswordOpt GLOBAL SESSION TRANSACTION TransactionChar , CONFIG Identifier stringLit Identifier . - EqOrAssignmentEq SetExpr

SetStmt  ::= 'SET' ( VariableAssignment? ( ',' VariableAssignment )* | 'PASSWORD' ( 'FOR' Username )? eq PasswordOpt | ( 'GLOBAL' | 'SESSION' )? 'TRANSACTION' TransactionChar ( ',' TransactionChar )* | 'CONFIG' ( Identifier | stringLit ) Identifier ( ( '.' | '-' ) Identifier )* EqOrAssignmentEq SetExpr )

referenced by:


SetRoleStmt:

SET ROLE SetRoleOpt

SetRoleStmt
         ::= 'SET' 'ROLE' SetRoleOpt

referenced by:


SetDefaultRoleStmt:

SET DEFAULT ROLE SetDefaultRoleOpt TO UsernameList

SetDefaultRoleStmt
         ::= 'SET' 'DEFAULT' 'ROLE' SetDefaultRoleOpt 'TO' UsernameList

referenced by:


SplitRegionStmt:

SPLIT SplitSyntaxOption TABLE TableName PartitionNameListOpt INDEX Identifier SplitOption

SplitRegionStmt
         ::= 'SPLIT' SplitSyntaxOption 'TABLE' TableName PartitionNameListOpt ( 'INDEX' Identifier )? SplitOption

referenced by:


ShowStmt:

SHOW ShowTargetFilterable ShowLikeOrWhereOpt CREATE TABLE VIEW SEQUENCE TableName DATABASE IfNotExists DBName USER Username TABLE TableName PartitionNameListOpt INDEX Identifier REGIONS WhereClauseOptional NEXT_ROW_ID GRANTS FOR Username UsingRoles MASTER STATUS OptFull PROCESSLIST PROFILES PROFILE ShowProfileTypesOpt ShowProfileArgsOpt SelectStmtLimit PRIVILEGES BUILTINS

ShowStmt ::= 'SHOW' ( ShowTargetFilterable ShowLikeOrWhereOpt | 'CREATE' ( ( 'TABLE' | 'VIEW' | 'SEQUENCE' ) TableName | 'DATABASE' IfNotExists DBName | 'USER' Username ) | 'TABLE' TableName ( PartitionNameListOpt ( 'INDEX' Identifier )? 'REGIONS' WhereClauseOptional | 'NEXT_ROW_ID' ) | 'GRANTS' ( 'FOR' Username UsingRoles )? | 'MASTER' 'STATUS' | OptFull 'PROCESSLIST' | 'PROFILES' | 'PROFILE' ShowProfileTypesOpt ShowProfileArgsOpt SelectStmtLimit | 'PRIVILEGES' | 'BUILTINS' )

referenced by:


SubSelect:

( SelectStmt UnionStmt )

SubSelect
         ::= '(' ( SelectStmt | UnionStmt ) ')'

referenced by:


TraceStmt:

TRACE FORMAT = stringLit TraceableStmt

TraceStmt
         ::= 'TRACE' ( 'FORMAT' '=' stringLit )? TraceableStmt

referenced by:


TruncateTableStmt:

TRUNCATE OptTable TableName

TruncateTableStmt
         ::= 'TRUNCATE' OptTable TableName

referenced by:


UpdateStmt:

UPDATE TableOptimizerHints PriorityOpt IgnoreOptional TableRef SET AssignmentList WhereClauseOptional OrderByOptional LimitClause TableRefs SET AssignmentList WhereClauseOptional

UpdateStmt
         ::= 'UPDATE' TableOptimizerHints PriorityOpt IgnoreOptional ( TableRef 'SET' AssignmentList WhereClauseOptional OrderByOptional LimitClause | TableRefs 'SET' AssignmentList WhereClauseOptional )

referenced by:


UseStmt:

USE DBName

UseStmt  ::= 'USE' DBName

referenced by:


UnlockTablesStmt:

UNLOCK TablesTerminalSym

UnlockTablesStmt
         ::= 'UNLOCK' TablesTerminalSym

referenced by:


LockTablesStmt:

LOCK TablesTerminalSym TableLock ,

LockTablesStmt
         ::= 'LOCK' TablesTerminalSym TableLock ( ',' TableLock )*

referenced by:


WhereClauseOptional:

WhereClause

WhereClauseOptional
         ::= WhereClause?

referenced by:


Int64Num:

NUM

Int64Num ::= NUM

referenced by:


TableName:

Identifier . Identifier

TableName
         ::= Identifier ( '.' Identifier )?

referenced by:


TableNameList:

TableName ,

TableNameList
         ::= TableName ( ',' TableName )*

referenced by:


Identifier:

identifier UnReservedKeyword NotKeywordToken TiDBKeyword

Identifier
         ::= identifier
           | UnReservedKeyword
           | NotKeywordToken
           | TiDBKeyword

referenced by:


NumList:

Int64Num ,

NumList  ::= Int64Num ( ',' Int64Num )*

referenced by:


AdminShowSlow:

RECENT TOP INTERNAL ALL NUM

AdminShowSlow
         ::= ( 'RECENT' | 'TOP' ( 'INTERNAL' | 'ALL' )? ) NUM

referenced by:


PluginNameList:

Identifier ,

PluginNameList
         ::= Identifier ( ',' Identifier )*

referenced by:


DBName:

Identifier

DBName   ::= Identifier

referenced by:


DatabaseOptionList:

DatabaseOption

DatabaseOptionList
         ::= DatabaseOption+

referenced by:


IgnoreOptional:

IGNORE

IgnoreOptional
         ::= 'IGNORE'?

referenced by:


AlterTableSpecListOpt:

AlterTableSpec ,

AlterTableSpecListOpt
         ::= ( AlterTableSpec ( ',' AlterTableSpec )* )?

referenced by:


AlterTablePartitionOpt:

PartitionOpt REMOVE PARTITIONING

AlterTablePartitionOpt
         ::= PartitionOpt
           | 'REMOVE' 'PARTITIONING'

referenced by:


PartitionNameList:

Identifier ,

PartitionNameList
         ::= Identifier ( ',' Identifier )*

referenced by:


AnalyzeOptionListOpt:

WITH AnalyzeOption ,

AnalyzeOptionListOpt
         ::= ( 'WITH' AnalyzeOption ( ',' AnalyzeOption )* )?

referenced by:


IndexNameList:

Identifier PRIMARY , Identifier PRIMARY

IndexNameList
         ::= ( Identifier | 'PRIMARY' )? ( ',' ( Identifier | 'PRIMARY' ) )*

referenced by:


IfExists:

IF EXISTS

IfExists ::= ( 'IF' 'EXISTS' )?

referenced by:


UserSpecList:

UserSpec ,

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

referenced by:


RequireClauseOpt:

RequireClause

RequireClauseOpt
         ::= RequireClause?

referenced by:


ConnectionOptions:

WITH ConnectionOption

ConnectionOptions
         ::= ( 'WITH' ConnectionOption+ )?

referenced by:


PasswordOrLockOptions:

PasswordOrLockOption

PasswordOrLockOptions
         ::= PasswordOrLockOption*

referenced by:


AuthString:

stringLit

AuthString
         ::= stringLit

referenced by:


InstanceOption:

RELOAD TLS NO ROLLBACK ON ERROR

InstanceOption
         ::= 'RELOAD' 'TLS' ( 'NO' 'ROLLBACK' 'ON' 'ERROR' )?

referenced by:


TimestampBound:

STRONG MIN READ TIMESTAMP MAX EXACT STALENESS Expression

TimestampBound
         ::= 'STRONG'
           | ( 'MIN'? 'READ' 'TIMESTAMP' | ( 'MAX' | 'EXACT' ) 'STALENESS' ) Expression

referenced by:


BRIETables:

DATABASE * DBName , TABLE TableNameList

BRIETables
         ::= 'DATABASE' ( '*' | DBName ( ',' DBName )* )
           | 'TABLE' TableNameList

referenced by:


CompletionTypeWithinTransaction:

AND CHAIN NO RELEASE NO CHAIN NO RELEASE NO RELEASE

CompletionTypeWithinTransaction
         ::= 'AND' ( 'CHAIN' ( 'NO' 'RELEASE' )? | 'NO' 'CHAIN' ( 'NO'? 'RELEASE' )? )
           | 'NO'? 'RELEASE'

referenced by:


DeallocateSym:

DEALLOCATE DROP

DeallocateSym
         ::= 'DEALLOCATE'
           | 'DROP'

referenced by:


TableOptimizerHints:

hintComment

TableOptimizerHints
         ::= hintComment?

referenced by:


PriorityOpt:

LOW_PRIORITY HIGH_PRIORITY DELAYED

PriorityOpt
         ::= ( 'LOW_PRIORITY' | 'HIGH_PRIORITY' | 'DELAYED' )?

referenced by:


QuickOptional:

QUICK

QuickOptional
         ::= 'QUICK'?

referenced by:


TableAsNameOpt:

TableAsName

TableAsNameOpt
         ::= TableAsName?

referenced by:


IndexHintListOpt:

IndexHint

IndexHintListOpt
         ::= IndexHint*

referenced by:


OrderByOptional:

OrderBy

OrderByOptional
         ::= OrderBy?

referenced by:


LimitClause:

LIMIT LimitOption

LimitClause
         ::= ( 'LIMIT' LimitOption )?

referenced by:


TableAliasRefList:

TableNameOptWild ,

TableAliasRefList
         ::= TableNameOptWild ( ',' TableNameOptWild )*

referenced by:


TableRefs:

EscapedTableRef ,

TableRefs
         ::= EscapedTableRef ( ',' EscapedTableRef )*

referenced by:


ExplainSym:

EXPLAIN DESCRIBE DESC

ExplainSym
         ::= 'EXPLAIN'
           | 'DESCRIBE'
           | 'DESC'

referenced by:


ColumnName:

Identifier . Identifier . Identifier

ColumnName
         ::= Identifier ( '.' Identifier ( '.' Identifier )? )?

referenced by:


ExplainableStmt:

SelectStmt DeleteFromStmt UpdateStmt InsertIntoStmt ReplaceIntoStmt UnionStmt

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

referenced by:


NUM:

intLit

NUM      ::= intLit

referenced by:


ExplainFormatType:

TRADITIONAL JSON

ExplainFormatType
         ::= 'TRADITIONAL'
           | 'JSON'

referenced by:


IfNotExists:

IF NOT EXISTS

IfNotExists
         ::= ( 'IF' 'NOT' 'EXISTS' )?

referenced by:


DatabaseOptionListOpt:

DatabaseOptionList

DatabaseOptionListOpt
         ::= DatabaseOptionList?

referenced by:


IndexKeyTypeOpt:

UNIQUE SPATIAL FULLTEXT

IndexKeyTypeOpt
         ::= ( 'UNIQUE' | 'SPATIAL' | 'FULLTEXT' )?

referenced by:


IndexTypeOpt:

IndexType

IndexTypeOpt
         ::= IndexType?

referenced by:


IndexPartSpecificationList:

IndexPartSpecification ,

IndexPartSpecificationList
         ::= IndexPartSpecification ( ',' IndexPartSpecification )*

referenced by:


IndexOptionList:

IndexOption

IndexOptionList
         ::= IndexOption*

referenced by:


IndexLockAndAlgorithmOpt:

LockClause AlgorithmClause AlgorithmClause LockClause

IndexLockAndAlgorithmOpt
         ::= ( LockClause AlgorithmClause? | AlgorithmClause LockClause? )?

referenced by:


OptTemporary:

TEMPORARY

OptTemporary
         ::= 'TEMPORARY'?

referenced by:


TableElementListOpt:

( TableElementList )

TableElementListOpt
         ::= ( '(' TableElementList ')' )?

referenced by:


CreateTableOptionListOpt:

TableOptionList

CreateTableOptionListOpt
         ::= TableOptionList?

referenced by:


PartitionOpt:

PARTITION BY PartitionMethod PartitionNumOpt SubPartitionOpt PartitionDefinitionListOpt

PartitionOpt
         ::= ( 'PARTITION' 'BY' PartitionMethod PartitionNumOpt SubPartitionOpt PartitionDefinitionListOpt )?

referenced by:


DuplicateOpt:

IGNORE REPLACE

DuplicateOpt
         ::= ( 'IGNORE' | 'REPLACE' )?

referenced by:


AsOpt:

AS

AsOpt    ::= 'AS'?

referenced by:


CreateTableSelectOpt:

SelectStmt UnionStmt SubSelect

CreateTableSelectOpt
         ::= ( SelectStmt | UnionStmt | SubSelect )?

referenced by:


LikeTableWithOrWithoutParen:

LIKE TableName ( LIKE TableName )

LikeTableWithOrWithoutParen
         ::= 'LIKE' TableName
           | '(' 'LIKE' TableName ')'

referenced by:


OrReplace:

OR REPLACE

OrReplace
         ::= ( 'OR' 'REPLACE' )?

referenced by:


ViewAlgorithm:

ALGORITHM = UNDEFINED MERGE TEMPTABLE

ViewAlgorithm
         ::= ( 'ALGORITHM' '=' ( 'UNDEFINED' | 'MERGE' | 'TEMPTABLE' ) )?

referenced by:


ViewDefiner:

DEFINER = Username

ViewDefiner
         ::= ( 'DEFINER' '=' Username )?

referenced by:


ViewSQLSecurity:

SQL SECURITY DEFINER INVOKER

ViewSQLSecurity
         ::= ( 'SQL' 'SECURITY' ( 'DEFINER' | 'INVOKER' ) )?

referenced by:


ViewName:

TableName

ViewName ::= TableName

referenced by:


ViewFieldList:

( Identifier , )

ViewFieldList
         ::= ( '(' Identifier ( ',' Identifier )* ')' )?

referenced by:


CreateViewSelectOpt:

SelectStmt UnionStmt ( SelectStmt UnionStmt )

CreateViewSelectOpt
         ::= SelectStmt
           | UnionStmt
           | '(' ( SelectStmt | UnionStmt ) ')'

referenced by:


ViewCheckOption:

WITH CASCADED LOCAL CHECK OPTION

ViewCheckOption
         ::= ( 'WITH' ( 'CASCADED' | 'LOCAL' ) 'CHECK' 'OPTION' )?

referenced by:


GlobalScope:

GLOBAL SESSION

GlobalScope
         ::= ( 'GLOBAL' | 'SESSION' )?

referenced by:


CreateSequenceOptionListOpt:

SequenceOption

CreateSequenceOptionListOpt
         ::= SequenceOption*

referenced by:


ExpressionList:

Expression ,

ExpressionList
         ::= Expression ( ',' Expression )*

referenced by:


TableOrTables:

TABLE TABLES

TableOrTables
         ::= 'TABLE'
           | 'TABLES'

referenced by:


RestrictOrCascadeOpt:

RESTRICT CASCADE

RestrictOrCascadeOpt
         ::= ( 'RESTRICT' | 'CASCADE' )?

referenced by:


UsernameList:

Username ,

UsernameList
         ::= Username ( ',' Username )*

referenced by:


RolenameList:

Rolename ,

RolenameList
         ::= Rolename ( ',' Rolename )*

referenced by:


NoWriteToBinLogAliasOpt:

NO_WRITE_TO_BINLOG LOCAL

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

referenced by:


FlushOption:

PRIVILEGES STATUS TIDB PLUGINS PluginNameList HOSTS LogTypeOpt LOGS TableOrTables TableNameListOpt WithReadLockOpt

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

referenced by:


FlashbackToNewName:

TO Identifier

FlashbackToNewName
         ::= ( 'TO' Identifier )?

referenced by:


PrivElemList:

PrivElem ,

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

referenced by:


ObjectType:

TABLE

ObjectType
         ::= 'TABLE'?

referenced by:


PrivLevel:

* . * Identifier . * Identifier

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

referenced by:


WithGrantOptionOpt:

WITH GRANT OPTION MAX_QUERIES_PER_HOUR MAX_UPDATES_PER_HOUR MAX_CONNECTIONS_PER_HOUR MAX_USER_CONNECTIONS NUM

WithGrantOptionOpt
         ::= ( 'WITH' ( 'GRANT' 'OPTION' | ( 'MAX_QUERIES_PER_HOUR' | 'MAX_UPDATES_PER_HOUR' | 'MAX_CONNECTIONS_PER_HOUR' | 'MAX_USER_CONNECTIONS' ) NUM ) )?

referenced by:


IntoOpt:

INTO

IntoOpt  ::= 'INTO'?

referenced by:


PartitionNameListOpt:

PARTITION ( PartitionNameList )

PartitionNameListOpt
         ::= ( 'PARTITION' '(' PartitionNameList ')' )?

referenced by:


InsertValues:

( ColumnNameListOpt ) ValueSym ValuesList SelectStmt ( SelectStmt ) UnionStmt SelectStmt ) ValueSym ValuesList SelectStmt UnionStmt SET ColumnSetValue , ColumnSetValue

InsertValues
         ::= '(' ( ColumnNameListOpt ')' ( ValueSym ValuesList | SelectStmt | '(' SelectStmt ')' | UnionStmt ) | SelectStmt ')' )
           | ValueSym ValuesList
           | SelectStmt
           | UnionStmt
           | 'SET' ColumnSetValue? ( ',' ColumnSetValue )*

referenced by:


OnDuplicateKeyUpdate:

ON DUPLICATE KEY UPDATE AssignmentList

OnDuplicateKeyUpdate
         ::= ( 'ON' 'DUPLICATE' 'KEY' 'UPDATE' AssignmentList )?

referenced by:


LocalOpt:

LOCAL

LocalOpt ::= 'LOCAL'?

referenced by:


MaxMinutesOpt:

MAX_MINUTES NUM

MaxMinutesOpt
         ::= ( 'MAX_MINUTES' NUM )?

referenced by:


MaxIndexNumOpt:

MAX_IDXNUM PerTable PerDB

MaxIndexNumOpt
         ::= ( 'MAX_IDXNUM' PerTable PerDB )?

referenced by:


Lines:

LINES Starting LinesTerminated

Lines    ::= ( 'LINES' Starting LinesTerminated )?

referenced by:


KillOrKillTiDB:

KILL TIDB

KillOrKillTiDB
         ::= 'KILL' 'TIDB'?

referenced by:


CharsetOpt:

CHARACTER SET CharsetName

CharsetOpt
         ::= ( 'CHARACTER' 'SET' CharsetName )?

referenced by:


Fields:

FieldsOrColumns FieldItem

Fields   ::= ( FieldsOrColumns FieldItem+ )?

referenced by:


IgnoreLines:

IGNORE NUM LINES

IgnoreLines
         ::= ( 'IGNORE' NUM 'LINES' )?

referenced by:


ColumnNameOrUserVarListOptWithBrackets:

( ColumnNameOrUserVarListOpt )

ColumnNameOrUserVarListOptWithBrackets
         ::= ( '(' ColumnNameOrUserVarListOpt ')' )?

referenced by:


LoadDataSetSpecOpt:

SET LoadDataSetItem ,

LoadDataSetSpecOpt
         ::= ( 'SET' LoadDataSetItem ( ',' LoadDataSetItem )* )?

referenced by:


PrepareSQL:

stringLit UserVariable

PrepareSQL
         ::= stringLit
           | UserVariable

referenced by:


SelectStmtBasic:

SELECT SelectStmtOpts SelectStmtFieldList

SelectStmtBasic
         ::= 'SELECT' SelectStmtOpts SelectStmtFieldList

referenced by:


SelectStmtLimit:

LIMIT LimitOption , OFFSET LimitOption

SelectStmtLimit
         ::= ( 'LIMIT' LimitOption ( ( ',' | 'OFFSET' ) LimitOption )? )?

referenced by:


SelectLockOpt:

FOR UPDATE NOWAIT LOCK IN SHARE MODE

SelectLockOpt
         ::= ( 'FOR' 'UPDATE' 'NOWAIT'? | 'LOCK' 'IN' 'SHARE' 'MODE' )?

referenced by:


SelectStmtIntoOption:

INTO OUTFILE stringLit Fields Lines

SelectStmtIntoOption
         ::= ( 'INTO' 'OUTFILE' stringLit Fields Lines )?

referenced by:


SelectStmtFromDualTable:

SelectStmtBasic FromDual WhereClauseOptional

SelectStmtFromDualTable
         ::= SelectStmtBasic FromDual WhereClauseOptional

referenced by:


SelectStmtFromTable:

SelectStmtBasic FROM TableRefsClause WhereClauseOptional SelectStmtGroup HavingClause WindowClauseOptional

SelectStmtFromTable
         ::= SelectStmtBasic 'FROM' TableRefsClause WhereClauseOptional SelectStmtGroup HavingClause WindowClauseOptional

referenced by:


UnionOpt:

DefaultTrueDistinctOpt

UnionOpt ::= DefaultTrueDistinctOpt

referenced by:


PasswordOpt:

stringLit PASSWORD ( AuthString )

PasswordOpt
         ::= stringLit
           | 'PASSWORD' '(' AuthString ')'

referenced by:


Username:

StringName @ StringName singleAtIdentifier CURRENT_USER OptionalBraces

Username ::= StringName ( '@' StringName | singleAtIdentifier )?
           | 'CURRENT_USER' OptionalBraces

referenced by:


EqOrAssignmentEq:

eq assignmentEq

EqOrAssignmentEq
         ::= eq
           | assignmentEq

referenced by:


SetExpr:

ON ExprOrDefault

SetExpr  ::= 'ON'
           | ExprOrDefault

referenced by:


SetRoleOpt:

ALL EXCEPT RolenameList SetDefaultRoleOpt DEFAULT

SetRoleOpt
         ::= 'ALL' 'EXCEPT' RolenameList
           | SetDefaultRoleOpt
           | 'DEFAULT'

referenced by:


SetDefaultRoleOpt:

NONE ALL RolenameList

SetDefaultRoleOpt
         ::= 'NONE'
           | 'ALL'
           | RolenameList

referenced by:


SplitSyntaxOption:

REGION FOR PARTITION

SplitSyntaxOption
         ::= ( 'REGION' 'FOR' )? 'PARTITION'?

referenced by:


SplitOption:

BETWEEN RowValue AND RowValue REGIONS Int64Num BY ValuesList

SplitOption
         ::= 'BETWEEN' RowValue 'AND' RowValue 'REGIONS' Int64Num
           | 'BY' ValuesList

referenced by:


ShowTargetFilterable:

ENGINES DATABASES CONFIG CharsetKw OptFull TABLES FieldsOrColumns ShowTableAliasOpt OPEN TABLES TABLE STATUS EXTENDED OptFull FieldsOrColumns ShowTableAliasOpt TRIGGERS EVENTS ShowDatabaseNameOpt ShowIndexKwd FromOrIn TableName Identifier FromOrIn Identifier WARNINGS ERRORS GlobalScope VARIABLES STATUS BINDINGS COLLATION PROCEDURE PUMP DRAINER FUNCTION ANALYZE STATUS PLUGINS STATS_META STATS_HISTOGRAMS STATS_BUCKETS STATS_HEALTHY BACKUPS RESTORES IMPORTS

ShowTargetFilterable
         ::= 'ENGINES'
           | 'DATABASES'
           | 'CONFIG'
           | CharsetKw
           | ( OptFull ( 'TABLES' | FieldsOrColumns ShowTableAliasOpt ) | 'OPEN' 'TABLES' | 'TABLE' 'STATUS' | 'EXTENDED' OptFull FieldsOrColumns ShowTableAliasOpt | 'TRIGGERS' | 'EVENTS' ) ShowDatabaseNameOpt
           | ShowIndexKwd FromOrIn ( TableName | Identifier FromOrIn Identifier )
           | 'WARNINGS'
           | 'ERRORS'
           | GlobalScope ( 'VARIABLES' | 'STATUS' | 'BINDINGS' )
           | 'COLLATION'
           | ( 'PROCEDURE' | 'PUMP' | 'DRAINER' | 'FUNCTION' | 'ANALYZE' ) 'STATUS'
           | 'PLUGINS'
           | 'STATS_META'
           | 'STATS_HISTOGRAMS'
           | 'STATS_BUCKETS'
           | 'STATS_HEALTHY'
           | 'BACKUPS'
           | 'RESTORES'
           | 'IMPORTS'

referenced by:


ShowLikeOrWhereOpt:

LIKE SimpleExpr WHERE Expression

ShowLikeOrWhereOpt
         ::= ( 'LIKE' SimpleExpr | 'WHERE' Expression )?

referenced by:


UsingRoles:

USING RolenameList

UsingRoles
         ::= ( 'USING' RolenameList )?

referenced by:


OptFull:

FULL

OptFull  ::= 'FULL'?

referenced by:


ShowProfileTypesOpt:

ShowProfileType ,

ShowProfileTypesOpt
         ::= ( ShowProfileType ( ',' ShowProfileType )* )?

referenced by:


ShowProfileArgsOpt:

FOR QUERY Int64Num

ShowProfileArgsOpt
         ::= ( 'FOR' 'QUERY' Int64Num )?

referenced by:


TraceableStmt:

SelectStmt DeleteFromStmt UpdateStmt InsertIntoStmt ReplaceIntoStmt UnionStmt LoadDataStmt BeginTransactionStmt CommitStmt RollbackStmt SetStmt

TraceableStmt
         ::= SelectStmt
           | DeleteFromStmt
           | UpdateStmt
           | InsertIntoStmt
           | ReplaceIntoStmt
           | UnionStmt
           | LoadDataStmt
           | BeginTransactionStmt
           | CommitStmt
           | RollbackStmt
           | SetStmt

referenced by:


OptTable:

TABLE

OptTable ::= 'TABLE'?

referenced by:


TableRef:

TableFactor JoinTable

TableRef ::= TableFactor
           | JoinTable

referenced by:


AssignmentList:

Assignment ,

AssignmentList
         ::= Assignment ( ',' Assignment )*

referenced by:


TablesTerminalSym:

TABLES TABLE

TablesTerminalSym
         ::= 'TABLES'
           | 'TABLE'

referenced by:


WhereClause:

WHERE Expression

WhereClause
         ::= 'WHERE' Expression

referenced by:


UnReservedKeyword:

ACTION ADVISE ASCII AUTO_ID_CACHE AUTO_INCREMENT AFTER ALWAYS AVG BEGIN BIT BOOL BOOLEAN BTREE BYTE CAPTURE CLEANUP CHAIN CHARSET COLUMNS CONFIG COMMIT COMPACT COMPRESSED CONSISTENT CURRENT DATA DATE DATETIME DAY DEALLOCATE DO DUPLICATE DYNAMIC ENCRYPTION END ENFORCED ENGINE ENGINES ENUM ERROR ERRORS ESCAPE EVOLVE EXECUTE EXTENDED FIELDS FILE FIRST FIXED FLUSH FOLLOWING FORMAT FULL GENERAL GLOBAL HASH HOUR INSERT_METHOD LESS LOCAL LAST NAMES NVARCHAR OFFSET PACK_KEYS PARSER PASSWORD PREPARE PRE_SPLIT_REGIONS QUICK REBUILD REDUNDANT REORGANIZE ROLE ROLLBACK SESSION SIGNED SHARD_ROW_ID_BITS SHUTDOWN SNAPSHOT START STATUS OPEN SUBPARTITIONS SUBPARTITION TABLES TABLESPACE TEXT THAN TIME TIMESTAMP TRACE TRANSACTION TRUNCATE UNBOUNDED UNKNOWN VALUE WARNINGS YEAR MODE WEEK WEIGHT_STRING ANY SOME USER IDENTIFIED COLLATION COMMENT AVG_ROW_LENGTH CONNECTION CHECKSUM COMPRESSION KEY_BLOCK_SIZE MASTER MAX_ROWS MIN_ROWS NATIONAL NCHAR ROW_FORMAT QUARTER GRANTS TRIGGERS DELAY_KEY_WRITE ISOLATION JSON REPEATABLE RESPECT COMMITTED UNCOMMITTED ONLY SERIAL SERIALIZABLE LEVEL VARIABLES SQL_CACHE INDEXES PROCESSLIST SQL_NO_CACHE DISABLE ENABLE REVERSE PRIVILEGES NO BINLOG FUNCTION VIEW BINDING BINDINGS MODIFY EVENTS PARTITIONS NONE NULLS SUPER EXCLUSIVE STATS_PERSISTENT STATS_AUTO_RECALC ROW_COUNT COALESCE MONTH PROCESS PROFILE PROFILES MICROSECOND MINUTE PLUGINS PRECEDING QUERY QUERIES SECOND SEPARATOR SHARE SHARED SLOW MAX_CONNECTIONS_PER_HOUR MAX_QUERIES_PER_HOUR MAX_UPDATES_PER_HOUR MAX_USER_CONNECTIONS REPLICATION CLIENT SLAVE RELOAD TEMPORARY ROUTINE EVENT ALGORITHM DEFINER INVOKER MERGE TEMPTABLE UNDEFINED SECURITY CASCADED RECOVER CIPHER SUBJECT ISSUER X509 NEVER EXPIRE ACCOUNT INCREMENTAL CPU MEMORY BLOCK IO CONTEXT SWITCHES PAGE FAULTS IPC SWAPS SOURCE TRADITIONAL SQL_BUFFER_RESULT DIRECTORY HISTORY LIST NODEGROUP SYSTEM_TIME PARTIAL SIMPLE REMOVE PARTITIONING STORAGE DISK STATS_SAMPLE_PAGES SECONDARY_ENGINE SECONDARY_LOAD SECONDARY_UNLOAD VALIDATION WITHOUT RTREE EXCHANGE COLUMN_FORMAT REPAIR IMPORT IMPORTS DISCARD TABLE_CHECKSUM UNICODE AUTO_RANDOM AUTO_RANDOM_BASE SQL_TSI_DAY SQL_TSI_HOUR SQL_TSI_MINUTE SQL_TSI_MONTH SQL_TSI_QUARTER SQL_TSI_SECOND LANGUAGE SQL_TSI_WEEK SQL_TSI_YEAR INVISIBLE VISIBLE TYPE NOWAIT INSTANCE REPLICA LOCATION LABELS LOGS HOSTS AGAINST EXPANSION INCREMENT MINVALUE NOMAXVALUE NOMINVALUE NOCACHE CACHE CYCLE NOCYCLE SEQUENCE MAX_MINUTES MAX_IDXNUM PER_TABLE PER_DB NEXT NEXTVAL LASTVAL SETVAL AGO BACKUP BACKUPS CONCURRENCY MB ONLINE RATE_LIMIT RESTORE RESTORES SEND_CREDENTIALS_TO_TIKV LAST_BACKUP CHECKPOINT SKIP_SCHEMA_FILES STRICT_FORMAT BACKEND CSV_BACKSLASH_ESCAPE CSV_NOT_NULL CSV_TRIM_LAST_SEPARATORS CSV_DELIMITER CSV_HEADER CSV_NULL CSV_SEPARATOR ON_DUPLICATE TIKV_IMPORTER

UnReservedKeyword
         ::= 'ACTION'
           | 'ADVISE'
           | 'ASCII'
           | 'AUTO_ID_CACHE'
           | 'AUTO_INCREMENT'
           | 'AFTER'
           | 'ALWAYS'
           | 'AVG'
           | 'BEGIN'
           | 'BIT'
           | 'BOOL'
           | 'BOOLEAN'
           | 'BTREE'
           | 'BYTE'
           | 'CAPTURE'
           | 'CLEANUP'
           | 'CHAIN'
           | 'CHARSET'
           | 'COLUMNS'
           | 'CONFIG'
           | 'COMMIT'
           | 'COMPACT'
           | 'COMPRESSED'
           | 'CONSISTENT'
           | 'CURRENT'
           | 'DATA'
           | 'DATE'
           | 'DATETIME'
           | 'DAY'
           | 'DEALLOCATE'
           | 'DO'
           | 'DUPLICATE'
           | 'DYNAMIC'
           | 'ENCRYPTION'
           | 'END'
           | 'ENFORCED'
           | 'ENGINE'
           | 'ENGINES'
           | 'ENUM'
           | 'ERROR'
           | 'ERRORS'
           | 'ESCAPE'
           | 'EVOLVE'
           | 'EXECUTE'
           | 'EXTENDED'
           | 'FIELDS'
           | 'FILE'
           | 'FIRST'
           | 'FIXED'
           | 'FLUSH'
           | 'FOLLOWING'
           | 'FORMAT'
           | 'FULL'
           | 'GENERAL'
           | 'GLOBAL'
           | 'HASH'
           | 'HOUR'
           | 'INSERT_METHOD'
           | 'LESS'
           | 'LOCAL'
           | 'LAST'
           | 'NAMES'
           | 'NVARCHAR'
           | 'OFFSET'
           | 'PACK_KEYS'
           | 'PARSER'
           | 'PASSWORD'
           | 'PREPARE'
           | 'PRE_SPLIT_REGIONS'
           | 'QUICK'
           | 'REBUILD'
           | 'REDUNDANT'
           | 'REORGANIZE'
           | 'ROLE'
           | 'ROLLBACK'
           | 'SESSION'
           | 'SIGNED'
           | 'SHARD_ROW_ID_BITS'
           | 'SHUTDOWN'
           | 'SNAPSHOT'
           | 'START'
           | 'STATUS'
           | 'OPEN'
           | 'SUBPARTITIONS'
           | 'SUBPARTITION'
           | 'TABLES'
           | 'TABLESPACE'
           | 'TEXT'
           | 'THAN'
           | 'TIME'
           | 'TIMESTAMP'
           | 'TRACE'
           | 'TRANSACTION'
           | 'TRUNCATE'
           | 'UNBOUNDED'
           | 'UNKNOWN'
           | 'VALUE'
           | 'WARNINGS'
           | 'YEAR'
           | 'MODE'
           | 'WEEK'
           | 'WEIGHT_STRING'
           | 'ANY'
           | 'SOME'
           | 'USER'
           | 'IDENTIFIED'
           | 'COLLATION'
           | 'COMMENT'
           | 'AVG_ROW_LENGTH'
           | 'CONNECTION'
           | 'CHECKSUM'
           | 'COMPRESSION'
           | 'KEY_BLOCK_SIZE'
           | 'MASTER'
           | 'MAX_ROWS'
           | 'MIN_ROWS'
           | 'NATIONAL'
           | 'NCHAR'
           | 'ROW_FORMAT'
           | 'QUARTER'
           | 'GRANTS'
           | 'TRIGGERS'
           | 'DELAY_KEY_WRITE'
           | 'ISOLATION'
           | 'JSON'
           | 'REPEATABLE'
           | 'RESPECT'
           | 'COMMITTED'
           | 'UNCOMMITTED'
           | 'ONLY'
           | 'SERIAL'
           | 'SERIALIZABLE'
           | 'LEVEL'
           | 'VARIABLES'
           | 'SQL_CACHE'
           | 'INDEXES'
           | 'PROCESSLIST'
           | 'SQL_NO_CACHE'
           | 'DISABLE'
           | 'ENABLE'
           | 'REVERSE'
           | 'PRIVILEGES'
           | 'NO'
           | 'BINLOG'
           | 'FUNCTION'
           | 'VIEW'
           | 'BINDING'
           | 'BINDINGS'
           | 'MODIFY'
           | 'EVENTS'
           | 'PARTITIONS'
           | 'NONE'
           | 'NULLS'
           | 'SUPER'
           | 'EXCLUSIVE'
           | 'STATS_PERSISTENT'
           | 'STATS_AUTO_RECALC'
           | 'ROW_COUNT'
           | 'COALESCE'
           | 'MONTH'
           | 'PROCESS'
           | 'PROFILE'
           | 'PROFILES'
           | 'MICROSECOND'
           | 'MINUTE'
           | 'PLUGINS'
           | 'PRECEDING'
           | 'QUERY'
           | 'QUERIES'
           | 'SECOND'
           | 'SEPARATOR'
           | 'SHARE'
           | 'SHARED'
           | 'SLOW'
           | 'MAX_CONNECTIONS_PER_HOUR'
           | 'MAX_QUERIES_PER_HOUR'
           | 'MAX_UPDATES_PER_HOUR'
           | 'MAX_USER_CONNECTIONS'
           | 'REPLICATION'
           | 'CLIENT'
           | 'SLAVE'
           | 'RELOAD'
           | 'TEMPORARY'
           | 'ROUTINE'
           | 'EVENT'
           | 'ALGORITHM'
           | 'DEFINER'
           | 'INVOKER'
           | 'MERGE'
           | 'TEMPTABLE'
           | 'UNDEFINED'
           | 'SECURITY'
           | 'CASCADED'
           | 'RECOVER'
           | 'CIPHER'
           | 'SUBJECT'
           | 'ISSUER'
           | 'X509'
           | 'NEVER'
           | 'EXPIRE'
           | 'ACCOUNT'
           | 'INCREMENTAL'
           | 'CPU'
           | 'MEMORY'
           | 'BLOCK'
           | 'IO'
           | 'CONTEXT'
           | 'SWITCHES'
           | 'PAGE'
           | 'FAULTS'
           | 'IPC'
           | 'SWAPS'
           | 'SOURCE'
           | 'TRADITIONAL'
           | 'SQL_BUFFER_RESULT'
           | 'DIRECTORY'
           | 'HISTORY'
           | 'LIST'
           | 'NODEGROUP'
           | 'SYSTEM_TIME'
           | 'PARTIAL'
           | 'SIMPLE'
           | 'REMOVE'
           | 'PARTITIONING'
           | 'STORAGE'
           | 'DISK'
           | 'STATS_SAMPLE_PAGES'
           | 'SECONDARY_ENGINE'
           | 'SECONDARY_LOAD'
           | 'SECONDARY_UNLOAD'
           | 'VALIDATION'
           | 'WITHOUT'
           | 'RTREE'
           | 'EXCHANGE'
           | 'COLUMN_FORMAT'
           | 'REPAIR'
           | 'IMPORT'
           | 'IMPORTS'
           | 'DISCARD'
           | 'TABLE_CHECKSUM'
           | 'UNICODE'
           | 'AUTO_RANDOM'
           | 'AUTO_RANDOM_BASE'
           | 'SQL_TSI_DAY'
           | 'SQL_TSI_HOUR'
           | 'SQL_TSI_MINUTE'
           | 'SQL_TSI_MONTH'
           | 'SQL_TSI_QUARTER'
           | 'SQL_TSI_SECOND'
           | 'LANGUAGE'
           | 'SQL_TSI_WEEK'
           | 'SQL_TSI_YEAR'
           | 'INVISIBLE'
           | 'VISIBLE'
           | 'TYPE'
           | 'NOWAIT'
           | 'INSTANCE'
           | 'REPLICA'
           | 'LOCATION'
           | 'LABELS'
           | 'LOGS'
           | 'HOSTS'
           | 'AGAINST'
           | 'EXPANSION'
           | 'INCREMENT'
           | 'MINVALUE'
           | 'NOMAXVALUE'
           | 'NOMINVALUE'
           | 'NOCACHE'
           | 'CACHE'
           | 'CYCLE'
           | 'NOCYCLE'
           | 'SEQUENCE'
           | 'MAX_MINUTES'
           | 'MAX_IDXNUM'
           | 'PER_TABLE'
           | 'PER_DB'
           | 'NEXT'
           | 'NEXTVAL'
           | 'LASTVAL'
           | 'SETVAL'
           | 'AGO'
           | 'BACKUP'
           | 'BACKUPS'
           | 'CONCURRENCY'
           | 'MB'
           | 'ONLINE'
           | 'RATE_LIMIT'
           | 'RESTORE'
           | 'RESTORES'
           | 'SEND_CREDENTIALS_TO_TIKV'
           | 'LAST_BACKUP'
           | 'CHECKPOINT'
           | 'SKIP_SCHEMA_FILES'
           | 'STRICT_FORMAT'
           | 'BACKEND'
           | 'CSV_BACKSLASH_ESCAPE'
           | 'CSV_NOT_NULL'
           | 'CSV_TRIM_LAST_SEPARATORS'
           | 'CSV_DELIMITER'
           | 'CSV_HEADER'
           | 'CSV_NULL'
           | 'CSV_SEPARATOR'
           | 'ON_DUPLICATE'
           | 'TIKV_IMPORTER'

referenced by:


NotKeywordToken:

ADDDATE BIT_AND BIT_OR BIT_XOR CAST COPY COUNT CURTIME DATE_ADD DATE_SUB EXTRACT GET_FORMAT GROUP_CONCAT INPLACE INSTANT INTERNAL MIN MAX NOW RECENT POSITION SUBDATE SUBSTRING SUM STD STDDEV STDDEV_POP STDDEV_SAMP VARIANCE VAR_POP VAR_SAMP TIMESTAMPADD TIMESTAMPDIFF TOKUDB_DEFAULT TOKUDB_FAST TOKUDB_LZMA TOKUDB_QUICKLZ TOKUDB_SNAPPY TOKUDB_SMALL TOKUDB_UNCOMPRESSED TOKUDB_ZLIB TOP TRIM NEXT_ROW_ID EXPR_PUSHDOWN_BLACKLIST OPT_RULE_BLACKLIST BOUND EXACT STALENESS STRONG FLASHBACK JSON_OBJECTAGG TLS

NotKeywordToken
         ::= 'ADDDATE'
           | 'BIT_AND'
           | 'BIT_OR'
           | 'BIT_XOR'
           | 'CAST'
           | 'COPY'
           | 'COUNT'
           | 'CURTIME'
           | 'DATE_ADD'
           | 'DATE_SUB'
           | 'EXTRACT'
           | 'GET_FORMAT'
           | 'GROUP_CONCAT'
           | 'INPLACE'
           | 'INSTANT'
           | 'INTERNAL'
           | 'MIN'
           | 'MAX'
           | 'NOW'
           | 'RECENT'
           | 'POSITION'
           | 'SUBDATE'
           | 'SUBSTRING'
           | 'SUM'
           | 'STD'
           | 'STDDEV'
           | 'STDDEV_POP'
           | 'STDDEV_SAMP'
           | 'VARIANCE'
           | 'VAR_POP'
           | 'VAR_SAMP'
           | 'TIMESTAMPADD'
           | 'TIMESTAMPDIFF'
           | 'TOKUDB_DEFAULT'
           | 'TOKUDB_FAST'
           | 'TOKUDB_LZMA'
           | 'TOKUDB_QUICKLZ'
           | 'TOKUDB_SNAPPY'
           | 'TOKUDB_SMALL'
           | 'TOKUDB_UNCOMPRESSED'
           | 'TOKUDB_ZLIB'
           | 'TOP'
           | 'TRIM'
           | 'NEXT_ROW_ID'
           | 'EXPR_PUSHDOWN_BLACKLIST'
           | 'OPT_RULE_BLACKLIST'
           | 'BOUND'
           | 'EXACT'
           | 'STALENESS'
           | 'STRONG'
           | 'FLASHBACK'
           | 'JSON_OBJECTAGG'
           | 'TLS'

referenced by:


TiDBKeyword:

ADMIN BUCKETS BUILTINS CANCEL CMSKETCH DDL DEPTH DRAINER JOBS JOB NODE_ID NODE_STATE PUMP SAMPLES STATS STATS_META STATS_HISTOGRAMS STATS_BUCKETS STATS_HEALTHY TIDB TIFLASH TOPN SPLIT OPTIMISTIC PESSIMISTIC WIDTH REGIONS REGION

TiDBKeyword
         ::= 'ADMIN'
           | 'BUCKETS'
           | 'BUILTINS'
           | 'CANCEL'
           | 'CMSKETCH'
           | 'DDL'
           | 'DEPTH'
           | 'DRAINER'
           | 'JOBS'
           | 'JOB'
           | 'NODE_ID'
           | 'NODE_STATE'
           | 'PUMP'
           | 'SAMPLES'
           | 'STATS'
           | 'STATS_META'
           | 'STATS_HISTOGRAMS'
           | 'STATS_BUCKETS'
           | 'STATS_HEALTHY'
           | 'TIDB'
           | 'TIFLASH'
           | 'TOPN'
           | 'SPLIT'
           | 'OPTIMISTIC'
           | 'PESSIMISTIC'
           | 'WIDTH'
           | 'REGIONS'
           | 'REGION'

referenced by:


HandleRange:

( Int64Num , Int64Num )

HandleRange
         ::= '(' Int64Num ',' Int64Num ')'

referenced by:


DatabaseOption:

DefaultKwdOpt CharsetKw EqOpt CharsetName COLLATE EqOpt CollationName ENCRYPTION EqOpt EncryptionOpt

DatabaseOption
         ::= DefaultKwdOpt ( CharsetKw EqOpt CharsetName | 'COLLATE' EqOpt CollationName | 'ENCRYPTION' EqOpt EncryptionOpt )

referenced by:


UserSpec:

Username AuthOption

UserSpec ::= Username AuthOption

referenced by:


RequireClause:

REQUIRE NONE SSL X509 RequireListElement AND

RequireClause
         ::= 'REQUIRE' ( 'NONE' | 'SSL' | 'X509' | RequireListElement ( 'AND'? RequireListElement )* )

referenced by:


Expression:

singleAtIdentifier assignmentEq NOT Expression logOr XOR logAnd Expression MATCH ( ColumnNameList ) AGAINST ( BitExpr FulltextSearchModifierOpt ) PredicateExpr IsOrNotOp NULL CompareOp singleAtIdentifier assignmentEq PredicateExpr AnyOrAll SubSelect IsOrNotOp trueKwd falseKwd UNKNOWN

Expression
         ::= ( singleAtIdentifier assignmentEq | 'NOT' | Expression ( logOr | 'XOR' | logAnd ) ) Expression
           | 'MATCH' '(' ColumnNameList ')' 'AGAINST' '(' BitExpr FulltextSearchModifierOpt ')'
           | PredicateExpr ( IsOrNotOp 'NULL' | CompareOp ( ( singleAtIdentifier assignmentEq )? PredicateExpr | AnyOrAll SubSelect ) )* ( IsOrNotOp ( trueKwd | falseKwd | 'UNKNOWN' ) )?

referenced by: