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:


BRIEOption:

CONCURRENCY EqOpt LengthNum BRIEBooleanOptionName EqOpt Boolean BRIEStringOptionName EqOpt stringLit BRIEKeywordOptionName EqOpt StringNameOrBRIEOptionKeyword SNAPSHOT EqOpt LengthNum TimestampUnit AGO stringLit LAST_BACKUP EqOpt stringLit LengthNum RATE_LIMIT EqOpt LengthNum MB / SECOND CSV_HEADER EqOpt FieldsOrColumns LengthNum

BRIEOption
         ::= 'CONCURRENCY' EqOpt LengthNum
           | BRIEBooleanOptionName EqOpt Boolean
           | BRIEStringOptionName EqOpt stringLit
           | BRIEKeywordOptionName EqOpt StringNameOrBRIEOptionKeyword
           | 'SNAPSHOT' EqOpt ( LengthNum ( TimestampUnit 'AGO' )? | stringLit )
           | 'LAST_BACKUP' EqOpt ( stringLit | LengthNum )
           | 'RATE_LIMIT' EqOpt LengthNum 'MB' '/' 'SECOND'
           | 'CSV_HEADER' EqOpt ( FieldsOrColumns | LengthNum )

referenced by:


TableAsName:

AS Identifier

TableAsName
         ::= 'AS'? Identifier

referenced by:


OrderBy:

ORDER BY ByList

OrderBy  ::= 'ORDER' 'BY' ByList

referenced by:


LimitOption:

LengthNum paramMarker

LimitOption
         ::= LengthNum
           | paramMarker

referenced by:


TableNameOptWild:

Identifier . Identifier OptWild

TableNameOptWild
         ::= Identifier ( '.' Identifier )? OptWild

referenced by:


EscapedTableRef:

TableRef { Identifier TableRef }

EscapedTableRef
         ::= TableRef
           | '{' Identifier TableRef '}'

referenced by:


UserVariable:

singleAtIdentifier

UserVariable
         ::= singleAtIdentifier

referenced by:


IndexType:

USING TYPE IndexTypeName

IndexType
         ::= ( 'USING' | 'TYPE' ) IndexTypeName

referenced by:


IndexPartSpecification:

ColumnName OptFieldLen ( Expression ) Order

IndexPartSpecification
         ::= ( ColumnName OptFieldLen | '(' Expression ')' ) Order

referenced by:


IndexOption:

KEY_BLOCK_SIZE EqOpt LengthNum IndexType WITH PARSER Identifier COMMENT stringLit IndexInvisible

IndexOption
         ::= 'KEY_BLOCK_SIZE' EqOpt LengthNum
           | IndexType
           | 'WITH' 'PARSER' Identifier
           | 'COMMENT' stringLit
           | IndexInvisible

referenced by:


LockClause:

LOCK EqOpt DEFAULT Identifier

LockClause
         ::= 'LOCK' EqOpt ( 'DEFAULT' | Identifier )

referenced by:


AlgorithmClause:

ALGORITHM EqOpt DEFAULT COPY INPLACE INSTANT identifier

AlgorithmClause
         ::= 'ALGORITHM' EqOpt ( 'DEFAULT' | 'COPY' | 'INPLACE' | 'INSTANT' | identifier )

referenced by:


TableElementList:

TableElement ,

TableElementList
         ::= TableElement ( ',' TableElement )*

referenced by:


TableOptionList:

TableOption ,

TableOptionList
         ::= TableOption ( ','? TableOption )*

referenced by:


PartitionMethod:

SubPartitionMethod RANGE LIST ( Expression FieldsOrColumns ( ColumnNameList ) SYSTEM_TIME INTERVAL Expression TimeUnit LIMIT LengthNum

PartitionMethod
         ::= SubPartitionMethod
           | ( 'RANGE' | 'LIST' ) ( '(' Expression | FieldsOrColumns '(' ColumnNameList ) ')'
           | 'SYSTEM_TIME' ( 'INTERVAL' Expression TimeUnit | 'LIMIT' LengthNum )?

referenced by:


PartitionNumOpt:

PARTITIONS LengthNum

PartitionNumOpt
         ::= ( 'PARTITIONS' LengthNum )?

referenced by:


SubPartitionOpt:

SUBPARTITION BY SubPartitionMethod SubPartitionNumOpt

SubPartitionOpt
         ::= ( 'SUBPARTITION' 'BY' SubPartitionMethod SubPartitionNumOpt )?

referenced by:


PartitionDefinitionListOpt:

( PartitionDefinitionList )

PartitionDefinitionListOpt
         ::= ( '(' PartitionDefinitionList ')' )?

referenced by:


RoleSpec:

Rolename

RoleSpec ::= Rolename

referenced by:


Rolename:

RoleNameString StringName @ StringName singleAtIdentifier

Rolename ::= RoleNameString
           | StringName ( '@' StringName | singleAtIdentifier )

referenced by:


LogTypeOpt:

BINARY ENGINE ERROR GENERAL SLOW

LogTypeOpt
         ::= ( 'BINARY' | 'ENGINE' | 'ERROR' | 'GENERAL' | 'SLOW' )?

referenced by:


TableNameListOpt:

TableNameList

TableNameListOpt
         ::= TableNameList?

referenced by:


WithReadLockOpt:

WITH READ LOCK

WithReadLockOpt
         ::= ( 'WITH' 'READ' 'LOCK' )?

referenced by:


PrivElem:

PrivType ( ColumnNameList )

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

referenced by:


ColumnNameListOpt:

ColumnNameList

ColumnNameListOpt
         ::= ColumnNameList?

referenced by:


ValueSym:

VALUE VALUES

ValueSym ::= 'VALUE'
           | 'VALUES'

referenced by:


ValuesList:

RowValue ,

ValuesList
         ::= RowValue ( ',' RowValue )*

referenced by:


PerTable:

PER_TABLE NUM

PerTable ::= ( 'PER_TABLE' NUM )?

referenced by:


PerDB:

PER_DB NUM

PerDB    ::= ( 'PER_DB' NUM )?

referenced by:


Starting:

STARTING BY stringLit

Starting ::= ( 'STARTING' 'BY' stringLit )?

referenced by:


LinesTerminated:

TERMINATED BY stringLit

LinesTerminated
         ::= ( 'TERMINATED' 'BY' stringLit )?

referenced by:


CharsetName:

StringName binaryType

CharsetName
         ::= StringName
           | binaryType

referenced by:


FieldsOrColumns:

FIELDS COLUMNS

FieldsOrColumns
         ::= 'FIELDS'
           | 'COLUMNS'

referenced by:


ColumnNameOrUserVarListOpt:

ColumnNameOrUserVariable ,

ColumnNameOrUserVarListOpt
         ::= ( ColumnNameOrUserVariable ( ',' ColumnNameOrUserVariable )* )?

referenced by:


TableToTable:

TableName TO TableName

TableToTable
         ::= TableName 'TO' TableName

referenced by:


SelectStmtOpts:

TableOptimizerHints DefaultFalseDistinctOpt PriorityOpt SelectStmtSQLSmallResult SelectStmtSQLBigResult SelectStmtSQLBufferResult SelectStmtSQLCache SelectStmtCalcFoundRows SelectStmtStraightJoin

SelectStmtOpts
         ::= TableOptimizerHints DefaultFalseDistinctOpt PriorityOpt SelectStmtSQLSmallResult SelectStmtSQLBigResult SelectStmtSQLBufferResult SelectStmtSQLCache SelectStmtCalcFoundRows SelectStmtStraightJoin

referenced by:


SelectStmtFieldList:

Field ,

SelectStmtFieldList
         ::= Field ( ',' Field )*

referenced by:


FromDual:

FROM DUAL

FromDual ::= 'FROM' 'DUAL'

referenced by:


TableRefsClause:

TableRefs

TableRefsClause
         ::= TableRefs

referenced by:


SelectStmtGroup:

GroupByClause

SelectStmtGroup
         ::= GroupByClause?

referenced by:


HavingClause:

HAVING Expression

HavingClause
         ::= ( 'HAVING' Expression )?

referenced by:


WindowClauseOptional:

WINDOW WindowDefinition ,

WindowClauseOptional
         ::= ( 'WINDOW' WindowDefinition ( ',' WindowDefinition )* )?

referenced by:


UnionSelect:

SelectStmt ( SelectStmt )

UnionSelect
         ::= SelectStmt
           | '(' SelectStmt ')'

referenced by:


DefaultTrueDistinctOpt:

DistinctOpt

DefaultTrueDistinctOpt
         ::= DistinctOpt?

referenced by:


VariableAssignment:

GLOBAL SESSION VariableName doubleAtIdentifier EqOrAssignmentEq SetExpr LOCAL VariableName singleAtIdentifier EqOrAssignmentEq Expression NAMES CharsetName COLLATE DEFAULT StringName DEFAULT CharsetKw CharsetNameOrDefault

VariableAssignment
         ::= ( ( 'GLOBAL' | 'SESSION' )? VariableName | doubleAtIdentifier ) EqOrAssignmentEq SetExpr
           | ( 'LOCAL' VariableName | singleAtIdentifier ) EqOrAssignmentEq Expression
           | 'NAMES' ( CharsetName ( 'COLLATE' ( 'DEFAULT' | StringName ) )? | 'DEFAULT' )
           | CharsetKw CharsetNameOrDefault

referenced by:


StringName:

stringLit Identifier

StringName
         ::= stringLit
           | Identifier

referenced by:


OptionalBraces:

( )

OptionalBraces
         ::= ( '(' ')' )?

referenced by:


TransactionChar:

ISOLATION LEVEL IsolationLevel READ WRITE ONLY

TransactionChar
         ::= 'ISOLATION' 'LEVEL' IsolationLevel
           | 'READ' ( 'WRITE' | 'ONLY' )

referenced by:


ExprOrDefault:

Expression DEFAULT

ExprOrDefault
         ::= Expression
           | 'DEFAULT'

referenced by:


RowValue:

( ValuesOpt )

RowValue ::= '(' ValuesOpt ')'

referenced by:


CharsetKw:

CHARACTER CHAR SET CHARSET

CharsetKw
         ::= ( 'CHARACTER' | 'CHAR' ) 'SET'
           | 'CHARSET'

referenced by:


ShowDatabaseNameOpt:

FromOrIn DBName

ShowDatabaseNameOpt
         ::= ( FromOrIn DBName )?

referenced by:


ShowIndexKwd:

INDEX INDEXES KEYS

ShowIndexKwd
         ::= 'INDEX'
           | 'INDEXES'
           | 'KEYS'

referenced by:


FromOrIn:

FROM IN

FromOrIn ::= 'FROM'
           | 'IN'

referenced by:


ShowTableAliasOpt:

FromOrIn TableName

ShowTableAliasOpt
         ::= FromOrIn TableName

referenced by:


SimpleExpr:

SimpleIdent jss juss stringLit FunctionCallKeyword FunctionCallNonKeyword FunctionCallGeneric SimpleExpr COLLATE CollationName pipes SimpleExpr WindowFuncCall Literal paramMarker Variable SumExpr ! ~ - + not2 BINARY SimpleExpr EXISTS SubSelect ( ExpressionList , ROW ( ExpressionList , Expression builtinCast ( Expression AS CastType DEFAULT VALUES ( SimpleIdent CONVERT ( Expression , CastType USING CharsetName ) CASE ExpressionOpt WhenClause ElseOpt END

SimpleExpr
         ::= SimpleIdent ( ( jss | juss ) stringLit )?
           | FunctionCallKeyword
           | FunctionCallNonKeyword
           | FunctionCallGeneric
           | SimpleExpr ( 'COLLATE' CollationName | pipes SimpleExpr )
           | WindowFuncCall
           | Literal
           | paramMarker
           | Variable
           | SumExpr
           | ( '!' | '~' | '-' | '+' | not2 | 'BINARY' ) SimpleExpr
           | 'EXISTS'? SubSelect
           | ( ( '(' ( ExpressionList ',' )? | 'ROW' '(' ExpressionList ',' ) Expression | builtinCast '(' Expression 'AS' CastType | ( 'DEFAULT' | 'VALUES' ) '(' SimpleIdent | 'CONVERT' '(' Expression ( ',' CastType | 'USING' CharsetName ) ) ')'
           | 'CASE' ExpressionOpt WhenClause+ ElseOpt 'END'

referenced by:


TableFactor:

TableName PartitionNameListOpt TableAsNameOpt IndexHintListOpt ( SelectStmt UnionStmt ) TableAsName TableRefs )

TableFactor
         ::= TableName PartitionNameListOpt TableAsNameOpt IndexHintListOpt
           | '(' ( ( SelectStmt | UnionStmt ) ')' TableAsName | TableRefs ')' )

referenced by:


JoinTable:

TableRef CrossOpt TableRef ON Expression USING ( ColumnNameList ) JoinType OuterOpt JOIN TableRef ON Expression USING ( ColumnNameList ) NATURAL JoinType OuterOpt JOIN TableRef STRAIGHT_JOIN TableRef ON Expression

JoinTable
         ::= TableRef ( CrossOpt TableRef ( 'ON' Expression | 'USING' '(' ColumnNameList ')' )? | JoinType OuterOpt 'JOIN' TableRef ( 'ON' Expression | 'USING' '(' ColumnNameList ')' ) | 'NATURAL' ( JoinType OuterOpt )? 'JOIN' TableRef | 'STRAIGHT_JOIN' TableRef ( 'ON' Expression )? )

referenced by:


Assignment:

ColumnName eq ExprOrDefault

Assignment
         ::= ColumnName eq ExprOrDefault

referenced by:


TableLock:

TableName LockType

TableLock
         ::= TableName LockType

referenced by:


DefaultKwdOpt:

DEFAULT

DefaultKwdOpt
         ::= 'DEFAULT'?

referenced by:


EqOpt:

eq

EqOpt    ::= eq?

referenced by:


CollationName:

StringName binaryType

CollationName
         ::= StringName
           | binaryType

referenced by:


EncryptionOpt:

stringLit

EncryptionOpt
         ::= stringLit

referenced by:


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 , 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 EqOpt AS TableName LockClause AlgorithmClause FORCE WITH WITHOUT VALIDATION SECONDARY_LOAD SECONDARY_UNLOAD

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' | EqOpt | 'AS' ) TableName )
           | LockClause
           | AlgorithmClause
           | 'FORCE'
           | ( 'WITH' | 'WITHOUT' ) 'VALIDATION'
           | 'SECONDARY_LOAD'
           | 'SECONDARY_UNLOAD'

referenced by:


AnalyzeOption:

NUM BUCKETS TOPN CMSKETCH DEPTH WIDTH SAMPLES

AnalyzeOption
         ::= NUM ( 'BUCKETS' | 'TOPN' | 'CMSKETCH' ( 'DEPTH' | 'WIDTH' ) | 'SAMPLES' )

referenced by:


AuthOption:

IDENTIFIED BY AuthString PASSWORD HashString WITH StringName BY AuthString AS HashString

AuthOption
         ::= ( 'IDENTIFIED' ( 'BY' ( AuthString | 'PASSWORD' HashString ) | 'WITH' StringName ( 'BY' AuthString | 'AS' HashString )? ) )?

referenced by:


ConnectionOption:

MAX_QUERIES_PER_HOUR MAX_UPDATES_PER_HOUR MAX_CONNECTIONS_PER_HOUR MAX_USER_CONNECTIONS Int64Num

ConnectionOption
         ::= ( 'MAX_QUERIES_PER_HOUR' | 'MAX_UPDATES_PER_HOUR' | 'MAX_CONNECTIONS_PER_HOUR' | 'MAX_USER_CONNECTIONS' ) Int64Num

referenced by:


PasswordOrLockOption:

ACCOUNT UNLOCK LOCK PasswordExpire INTERVAL Int64Num DAY NEVER DEFAULT

PasswordOrLockOption
         ::= 'ACCOUNT' ( 'UNLOCK' | 'LOCK' )
           | PasswordExpire ( 'INTERVAL' Int64Num 'DAY' | 'NEVER' | 'DEFAULT' )?

referenced by:


logOr:

pipesAsOr OR

logOr    ::= pipesAsOr
           | 'OR'

referenced by:


logAnd:

&& AND

logAnd   ::= '&&'
           | 'AND'

referenced by:


ColumnNameList:

ColumnName ,

ColumnNameList
         ::= ColumnName ( ',' ColumnName )*

referenced by:


BitExpr:

BitExpr | & << >> * / % DIV MOD ^ BitExpr + - BitExpr INTERVAL Expression TimeUnit SimpleExpr

BitExpr  ::= BitExpr ( ( '|' | '&' | '<<' | '>>' | '*' | '/' | '%' | 'DIV' | 'MOD' | '^' ) BitExpr | ( '+' | '-' ) ( BitExpr | 'INTERVAL' Expression TimeUnit ) )
           | SimpleExpr

referenced by:


FulltextSearchModifierOpt:

IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION BOOLEAN MODE WITH QUERY EXPANSION

FulltextSearchModifierOpt
         ::= ( 'IN' ( 'NATURAL' 'LANGUAGE' 'MODE' ( 'WITH' 'QUERY' 'EXPANSION' )? | 'BOOLEAN' 'MODE' ) | 'WITH' 'QUERY' 'EXPANSION' )?

referenced by:


IsOrNotOp:

IS NOT

IsOrNotOp
         ::= 'IS' 'NOT'?

referenced by:


LengthNum:

NUM

LengthNum
         ::= NUM

referenced by:


BRIEBooleanOptionName:

CHECKSUM SEND_CREDENTIALS_TO_TIKV ONLINE CHECKPOINT ANALYZE SKIP_SCHEMA_FILES STRICT_FORMAT CSV_NOT_NULL CSV_BACKSLASH_ESCAPE CSV_TRIM_LAST_SEPARATORS

BRIEBooleanOptionName
         ::= 'CHECKSUM'
           | 'SEND_CREDENTIALS_TO_TIKV'
           | 'ONLINE'
           | 'CHECKPOINT'
           | 'ANALYZE'
           | 'SKIP_SCHEMA_FILES'
           | 'STRICT_FORMAT'
           | 'CSV_NOT_NULL'
           | 'CSV_BACKSLASH_ESCAPE'
           | 'CSV_TRIM_LAST_SEPARATORS'

referenced by:


Boolean:

NUM FALSE TRUE

Boolean  ::= NUM
           | 'FALSE'
           | 'TRUE'

referenced by:


BRIEStringOptionName:

TIKV_IMPORTER CSV_SEPARATOR CSV_DELIMITER CSV_NULL

BRIEStringOptionName
         ::= 'TIKV_IMPORTER'
           | 'CSV_SEPARATOR'
           | 'CSV_DELIMITER'
           | 'CSV_NULL'

referenced by:


BRIEKeywordOptionName:

BACKEND ON_DUPLICATE ON DUPLICATE

BRIEKeywordOptionName
         ::= 'BACKEND'
           | 'ON_DUPLICATE'
           | 'ON' 'DUPLICATE'

referenced by:


StringNameOrBRIEOptionKeyword:

StringName IGNORE REPLACE

StringNameOrBRIEOptionKeyword
         ::= StringName
           | 'IGNORE'
           | 'REPLACE'

referenced by:


TimestampUnit:

MICROSECOND SECOND MINUTE HOUR DAY WEEK MONTH QUARTER YEAR SQL_TSI_SECOND SQL_TSI_MINUTE SQL_TSI_HOUR SQL_TSI_DAY SQL_TSI_WEEK SQL_TSI_MONTH SQL_TSI_QUARTER SQL_TSI_YEAR

TimestampUnit
         ::= 'MICROSECOND'
           | 'SECOND'
           | 'MINUTE'
           | 'HOUR'
           | 'DAY'
           | 'WEEK'
           | 'MONTH'
           | 'QUARTER'
           | 'YEAR'
           | 'SQL_TSI_SECOND'
           | 'SQL_TSI_MINUTE'
           | 'SQL_TSI_HOUR'
           | 'SQL_TSI_DAY'
           | 'SQL_TSI_WEEK'
           | 'SQL_TSI_MONTH'
           | 'SQL_TSI_QUARTER'
           | 'SQL_TSI_YEAR'

referenced by:


IndexHint:

IndexHintType IndexHintScope ( IndexNameList )

IndexHint
         ::= IndexHintType IndexHintScope '(' IndexNameList ')'

referenced by:


ByList:

ByItem ,

ByList   ::= ByItem ( ',' ByItem )*

referenced by:


OptWild:

. *

OptWild  ::= ( '.' '*' )?

referenced by:


IndexTypeName:

BTREE HASH RTREE

IndexTypeName
         ::= 'BTREE'
           | 'HASH'
           | 'RTREE'

referenced by:


OptFieldLen:

FieldLen

OptFieldLen
         ::= FieldLen?

referenced by:


Order:

ASC DESC

Order    ::= ( 'ASC' | 'DESC' )?

referenced by:


IndexInvisible:

VISIBLE INVISIBLE

IndexInvisible
         ::= 'VISIBLE'
           | 'INVISIBLE'

referenced by:


TableElement:

ColumnDef Constraint

TableElement
         ::= ColumnDef
           | Constraint

referenced by:


TableOption:

PartDefOption DefaultKwdOpt CharsetKw EqOpt CharsetName COLLATE EqOpt CollationName AUTO_INCREMENT AUTO_ID_CACHE AUTO_RANDOM_BASE AVG_ROW_LENGTH CHECKSUM TABLE_CHECKSUM KEY_BLOCK_SIZE DELAY_KEY_WRITE SHARD_ROW_ID_BITS PRE_SPLIT_REGIONS EqOpt LengthNum CONNECTION PASSWORD COMPRESSION EqOpt stringLit RowFormat STATS_PERSISTENT PACK_KEYS EqOpt StatsPersistentVal STATS_AUTO_RECALC STATS_SAMPLE_PAGES EqOpt LengthNum DEFAULT STORAGE MEMORY DISK SECONDARY_ENGINE EqOpt NULL StringName UNION EqOpt ( TableNameListOpt ) ENCRYPTION EqOpt EncryptionOpt

TableOption
         ::= PartDefOption
           | DefaultKwdOpt ( CharsetKw EqOpt CharsetName | 'COLLATE' EqOpt CollationName )
           | ( 'AUTO_INCREMENT' | 'AUTO_ID_CACHE' | 'AUTO_RANDOM_BASE' | 'AVG_ROW_LENGTH' | 'CHECKSUM' | 'TABLE_CHECKSUM' | 'KEY_BLOCK_SIZE' | 'DELAY_KEY_WRITE' | 'SHARD_ROW_ID_BITS' | 'PRE_SPLIT_REGIONS' ) EqOpt LengthNum
           | ( 'CONNECTION' | 'PASSWORD' | 'COMPRESSION' ) EqOpt stringLit
           | RowFormat
           | ( 'STATS_PERSISTENT' | 'PACK_KEYS' ) EqOpt StatsPersistentVal
           | ( 'STATS_AUTO_RECALC' | 'STATS_SAMPLE_PAGES' ) EqOpt ( LengthNum | 'DEFAULT' )
           | 'STORAGE' ( 'MEMORY' | 'DISK' )
           | 'SECONDARY_ENGINE' EqOpt ( 'NULL' | StringName )
           | 'UNION' EqOpt '(' TableNameListOpt ')'
           | 'ENCRYPTION' EqOpt EncryptionOpt

referenced by:


SubPartitionMethod:

LinearOpt KEY PartitionKeyAlgorithmOpt ( ColumnNameListOpt HASH ( Expression )

SubPartitionMethod
         ::= LinearOpt ( 'KEY' PartitionKeyAlgorithmOpt '(' ColumnNameListOpt | 'HASH' '(' Expression ) ')'

referenced by:


TimeUnit:

TimestampUnit SECOND_MICROSECOND MINUTE_MICROSECOND MINUTE_SECOND HOUR_MICROSECOND HOUR_SECOND HOUR_MINUTE DAY_MICROSECOND DAY_SECOND DAY_MINUTE DAY_HOUR YEAR_MONTH

TimeUnit ::= TimestampUnit
           | 'SECOND_MICROSECOND'
           | 'MINUTE_MICROSECOND'
           | 'MINUTE_SECOND'
           | 'HOUR_MICROSECOND'
           | 'HOUR_SECOND'
           | 'HOUR_MINUTE'
           | 'DAY_MICROSECOND'
           | 'DAY_SECOND'
           | 'DAY_MINUTE'
           | 'DAY_HOUR'
           | 'YEAR_MONTH'

referenced by:


SubPartitionNumOpt:

SUBPARTITIONS LengthNum

SubPartitionNumOpt
         ::= ( 'SUBPARTITIONS' LengthNum )?

referenced by:


PartitionDefinitionList:

PartitionDefinition ,

PartitionDefinitionList
         ::= PartitionDefinition ( ',' PartitionDefinition )*

referenced by:


SequenceOption:

INCREMENT EqOpt BY START EqOpt WITH MINVALUE MAXVALUE CACHE EqOpt SignedNum NOMINVALUE NO MINVALUE MAXVALUE CACHE CYCLE NOMAXVALUE NOCACHE CYCLE NOCYCLE

SequenceOption
         ::= ( 'INCREMENT' ( EqOpt | 'BY' ) | 'START' ( EqOpt | 'WITH' ) | ( 'MINVALUE' | 'MAXVALUE' | 'CACHE' ) EqOpt ) SignedNum
           | 'NOMINVALUE'
           | 'NO' ( 'MINVALUE' | 'MAXVALUE' | 'CACHE' | 'CYCLE' )
           | 'NOMAXVALUE'
           | 'NOCACHE'
           | 'CYCLE'
           | 'NOCYCLE'

referenced by:


RoleNameString:

stringLit identifier

RoleNameString
         ::= stringLit
           | identifier

referenced by:


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

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'

referenced by:


ColumnSetValue:

ColumnName eq ExprOrDefault

ColumnSetValue
         ::= ColumnName eq ExprOrDefault

referenced by:


FieldItem:

TERMINATED OPTIONALLY ENCLOSED ESCAPED BY FieldTerminator

FieldItem
         ::= ( 'TERMINATED' | 'OPTIONALLY'? 'ENCLOSED' | 'ESCAPED' ) 'BY' FieldTerminator

referenced by:


LoadDataSetItem:

SimpleIdent = ExprOrDefault

LoadDataSetItem
         ::= SimpleIdent '=' ExprOrDefault

referenced by:


DefaultFalseDistinctOpt:

DistinctOpt

DefaultFalseDistinctOpt
         ::= DistinctOpt?

referenced by:


SelectStmtSQLSmallResult:

SQL_SMALL_RESULT

SelectStmtSQLSmallResult
         ::= 'SQL_SMALL_RESULT'?

referenced by:


SelectStmtSQLBigResult:

SQL_BIG_RESULT

SelectStmtSQLBigResult
         ::= 'SQL_BIG_RESULT'?

referenced by:


SelectStmtSQLBufferResult:

SQL_BUFFER_RESULT

SelectStmtSQLBufferResult
         ::= 'SQL_BUFFER_RESULT'?

referenced by:


SelectStmtSQLCache:

SQL_CACHE SQL_NO_CACHE

SelectStmtSQLCache
         ::= ( 'SQL_CACHE' | 'SQL_NO_CACHE' )?

referenced by:


SelectStmtCalcFoundRows:

SQL_CALC_FOUND_ROWS

SelectStmtCalcFoundRows
         ::= 'SQL_CALC_FOUND_ROWS'?

referenced by:


SelectStmtStraightJoin:

STRAIGHT_JOIN

SelectStmtStraightJoin
         ::= 'STRAIGHT_JOIN'?

referenced by:


GroupByClause:

GROUP BY ByList

GroupByClause
         ::= 'GROUP' 'BY' ByList

referenced by:


DistinctOpt:

ALL DistinctKwd

DistinctOpt
         ::= 'ALL'
           | DistinctKwd

referenced by:


VariableName:

Identifier . Identifier

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

referenced by:


CharsetNameOrDefault:

CharsetName DEFAULT

CharsetNameOrDefault
         ::= CharsetName
           | 'DEFAULT'

referenced by:


IsolationLevel:

REPEATABLE READ READ COMMITTED UNCOMMITTED SERIALIZABLE

IsolationLevel
         ::= 'REPEATABLE' 'READ'
           | 'READ' ( 'COMMITTED' | 'UNCOMMITTED' )
           | 'SERIALIZABLE'

referenced by:


ValuesOpt:

ExprOrDefault ,

ValuesOpt
         ::= ( ExprOrDefault ( ',' ExprOrDefault )* )?

referenced by:


SimpleIdent:

Identifier . Identifier . Identifier

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

referenced by:


FunctionCallKeyword:

FunctionNameConflict builtinUser INSERT PASSWORD ( ExpressionListOpt builtinCurDate ( MOD ( BitExpr , BitExpr CHAR ( ExpressionList USING CharsetName ) FunctionNameOptionalBraces OptionalBraces FunctionNameDatetimePrecision FuncDatetimePrec DATE TIME TIMESTAMP stringLit { ODBCDateTimeType stringLit }

FunctionCallKeyword
         ::= ( ( FunctionNameConflict | builtinUser | 'INSERT' | 'PASSWORD' ) '(' ExpressionListOpt | builtinCurDate '(' | 'MOD' '(' BitExpr ',' BitExpr | 'CHAR' '(' ExpressionList ( 'USING' CharsetName )? ) ')'
           | FunctionNameOptionalBraces OptionalBraces
           | FunctionNameDatetimePrecision FuncDatetimePrec
           | ( 'DATE' | 'TIME' | 'TIMESTAMP' ) stringLit
           | '{' ODBCDateTimeType stringLit '}'

referenced by:


FunctionCallNonKeyword:

builtinCurTime builtinSysDate ( FuncDatetimePrecListOpt FunctionNameDateArith ( Expression , INTERVAL Expression TimeUnit builtinExtract ( TimeUnit FROM GET_FORMAT ( GetFormatSelector TIMESTAMPADD TIMESTAMPDIFF ( TimestampUnit , Expression , builtinPosition ( BitExpr IN builtinSubstring ( Expression , Expression , FROM Expression FOR builtinTrim ( Expression TrimDirection Expression FROM Expression FunctionNameDateArithMultiForms ( Expression , Expression INTERVAL Expression TimeUnit weightString ( Expression AS Char BINARY FieldLen ) FunctionNameSequence

FunctionCallNonKeyword
         ::= ( ( builtinCurTime | builtinSysDate ) '(' FuncDatetimePrecListOpt | FunctionNameDateArith '(' Expression ',' 'INTERVAL' Expression TimeUnit | ( builtinExtract '(' TimeUnit 'FROM' | ( 'GET_FORMAT' '(' GetFormatSelector | ( 'TIMESTAMPADD' | 'TIMESTAMPDIFF' ) '(' TimestampUnit ',' Expression ) ',' | builtinPosition '(' BitExpr 'IN' | builtinSubstring '(' Expression ( ',' ( Expression ',' )? | 'FROM' ( Expression 'FOR' )? ) | builtinTrim '(' ( ( Expression | TrimDirection Expression? ) 'FROM' )? ) Expression | FunctionNameDateArithMultiForms '(' Expression ',' ( Expression | 'INTERVAL' Expression TimeUnit ) | weightString '(' Expression ( 'AS' ( Char | 'BINARY' ) FieldLen )? ) ')'
           | FunctionNameSequence

referenced by:


FunctionCallGeneric:

identifier ( ExpressionListOpt )

FunctionCallGeneric
         ::= identifier '(' ExpressionListOpt ')'

referenced by:


WindowFuncCall:

ROW_NUMBER RANK DENSE_RANK CUME_DIST PERCENT_RANK ( NTILE ( SimpleExpr ) LEAD LAG ( Expression OptLeadLagInfo FIRST_VALUE LAST_VALUE ( Expression ) NTH_VALUE ( Expression , SimpleExpr ) OptFromFirstLast OptNullTreatment WindowingClause

WindowFuncCall
         ::= ( ( ( 'ROW_NUMBER' | 'RANK' | 'DENSE_RANK' | 'CUME_DIST' | 'PERCENT_RANK' ) '(' | 'NTILE' '(' SimpleExpr ) ')' | ( ( ( 'LEAD' | 'LAG' ) '(' Expression OptLeadLagInfo | ( 'FIRST_VALUE' | 'LAST_VALUE' ) '(' Expression ) ')' | 'NTH_VALUE' '(' Expression ',' SimpleExpr ')' OptFromFirstLast ) OptNullTreatment ) WindowingClause

referenced by:


Literal:

FALSE NULL TRUE floatLit decLit intLit stringLit UNDERSCORE_CHARSET stringLit hexLit bitLit

Literal  ::= 'FALSE'
           | 'NULL'
           | 'TRUE'
           | floatLit
           | decLit
           | intLit
           | stringLit+
           | 'UNDERSCORE_CHARSET' stringLit
           | hexLit
           | bitLit

referenced by:


Variable:

SystemVariable UserVariable

Variable ::= SystemVariable
           | UserVariable

referenced by:


SumExpr:

AVG builtinMax builtinMin builtinSum builtinStddevPop builtinStddevSamp builtinVarPop builtinVarSamp ( BuggyDefaultFalseDistinctOpt builtinBitAnd builtinBitOr builtinBitXor ( JSON_OBJECTAGG ( ALL Expression , ALL Expression builtinGroupConcat ( BuggyDefaultFalseDistinctOpt ExpressionList OrderByOptional OptGConcatSeparator ) OptWindowingClause builtinCount ( DistinctKwd ExpressionList ) ALL Expression * ) OptWindowingClause

SumExpr  ::= ( ( ( 'AVG' | builtinMax | builtinMin | builtinSum | builtinStddevPop | builtinStddevSamp | builtinVarPop | builtinVarSamp ) '(' BuggyDefaultFalseDistinctOpt | ( ( builtinBitAnd | builtinBitOr | builtinBitXor ) '(' | 'JSON_OBJECTAGG' '(' 'ALL'? Expression ',' ) 'ALL'? ) Expression | builtinGroupConcat '(' BuggyDefaultFalseDistinctOpt ExpressionList OrderByOptional OptGConcatSeparator ) ')' OptWindowingClause
           | builtinCount '(' ( DistinctKwd ExpressionList ')' | ( 'ALL'? Expression | '*' ) ')' OptWindowingClause )

referenced by:


CastType:

BINARY DATETIME TIME OptFieldLen CHAR OptFieldLen OptBinary DATE DECIMAL FLOAT FloatOpt SIGNED UNSIGNED OptInteger JSON DOUBLE REAL

CastType ::= ( 'BINARY' | 'DATETIME' | 'TIME' ) OptFieldLen
           | 'CHAR' OptFieldLen OptBinary
           | 'DATE'
           | ( 'DECIMAL' | 'FLOAT' ) FloatOpt
           | ( 'SIGNED' | 'UNSIGNED' ) OptInteger
           | 'JSON'
           | 'DOUBLE'
           | 'REAL'

referenced by:


ExpressionOpt:

Expression

ExpressionOpt
         ::= Expression?

referenced by:


ElseOpt:

ELSE Expression

ElseOpt  ::= ( 'ELSE' Expression )?

referenced by:


ShowProfileType:

CPU MEMORY BLOCK IO CONTEXT SWITCHES PAGE FAULTS IPC SWAPS SOURCE ALL

ShowProfileType
         ::= 'CPU'
           | 'MEMORY'
           | 'BLOCK' 'IO'
           | 'CONTEXT' 'SWITCHES'
           | 'PAGE' 'FAULTS'
           | 'IPC'
           | 'SWAPS'
           | 'SOURCE'
           | 'ALL'

referenced by:


CrossOpt:

CROSS INNER JOIN

CrossOpt ::= ( 'CROSS' | 'INNER' )? 'JOIN'

referenced by:


JoinType:

LEFT RIGHT

JoinType ::= 'LEFT'
           | 'RIGHT'

referenced by:


OuterOpt:

OUTER

OuterOpt ::= 'OUTER'?

referenced by:


LockType:

READ WRITE LOCAL

LockType ::= ( 'READ' | 'WRITE' ) 'LOCAL'?

referenced by:


LocationLabelList:

LOCATION LABELS StringList

LocationLabelList
         ::= ( 'LOCATION' 'LABELS' StringList )?

referenced by:


OptCollate:

COLLATE CollationName

OptCollate
         ::= ( 'COLLATE' CollationName )?

referenced by:


ColumnKeywordOpt:

COLUMN

ColumnKeywordOpt
         ::= 'COLUMN'?

referenced by:


ColumnDef:

ColumnName Type SERIAL ColumnOptionListOpt

ColumnDef
         ::= ColumnName ( Type | 'SERIAL' ) ColumnOptionListOpt

referenced by:


ColumnPosition:

FIRST AFTER ColumnName

ColumnPosition
         ::= ( 'FIRST' | 'AFTER' ColumnName )?

referenced by:


Constraint:

ConstraintKeywordOpt ConstraintElem

Constraint
         ::= ConstraintKeywordOpt ConstraintElem

referenced by:


AllOrPartitionNameList:

ALL PartitionNameList

AllOrPartitionNameList
         ::= 'ALL'
           | PartitionNameList

referenced by:


WithValidationOpt:

WithValidation

WithValidationOpt
         ::= WithValidation?

referenced by:


ReorganizePartitionRuleOpt:

PartitionNameList INTO ( PartitionDefinitionList )

ReorganizePartitionRuleOpt
         ::= ( PartitionNameList 'INTO' '(' PartitionDefinitionList ')' )?

referenced by:


KeyOrIndex:

KEY INDEX

KeyOrIndex
         ::= 'KEY'
           | 'INDEX'

referenced by:


Symbol:

Identifier

Symbol   ::= Identifier

referenced by:


SignedLiteral:

Literal + - NumLiteral

SignedLiteral
         ::= Literal
           | ( '+' | '-' ) NumLiteral

referenced by:


EnforcedOrNot:

NOT ENFORCED

EnforcedOrNot
         ::= 'NOT'? 'ENFORCED'

referenced by:


HashString:

stringLit

HashString
         ::= stringLit

referenced by:


RequireListElement:

ISSUER SUBJECT CIPHER stringLit

RequireListElement
         ::= ( 'ISSUER' | 'SUBJECT' | 'CIPHER' ) stringLit

referenced by:


PasswordExpire:

PASSWORD EXPIRE ClearPasswordExpireOptions

PasswordExpire
         ::= 'PASSWORD' 'EXPIRE' ClearPasswordExpireOptions

referenced by:


CompareOp:

>= > <= < != <> = <=>

CompareOp
         ::= '>='
           | '>'
           | '<='
           | '<'
           | '!='
           | '<>'
           | '='
           | '<=>'

referenced by:


PredicateExpr:

BitExpr AND BitExpr BetweenOrNotOp InOrNotOp ( ExpressionList ) SubSelect LikeOrNotOp SimpleExpr LikeEscapeOpt RegexpOrNotOp SimpleExpr

PredicateExpr
         ::= BitExpr ( BetweenOrNotOp BitExpr 'AND' BitExpr )* ( InOrNotOp ( '(' ExpressionList ')' | SubSelect ) | LikeOrNotOp SimpleExpr LikeEscapeOpt | RegexpOrNotOp SimpleExpr )?

referenced by:


AnyOrAll:

ANY SOME ALL

AnyOrAll ::= 'ANY'
           | 'SOME'
           | 'ALL'

referenced by:


IndexHintType:

USE IGNORE FORCE KeyOrIndex

IndexHintType
         ::= ( 'USE' | 'IGNORE' | 'FORCE' ) KeyOrIndex

referenced by:


IndexHintScope:

FOR JOIN ORDER GROUP BY

IndexHintScope
         ::= ( 'FOR' ( 'JOIN' | ( 'ORDER' | 'GROUP' ) 'BY' ) )?

referenced by:


ByItem:

Expression Order

ByItem   ::= Expression Order

referenced by:


FieldLen:

( LengthNum )

FieldLen ::= '(' LengthNum ')'

referenced by:


PartDefOption:

COMMENT DATA INDEX DIRECTORY EqOpt stringLit STORAGE ENGINE INSERT_METHOD EqOpt StringName MAX_ROWS MIN_ROWS NODEGROUP EqOpt LengthNum TABLESPACE EqOpt Identifier

PartDefOption
         ::= ( 'COMMENT' | ( 'DATA' | 'INDEX' ) 'DIRECTORY' ) EqOpt stringLit
           | ( 'STORAGE'? 'ENGINE' | 'INSERT_METHOD' ) EqOpt StringName
           | ( 'MAX_ROWS' | 'MIN_ROWS' | 'NODEGROUP' ) EqOpt LengthNum
           | 'TABLESPACE' EqOpt Identifier

referenced by:


RowFormat:

ROW_FORMAT EqOpt DEFAULT DYNAMIC FIXED COMPRESSED REDUNDANT COMPACT TOKUDB_DEFAULT TOKUDB_FAST TOKUDB_SMALL TOKUDB_ZLIB TOKUDB_QUICKLZ TOKUDB_LZMA TOKUDB_SNAPPY TOKUDB_UNCOMPRESSED

RowFormat
         ::= 'ROW_FORMAT' EqOpt ( 'DEFAULT' | 'DYNAMIC' | 'FIXED' | 'COMPRESSED' | 'REDUNDANT' | 'COMPACT' | 'TOKUDB_DEFAULT' | 'TOKUDB_FAST' | 'TOKUDB_SMALL' | 'TOKUDB_ZLIB' | 'TOKUDB_QUICKLZ' | 'TOKUDB_LZMA' | 'TOKUDB_SNAPPY' | 'TOKUDB_UNCOMPRESSED' )

referenced by:


StatsPersistentVal:

DEFAULT LengthNum

StatsPersistentVal
         ::= 'DEFAULT'
           | LengthNum

referenced by:


LinearOpt:

LINEAR

LinearOpt
         ::= 'LINEAR'?

referenced by:


PartitionKeyAlgorithmOpt:

ALGORITHM = NUM

PartitionKeyAlgorithmOpt
         ::= ( 'ALGORITHM' '=' NUM )?

referenced by:


PartitionDefinition:

PARTITION Identifier PartDefValuesOpt PartDefOptionList SubPartDefinitionListOpt

PartitionDefinition
         ::= 'PARTITION' Identifier PartDefValuesOpt PartDefOptionList SubPartDefinitionListOpt

referenced by:


SignedNum:

+ - Int64Num

SignedNum
         ::= ( '+' | '-' )? Int64Num

referenced by:


FieldTerminator:

stringLit hexLit bitLit

FieldTerminator
         ::= stringLit
           | hexLit
           | bitLit

referenced by:


ColumnNameOrUserVariable:

ColumnName UserVariable

ColumnNameOrUserVariable
         ::= ColumnName
           | UserVariable

referenced by:


Field:

Identifier . Identifier . * Expression { Identifier Expression } FieldAsNameOpt

Field    ::= ( Identifier '.' ( Identifier '.' )? )? '*'
           | ( Expression | '{' Identifier Expression '}' ) FieldAsNameOpt

referenced by:


WindowDefinition:

WindowName AS WindowSpec

WindowDefinition
         ::= WindowName 'AS' WindowSpec

referenced by:


DistinctKwd:

DISTINCT DISTINCTROW

DistinctKwd
         ::= 'DISTINCT'
           | 'DISTINCTROW'

referenced by:


FunctionNameConflict:

ASCII CHARSET COALESCE COLLATION DATE DATABASE DAY HOUR IF INTERVAL FORMAT LEFT MICROSECOND MINUTE MONTH builtinNow QUARTER REPEAT REPLACE REVERSE RIGHT ROW_COUNT SECOND TIME TIMESTAMP TRUNCATE USER WEEK YEAR

FunctionNameConflict
         ::= 'ASCII'
           | 'CHARSET'
           | 'COALESCE'
           | 'COLLATION'
           | 'DATE'
           | 'DATABASE'
           | 'DAY'
           | 'HOUR'
           | 'IF'
           | 'INTERVAL'
           | 'FORMAT'
           | 'LEFT'
           | 'MICROSECOND'
           | 'MINUTE'
           | 'MONTH'
           | builtinNow
           | 'QUARTER'
           | 'REPEAT'
           | 'REPLACE'
           | 'REVERSE'
           | 'RIGHT'
           | 'ROW_COUNT'
           | 'SECOND'
           | 'TIME'
           | 'TIMESTAMP'
           | 'TRUNCATE'
           | 'USER'
           | 'WEEK'
           | 'YEAR'

referenced by:


ExpressionListOpt:

ExpressionList

ExpressionListOpt
         ::= ExpressionList?

referenced by:


FunctionNameOptionalBraces:

CURRENT_USER CURRENT_DATE CURRENT_ROLE UTC_DATE

FunctionNameOptionalBraces
         ::= 'CURRENT_USER'
           | 'CURRENT_DATE'
           | 'CURRENT_ROLE'
           | 'UTC_DATE'

referenced by:


FunctionNameDatetimePrecision:

CURRENT_TIME CURRENT_TIMESTAMP LOCALTIME LOCALTIMESTAMP UTC_TIME UTC_TIMESTAMP

FunctionNameDatetimePrecision
         ::= 'CURRENT_TIME'
           | 'CURRENT_TIMESTAMP'
           | 'LOCALTIME'
           | 'LOCALTIMESTAMP'
           | 'UTC_TIME'
           | 'UTC_TIMESTAMP'

referenced by:


FuncDatetimePrec:

( intLit )

FuncDatetimePrec
         ::= ( '(' intLit? ')' )?

referenced by:


ODBCDateTimeType:

d t ts

ODBCDateTimeType
         ::= 'd'
           | 't'
           | 'ts'

referenced by:


FuncDatetimePrecListOpt:

FuncDatetimePrecList

FuncDatetimePrecListOpt
         ::= FuncDatetimePrecList?

referenced by:


FunctionNameDateArithMultiForms:

builtinAddDate builtinSubDate

FunctionNameDateArithMultiForms
         ::= builtinAddDate
           | builtinSubDate

referenced by:


FunctionNameDateArith:

builtinDateAdd builtinDateSub

FunctionNameDateArith
         ::= builtinDateAdd
           | builtinDateSub

referenced by:


GetFormatSelector:

DATE DATETIME TIME TIMESTAMP

GetFormatSelector
         ::= 'DATE'
           | 'DATETIME'
           | 'TIME'
           | 'TIMESTAMP'

referenced by:


TrimDirection:

BOTH LEADING TRAILING

TrimDirection
         ::= 'BOTH'
           | 'LEADING'
           | 'TRAILING'

referenced by:


Char:

CHARACTER CHAR

Char     ::= 'CHARACTER'
           | 'CHAR'

referenced by:


FunctionNameSequence:

LASTVAL ( TableName SETVAL ( TableName , SignedNum ) NextValueForSequence

FunctionNameSequence
         ::= ( 'LASTVAL' '(' TableName | 'SETVAL' '(' TableName ',' SignedNum ) ')'
           | NextValueForSequence

referenced by:


WindowingClause:

OVER WindowNameOrSpec

WindowingClause
         ::= 'OVER' WindowNameOrSpec

referenced by:


OptLeadLagInfo:

, NumLiteral paramMarker OptLLDefault

OptLeadLagInfo
         ::= ( ',' ( NumLiteral | paramMarker ) OptLLDefault )?

referenced by:


OptNullTreatment:

RESPECT IGNORE NULLS

OptNullTreatment
         ::= ( ( 'RESPECT' | 'IGNORE' ) 'NULLS' )?

referenced by:


OptFromFirstLast:

FROM FIRST LAST

OptFromFirstLast
         ::= ( 'FROM' ( 'FIRST' | 'LAST' ) )?

referenced by:


SystemVariable:

doubleAtIdentifier

SystemVariable
         ::= doubleAtIdentifier

referenced by:


BuggyDefaultFalseDistinctOpt:

DefaultFalseDistinctOpt DistinctKwd ALL

BuggyDefaultFalseDistinctOpt
         ::= DefaultFalseDistinctOpt
           | DistinctKwd 'ALL'

referenced by:


OptWindowingClause:

WindowingClause

OptWindowingClause
         ::= WindowingClause?

referenced by:


OptGConcatSeparator:

SEPARATOR stringLit

OptGConcatSeparator
         ::= ( 'SEPARATOR' stringLit )?

referenced by:


OptBinary:

BINARY OptCharset CharsetKw CharsetName OptBinMod

OptBinary
         ::= ( 'BINARY' OptCharset | CharsetKw CharsetName OptBinMod )?

referenced by:


FloatOpt:

FieldLen Precision

FloatOpt ::= ( FieldLen | Precision )?

referenced by:


OptInteger:

INTEGER INT

OptInteger
         ::= ( 'INTEGER' | 'INT' )?

referenced by:


WhenClause:

WHEN Expression THEN Expression

WhenClause
         ::= 'WHEN' Expression 'THEN' Expression

referenced by:


StringList:

stringLit ,

StringList
         ::= stringLit ( ',' stringLit )*

referenced by:


Type:

NumericType StringType DateAndTimeType

Type     ::= NumericType
           | StringType
           | DateAndTimeType

referenced by:


ColumnOptionListOpt:

ColumnOption

ColumnOptionListOpt
         ::= ColumnOption*

referenced by:


ConstraintKeywordOpt:

CONSTRAINT Symbol

ConstraintKeywordOpt
         ::= ( 'CONSTRAINT' Symbol? )?

referenced by:


ConstraintElem:

PRIMARY KEY KeyOrIndex IfNotExists UNIQUE KeyOrIndexOpt IndexNameAndTypeOpt FULLTEXT KeyOrIndexOpt IndexName ( IndexPartSpecificationList ) IndexOptionList FOREIGN KEY IfNotExists IndexName ( IndexPartSpecificationList ) ReferDef CHECK ( Expression ) EnforcedOrNotOpt

ConstraintElem
         ::= ( ( 'PRIMARY' 'KEY' | KeyOrIndex IfNotExists | 'UNIQUE' KeyOrIndexOpt ) IndexNameAndTypeOpt | 'FULLTEXT' KeyOrIndexOpt IndexName ) '(' IndexPartSpecificationList ')' IndexOptionList
           | 'FOREIGN' 'KEY' IfNotExists IndexName '(' IndexPartSpecificationList ')' ReferDef
           | 'CHECK' '(' Expression ')' EnforcedOrNotOpt

referenced by:


WithValidation:

WITH WITHOUT VALIDATION

WithValidation
         ::= ( 'WITH' | 'WITHOUT' ) 'VALIDATION'

referenced by:


AlterOrderItem:

ColumnName Order

AlterOrderItem
         ::= ColumnName Order

referenced by:


NumLiteral:

intLit floatLit decLit

NumLiteral
         ::= intLit
           | floatLit
           | decLit

referenced by:


ClearPasswordExpireOptions:

ClearPasswordExpireOptions
         ::=

referenced by:


InOrNotOp:

NOT IN

InOrNotOp
         ::= 'NOT'? 'IN'

referenced by:


BetweenOrNotOp:

NOT BETWEEN

BetweenOrNotOp
         ::= 'NOT'? 'BETWEEN'

referenced by:


LikeOrNotOp:

NOT LIKE

LikeOrNotOp
         ::= 'NOT'? 'LIKE'

referenced by:


LikeEscapeOpt:

ESCAPE stringLit

LikeEscapeOpt
         ::= ( 'ESCAPE' stringLit )?

referenced by:


RegexpOrNotOp:

NOT RegexpSym

RegexpOrNotOp
         ::= 'NOT'? RegexpSym

referenced by:


PartDefValuesOpt:

VALUES LESS THAN MAXVALUE ( MaxValueOrExpressionList ) IN ( MaxValueOrExpressionList ) DEFAULT HISTORY CURRENT

PartDefValuesOpt
         ::= ( 'VALUES' ( 'LESS' 'THAN' ( 'MAXVALUE' | '(' MaxValueOrExpressionList ')' ) | 'IN' '(' MaxValueOrExpressionList ')' ) | 'DEFAULT' | 'HISTORY' | 'CURRENT' )?

referenced by:


PartDefOptionList:

PartDefOption

PartDefOptionList
         ::= PartDefOption*

referenced by:


SubPartDefinitionListOpt:

( SubPartDefinition , )

SubPartDefinitionListOpt
         ::= ( '(' SubPartDefinition ( ',' SubPartDefinition )* ')' )?

referenced by:


FieldAsNameOpt:

FieldAsName

FieldAsNameOpt
         ::= FieldAsName?

referenced by:


WindowName:

Identifier

WindowName
         ::= Identifier

referenced by:


WindowSpec:

( WindowSpecDetails )

WindowSpec
         ::= '(' WindowSpecDetails ')'

referenced by:


FuncDatetimePrecList:

intLit

FuncDatetimePrecList
         ::= intLit

referenced by:


NextValueForSequence:

NEXT VALUE forKwd TableName NEXTVAL ( TableName )

NextValueForSequence
         ::= 'NEXT' 'VALUE' forKwd TableName
           | 'NEXTVAL' '(' TableName ')'

referenced by:


WindowNameOrSpec:

WindowName WindowSpec

WindowNameOrSpec
         ::= WindowName
           | WindowSpec

referenced by:


OptLLDefault:

, Expression

OptLLDefault
         ::= ( ',' Expression )?

referenced by:


OptCharset:

CharsetKw CharsetName

OptCharset
         ::= ( CharsetKw CharsetName )?

referenced by:


OptBinMod:

BINARY

OptBinMod
         ::= 'BINARY'?

referenced by:


Precision:

( LengthNum , LengthNum )

Precision
         ::= '(' LengthNum ',' LengthNum ')'

referenced by:


NumericType:

IntegerType OptFieldLen BooleanType FixedPointType FloatingPointType FloatOpt FieldOpts BIT OptFieldLen

NumericType
         ::= ( IntegerType OptFieldLen | BooleanType | ( FixedPointType | FloatingPointType ) FloatOpt ) FieldOpts
           | 'BIT' OptFieldLen

referenced by:


StringType:

Char NChar FieldLen Varchar NVarchar FieldLen OptBinary BINARY OptFieldLen VARBINARY FieldLen BlobType TextType LONG Varchar OptCharsetWithOptBinary ENUM SET ( StringList ) OptCharset JSON

StringType
         ::= ( ( Char | NChar ) FieldLen? | ( Varchar | NVarchar ) FieldLen ) OptBinary
           | 'BINARY' OptFieldLen
           | 'VARBINARY' FieldLen
           | BlobType
           | ( TextType | 'LONG' Varchar? ) OptCharsetWithOptBinary
           | ( 'ENUM' | 'SET' ) '(' StringList ')' OptCharset
           | 'JSON'

referenced by:


DateAndTimeType:

DATE DATETIME TIMESTAMP TIME OptFieldLen Year OptFieldLen FieldOpts

DateAndTimeType
         ::= 'DATE'
           | ( 'DATETIME' | 'TIMESTAMP' | 'TIME' ) OptFieldLen
           | Year OptFieldLen FieldOpts

referenced by:


IndexNameAndTypeOpt:

IndexName USING IndexTypeName Identifier TYPE IndexTypeName

IndexNameAndTypeOpt
         ::= IndexName ( 'USING' IndexTypeName )?
           | Identifier 'TYPE' IndexTypeName

referenced by:


KeyOrIndexOpt:

KeyOrIndex

KeyOrIndexOpt
         ::= KeyOrIndex?

referenced by:


IndexName:

Identifier

IndexName
         ::= Identifier?

referenced by:


ReferDef:

REFERENCES TableName IndexPartSpecificationListOpt MatchOpt OnDeleteUpdateOpt

ReferDef ::= 'REFERENCES' TableName IndexPartSpecificationListOpt MatchOpt OnDeleteUpdateOpt

referenced by:


EnforcedOrNotOpt:

EnforcedOrNot

EnforcedOrNotOpt
         ::= EnforcedOrNot?

referenced by:


RegexpSym:

REGEXP RLIKE

RegexpSym
         ::= 'REGEXP'
           | 'RLIKE'

referenced by:


MaxValueOrExpressionList:

MaxValueOrExpression ,

MaxValueOrExpressionList
         ::= MaxValueOrExpression ( ',' MaxValueOrExpression )*

referenced by:


FieldAsName:

AS Identifier stringLit

FieldAsName
         ::= 'AS'? ( Identifier | stringLit )

referenced by:


WindowSpecDetails:

OptExistingWindowName OptPartitionClause OptWindowOrderByClause OptWindowFrameClause

WindowSpecDetails
         ::= OptExistingWindowName OptPartitionClause OptWindowOrderByClause OptWindowFrameClause

referenced by:


IntegerType:

TINYINT SMALLINT MEDIUMINT INT INT1 INT2 INT3 INT4 INT8 INTEGER BIGINT

IntegerType
         ::= 'TINYINT'
           | 'SMALLINT'
           | 'MEDIUMINT'
           | 'INT'
           | 'INT1'
           | 'INT2'
           | 'INT3'
           | 'INT4'
           | 'INT8'
           | 'INTEGER'
           | 'BIGINT'

referenced by:


FieldOpts:

FieldOpt

FieldOpts
         ::= FieldOpt*

referenced by:


BooleanType:

BOOL BOOLEAN

BooleanType
         ::= 'BOOL'
           | 'BOOLEAN'

referenced by:


FixedPointType:

DECIMAL NUMERIC FIXED

FixedPointType
         ::= 'DECIMAL'
           | 'NUMERIC'
           | 'FIXED'

referenced by:


FloatingPointType:

FLOAT REAL DOUBLE PRECISION

FloatingPointType
         ::= 'FLOAT'
           | 'REAL'
           | 'DOUBLE' 'PRECISION'?

referenced by:


NChar:

NCHAR NATIONAL CHARACTER CHAR

NChar    ::= 'NCHAR'
           | 'NATIONAL' ( 'CHARACTER' | 'CHAR' )

referenced by:


Varchar:

CHARACTER CHAR VARYING VARCHAR VARCHARACTER

Varchar  ::= ( 'CHARACTER' | 'CHAR' ) 'VARYING'
           | 'VARCHAR'
           | 'VARCHARACTER'

referenced by:


NVarchar:

NATIONAL VARCHAR VARCHARACTER CHARACTER CHAR VARYING NVARCHAR NCHAR VARCHAR VARCHARACTER VARYING

NVarchar ::= 'NATIONAL' ( 'VARCHAR' | 'VARCHARACTER' | ( 'CHARACTER' | 'CHAR' ) 'VARYING' )
           | 'NVARCHAR'
           | 'NCHAR' ( 'VARCHAR' | 'VARCHARACTER' | 'VARYING' )

referenced by:


BlobType:

TINYBLOB BLOB OptFieldLen MEDIUMBLOB LONGBLOB LONG VARBINARY

BlobType ::= 'TINYBLOB'
           | 'BLOB' OptFieldLen
           | 'MEDIUMBLOB'
           | 'LONGBLOB'
           | 'LONG' 'VARBINARY'

referenced by:


TextType:

TINYTEXT TEXT OptFieldLen MEDIUMTEXT LONGTEXT

TextType ::= 'TINYTEXT'
           | 'TEXT' OptFieldLen
           | 'MEDIUMTEXT'
           | 'LONGTEXT'

referenced by:


OptCharsetWithOptBinary:

OptBinary ASCII UNICODE BYTE

OptCharsetWithOptBinary
         ::= OptBinary
           | 'ASCII'
           | 'UNICODE'
           | 'BYTE'

referenced by:


Year:

YEAR SQL_TSI_YEAR

Year     ::= 'YEAR'
           | 'SQL_TSI_YEAR'

referenced by:


ColumnOption:

NOT NULL AUTO_INCREMENT PrimaryOpt KEY UNIQUE KEY DEFAULT DefaultValueExpr SERIAL DEFAULT VALUE ON UPDATE NowSymOptionFraction COMMENT stringLit ConstraintKeywordOpt CHECK ( Expression ) EnforcedOrNotOrNotNullOpt GeneratedAlways AS ( Expression ) VirtualOrStored ReferDef COLLATE CollationName COLUMN_FORMAT ColumnFormat STORAGE StorageMedia AUTO_RANDOM OptFieldLen

ColumnOption
         ::= 'NOT'? 'NULL'
           | 'AUTO_INCREMENT'
           | PrimaryOpt 'KEY'
           | 'UNIQUE' 'KEY'?
           | 'DEFAULT' DefaultValueExpr
           | 'SERIAL' 'DEFAULT' 'VALUE'
           | 'ON' 'UPDATE' NowSymOptionFraction
           | 'COMMENT' stringLit
           | ConstraintKeywordOpt 'CHECK' '(' Expression ')' EnforcedOrNotOrNotNullOpt
           | GeneratedAlways 'AS' '(' Expression ')' VirtualOrStored
           | ReferDef
           | 'COLLATE' CollationName
           | 'COLUMN_FORMAT' ColumnFormat
           | 'STORAGE' StorageMedia
           | 'AUTO_RANDOM' OptFieldLen

referenced by:


IndexPartSpecificationListOpt:

( IndexPartSpecificationList )

IndexPartSpecificationListOpt
         ::= ( '(' IndexPartSpecificationList ')' )?

referenced by:


MatchOpt:

Match

MatchOpt ::= Match?

referenced by:


OnDeleteUpdateOpt:

OnDelete OnUpdate OnUpdate OnDelete

OnDeleteUpdateOpt
         ::= ( OnDelete OnUpdate? | OnUpdate OnDelete? )?

referenced by:


MaxValueOrExpression:

MAXVALUE Expression

MaxValueOrExpression
         ::= 'MAXVALUE'
           | Expression

referenced by:


SubPartDefinition:

SUBPARTITION Identifier PartDefOptionList

SubPartDefinition
         ::= 'SUBPARTITION' Identifier PartDefOptionList

referenced by:


OptExistingWindowName:

WindowName

OptExistingWindowName
         ::= WindowName?

referenced by:


OptPartitionClause:

PARTITION BY ByList

OptPartitionClause
         ::= ( 'PARTITION' 'BY' ByList )?

referenced by:


OptWindowOrderByClause:

ORDER BY ByList

OptWindowOrderByClause
         ::= ( 'ORDER' 'BY' ByList )?

referenced by:


OptWindowFrameClause:

WindowFrameUnits WindowFrameExtent

OptWindowFrameClause
         ::= ( WindowFrameUnits WindowFrameExtent )?

referenced by:


FieldOpt:

UNSIGNED SIGNED ZEROFILL

FieldOpt ::= 'UNSIGNED'
           | 'SIGNED'
           | 'ZEROFILL'

referenced by:


PrimaryOpt:

PRIMARY

PrimaryOpt
         ::= 'PRIMARY'?

referenced by:


DefaultValueExpr:

NowSymOptionFraction SignedLiteral NextValueForSequence

DefaultValueExpr
         ::= NowSymOptionFraction
           | SignedLiteral
           | NextValueForSequence

referenced by:


NowSymOptionFraction:

NowSym NowSymFunc ( NUM )

NowSymOptionFraction
         ::= NowSym
           | NowSymFunc '(' NUM? ')'

referenced by:


EnforcedOrNotOrNotNullOpt:

NOT NULL EnforcedOrNotOpt

EnforcedOrNotOrNotNullOpt
         ::= 'NOT' 'NULL'
           | EnforcedOrNotOpt

referenced by:


GeneratedAlways:

GENERATED ALWAYS

GeneratedAlways
         ::= ( 'GENERATED' 'ALWAYS' )?

referenced by:


VirtualOrStored:

VIRTUAL STORED

VirtualOrStored
         ::= ( 'VIRTUAL' | 'STORED' )?

referenced by:


ColumnFormat:

DEFAULT FIXED DYNAMIC

ColumnFormat
         ::= 'DEFAULT'
           | 'FIXED'
           | 'DYNAMIC'

referenced by:


StorageMedia:

DEFAULT DISK MEMORY

StorageMedia
         ::= 'DEFAULT'
           | 'DISK'
           | 'MEMORY'

referenced by:


Match:

MATCH FULL PARTIAL SIMPLE

Match    ::= 'MATCH' ( 'FULL' | 'PARTIAL' | 'SIMPLE' )

referenced by:


OnDelete:

ON DELETE ReferOpt

OnDelete ::= 'ON' 'DELETE' ReferOpt

referenced by:


OnUpdate:

ON UPDATE ReferOpt

OnUpdate ::= 'ON' 'UPDATE' ReferOpt

referenced by:


WindowFrameUnits:

ROWS RANGE GROUPS

WindowFrameUnits
         ::= 'ROWS'
           | 'RANGE'
           | 'GROUPS'

referenced by:


WindowFrameExtent:

WindowFrameStart WindowFrameBetween

WindowFrameExtent
         ::= WindowFrameStart
           | WindowFrameBetween

referenced by:


NowSym:

CURRENT_TIMESTAMP LOCALTIME LOCALTIMESTAMP

NowSym   ::= 'CURRENT_TIMESTAMP'
           | 'LOCALTIME'
           | 'LOCALTIMESTAMP'

referenced by:


NowSymFunc:

CURRENT_TIMESTAMP LOCALTIME LOCALTIMESTAMP builtinNow

NowSymFunc
         ::= 'CURRENT_TIMESTAMP'
           | 'LOCALTIME'
           | 'LOCALTIMESTAMP'
           | builtinNow

referenced by:


ReferOpt:

RESTRICT CASCADE SET NULL DEFAULT NO ACTION

ReferOpt ::= 'RESTRICT'
           | 'CASCADE'
           | 'SET' ( 'NULL' | 'DEFAULT' )
           | 'NO' 'ACTION'

referenced by:


WindowFrameStart:

UNBOUNDED NumLiteral paramMarker INTERVAL Expression TimeUnit PRECEDING CURRENT ROW

WindowFrameStart
         ::= ( 'UNBOUNDED' | NumLiteral | paramMarker | 'INTERVAL' Expression TimeUnit ) 'PRECEDING'
           | 'CURRENT' 'ROW'

referenced by:


WindowFrameBetween:

BETWEEN WindowFrameBound AND WindowFrameBound

WindowFrameBetween
         ::= 'BETWEEN' WindowFrameBound 'AND' WindowFrameBound

referenced by:


WindowFrameBound:

WindowFrameStart UNBOUNDED NumLiteral paramMarker INTERVAL Expression TimeUnit FOLLOWING

WindowFrameBound
         ::= WindowFrameStart
           | ( 'UNBOUNDED' | NumLiteral | paramMarker | 'INTERVAL' Expression TimeUnit ) 'FOLLOWING'

referenced by:



  ... generated by RR - Railroad Diagram Generator R R