SQL Syntax 5.3¶
The EBNF and Railroad Diagrams for 5.3.
Statement¶
         ::= 'IF' Condition ( SingleStatement | Block ) ST_SEMICOLON? ( 'ELSE' ( SingleStatement | Block ) ST_SEMICOLON? )? 
         
          | 
                              Not referenced by any.
                            | 
SingleStatement¶
         ::= WithList? ( SelectWithWithItems | InsertWithWithItems | UpdateWithWithItems | DeleteWithWithItems | Merge ) 
                    | Select 
         
                    | Upsert 
                    | Alter 
         
                    | Create 
                    | Drop 
                    | Analyze 
                    | Truncate 
                    | Execute 
                    | Set 
                    | Reset 
                    | Show 
         
                    | Use 
         
         
                    | 'COMMIT' 
                    | Comment 
                    | Describe 
                    | Explain 
                    | Declare 
                    | Grant 
          | 
                              Referenced by:
                                | 
Block¶
                              Referenced by:
                                | 
Statements¶
         ::= ( ST_SEMICOLON* ( 'IF' Condition ( SingleStatement | Block ) ST_SEMICOLON? ( 'ELSE' ( SingleStatement | Block ) ST_SEMICOLON? )? | ( SingleStatement | Block ) ( ST_SEMICOLON | EOF ) ) ( ST_SEMICOLON* ( 'IF' Condition ( ( SingleStatement | Block ) ST_SEMICOLON? 'ELSE' )? )? ( SingleStatement | Block ) ST_SEMICOLON* )* UnsupportedStatement? )* EOF  | 
                              Not referenced by any.
                            | 
Declare¶
Declare  ::= 'DECLARE' UserVariable ( 'TABLE' '(' ColumnDefinition ( ',' ColumnDefinition )* ')' | 'AS' RelObjectName | ColDataType ( '=' Expression )? ( ',' UserVariable ColDataType ( '=' Expression )? )* )  | 
                              Referenced by:
                                | 
Set¶
Set      ::= 'SET' ( 'LOCAL' | 'SESSION' )? ( K_DATETIMELITERAL 'ZONE' | ( UserVariable | IdentifierChain ) '='? ) Expression ( ',' ( K_DATETIMELITERAL 'ZONE' | RelObjectNameExt '='? )? Expression )*  | 
                              Referenced by:
                                | 
Reset¶
                              Referenced by:
                                | 
RenameTableStatement¶
                              Referenced by:
                                | 
PurgeStatement¶
         ::= 'PURGE' ( 'TABLE' Table | 'INDEX' Index | 'RECYCLEBIN' | 'DBA_RECYCLEBIN' | 'TABLESPACE' S_IDENTIFIER ( 'USER' S_IDENTIFIER )? )  | 
                              Referenced by:
                                | 
Describe¶
                              Referenced by:
                                | 
Explain¶
                              Referenced by:
                                | 
ExplainOptionBoolean¶
         ::= ( 'TRUE' | 'FALSE' | 'ON' | 'OFF' )?  | 
                              Referenced by:
                                | 
ExplainFormatOption¶
         ::= ( 'XML' | 'JSON' | 'YAML' )?  | 
                              Referenced by:
                                | 
ExplainStatementOptions¶
         ::= ( ( 'ANALYZE' | 'BUFFERS' | 'COSTS' | 'VERBOSE' ) ExplainOptionBoolean | ( 'FORMAT' | 'PLAN' 'FOR'? ) ExplainFormatOption )*  | 
                              Referenced by:
                                | 
Use¶
Use      ::= 'USE' 'SCHEMA'? RelObjectNameExt  | 
                              Referenced by:
                                | 
Show¶
                              Referenced by:
                                | 
ShowColumns¶
         ::= 'COLUMNS' 'FROM' RelObjectNameExt  | 
                              Referenced by:
                                | 
ShowIndex¶
         ::= 'INDEX' 'FROM' RelObjectNameExt  | 
                              Referenced by:
                                | 
RefreshMaterializedView¶
         ::= 'REFRESH' 'MATERIALIZED' 'VIEW' 'CONCURRENTLY'? Table ( 'WITH' 'NO'? 'DATA' )? captureRest  | 
                              Referenced by:
                                | 
ShowTables¶
         ::= 'EXTENDED'? 'FULL'? 'TABLES' ( ( 'FROM' | 'IN' ) RelObjectNameExt )? ( 'LIKE' SimpleExpression | 'WHERE' Expression )?  | 
                              Referenced by:
                                | 
Values¶
Values   ::= ( 'VALUES' | 'VALUE' ) ExpressionList  | 
                              Referenced by:
                                | 
ReturningClause¶
         ::= ( 'RETURNING' | 'RETURN' ) SelectItemsList ( 'INTO' ( Table | UserVariable ) ( ',' ( Table | UserVariable ) )* )?  | 
UpdateWithWithItems¶
         ::= Update  | 
                              Referenced by:
                                | 
Update¶
Update   ::= 'UPDATE' 'LOW_PRIORITY'? 'IGNORE'? TableWithAliasAndMysqlIndexHint JoinsList? 'SET' UpdateSets OutputClause? ( 'FROM' FromItem JoinsList? )? WhereClause? PreferringClause? OrderByElements? PlainLimit? ReturningClause?  | 
                              Referenced by:
                                | 
UpdateSets¶
         ::= ( Column '=' Expression | ParenthesedExpressionList '=' ( ParenthesedSelect | ParenthesedExpressionList ) ) ( ',' Column '=' Expression | ParenthesedExpressionList '=' ( ParenthesedSelect | ParenthesedExpressionList ) )*  | 
Partitions¶
                              Referenced by:
                                | 
InsertWithWithItems¶
         ::= Insert  | 
                              Referenced by:
                                | 
Insert¶
Insert   ::= 'INSERT' ( 'LOW_PRIORITY' | 'DELAYED' | 'HIGH_PRIORITY' )? 'IGNORE'? ( 'OVERWRITE'
            'TABLE' | 'INTO' 'TABLE'? )? Table ( 'PARTITION' '(' Partitions ')' )? ( 'AS'? RelObjectNameWithoutValue )? ( '(' ColumnList ')' )? ( 'OVERRIDING' 'SYSTEM' 'VALUE' )? OutputClause? ( 'DEFAULT' 'VALUES' | 'SET' UpdateSets | Select ) ( 'ON' 'DUPLICATE' 'KEY' 'UPDATE' UpdateSets )? ( 'ON' 'CONFLICT' InsertConflictTarget? InsertConflictAction )? ReturningClause?  | 
                              Referenced by:
                                | 
InsertConflictTarget¶
           | 'ON' 'CONSTRAINT' RelObjectNameExt2  | 
                              Referenced by:
                                | 
InsertConflictAction¶
         ::= 'DO' ( 'NOTHING' | 'UPDATE' 'SET' UpdateSets WhereClause? )  | 
                              Referenced by:
                                | 
OutputClause¶
Upsert¶
Upsert   ::= ( 'UPSERT' | ( 'INSERT' 'OR' )? 'REPLACE' ) 'INTO'? Table ParenthesedColumnList? ( 'SET' UpdateSets | Select ) ( 'ON' 'DUPLICATE' 'KEY' 'UPDATE' UpdateSets )?  | 
                              Referenced by:
                                | 
DeleteWithWithItems¶
         ::= Delete  | 
                              Referenced by:
                                | 
Delete¶
Delete   ::= 'DELETE' 'LOW_PRIORITY'? 'QUICK'? 'IGNORE'? ( ( TableWithAlias ( ',' TableWithAlias )* OutputClause? )? 'FROM' )? ( TableWithAlias JoinsList? )? ( 'USING' TableWithAlias ( ',' TableWithAlias )* )? WhereClause? PreferringClause? OrderByElements? PlainLimit? ReturningClause?  | 
                              Referenced by:
                                | 
Merge¶
Merge    ::= 'MERGE' 'INTO' TableWithAlias 'USING' FromItem 'ON' Expression MergeOperations OutputClause?  | 
                              Referenced by:
                                | 
MergeOperations¶
         ::= ( MergeWhenMatched | MergeWhenNotMatched )*  | 
                              Referenced by:
                                | 
MergeWhenMatched¶
         ::= 'WHEN' 'MATCHED' ( 'AND' Expression )? 'THEN' ( 'DELETE' | MergeUpdateClause )  | 
                              Referenced by:
                                | 
MergeUpdateClause¶
                              Referenced by:
                                | 
MergeWhenNotMatched¶
         ::= 'WHEN' 'NOT' 'MATCHED' ( 'AND' Expression )? 'THEN' 'INSERT' ( '(' ColumnList ')' )? 'VALUES' '(' SimpleExpressionList ')' ( 'WHERE' Expression )?  | 
                              Referenced by:
                                | 
RelObjectNames¶
         ::= RelObjectNameExt ( ( '.' | ':' )+ RelObjectNameExt2 )*  | 
ColumnIdentifier¶
         ::= RelObjectNameExt ( '.'+ RelObjectNameExt2 )*  | 
                              Referenced by:
                                | 
Column¶
RelObjectNameWithoutValue¶
         ::= DATA_TYPE 
         
         
         
         
         
         
         
         
                    | 'ACTION' 
                    | 'ACTIVE' 
                    | 'ADD' 
                    | 'ADVANCE' 
                    | 'ADVISE' 
                    | 'AGAINST' 
                    | 'AGGREGATE' 
                    | 'ALGORITHM' 
                    | 'ALTER' 
                    | 'ANALYZE' 
                    | 'APPLY' 
                    | 'APPROXIMATE' 
                    | 'ARCHIVE' 
                    | 'ARRAY' 
                    | 'ASC' 
                    | 'AT' 
                    | 'AUTHORIZATION' 
                    | 'AUTO' 
                    | 'AUTO_INCREMENT' 
                    | 'BASE64' 
                    | 'BEGIN' 
                    | 'BERNOULLI' 
                    | 'BINARY' 
                    | 'BIT' 
                    | 'BLOCK' 
                    | 'BROWSE' 
                    | 'BUFFERS' 
                    | 'BY' 
                    | 'BYTE' 
                    | 'BYTES' 
                    | 'CACHE' 
                    | 'CALL' 
                    | 'CASCADE' 
                    | 'CASE' 
                    | 'CAST' 
                    | 'CHANGE' 
                    | 'CHANGES' 
                    | 'CHAR' 
                    | 'CHARACTER' 
                    | 'CHECKPOINT' 
                    | 'CLOSE' 
                    | 'COLLATE' 
                    | 'COLUMN' 
                    | 'COLUMNS' 
                    | 'COMMENT' 
                    | 'COMMIT' 
                    | 'CONCURRENTLY' 
                    | 'CONFLICT' 
                    | 'CONSTRAINTS' 
                    | 'CONVERT' 
                    | 'COSTS' 
                    | 'COUNT' 
                    | 'CS' 
                    | 'CYCLE' 
                    | 'DATA' 
                    | 'DATABASE' 
                    | 'DATETIME' 
                    | 'DBA_RECYCLEBIN' 
                    | 'DDL' 
                    | 'DECLARE' 
                    | 'DEFERRABLE' 
                    | 'DELAYED' 
                    | 'DELETE' 
                    | 'DESC' 
                    | 'DESCRIBE' 
                    | 'DISABLE' 
                    | 'DISCONNECT' 
                    | 'DIV' 
                    | 'DML' 
                    | 'DO' 
                    | 'DOMAIN' 
                    | 'DROP' 
                    | 'DUMP' 
                    | 'DUPLICATE' 
                    | 'ELEMENTS' 
                    | 'EMIT' 
                    | 'ENABLE' 
                    | 'ENCRYPTION' 
                    | 'END' 
                    | 'ENGINE' 
                    | 'ERROR' 
                    | 'ESCAPE' 
                    | 'EXCLUDE' 
                    | 'EXEC' 
                    | 'EXECUTE' 
                    | 'EXPLAIN' 
                    | 'EXPLICIT' 
                    | 'EXTENDED' 
                    | 'EXTRACT' 
                    | 'FILTER' 
                    | 'FIRST' 
                    | 'FLUSH' 
                    | 'FN' 
                    | 'FOLLOWING' 
                    | 'FORMAT' 
                    | 'FULLTEXT' 
                    | 'FUNCTION' 
                    | 'GRANT' 
                    | 'GROUP_CONCAT' 
                    | 'GUARD' 
                    | 'HASH' 
                    | 'HIGH' 
                    | 'HIGH_PRIORITY' 
                    | 'HISTORY' 
                    | 'HOPPING' 
                    | 'INCLUDE' 
                    | 'INCLUDE_NULL_VALUES' 
                    | 'INCREMENT' 
                    | 'INDEX' 
                    | 'INSERT' 
                    | 'INTERLEAVE' 
                    | 'INTERPRET' 
                    | 'INVALIDATE' 
                    | 'INVERSE' 
                    | 'ISNULL' 
                    | 'JSON' 
                    | 'JSON_ARRAY' 
                    | 'JSON_ARRAYAGG' 
                    | 'JSON_OBJECT' 
                    | 'JSON_OBJECTAGG' 
                    | 'KEEP' 
                    | 'KEY' 
                    | 'KEYS' 
                    | 'LAST' 
                    | 'LEADING' 
                    | 'LESS' 
                    | 'LINK' 
                    | 'LOCAL' 
                    | 'LOCK' 
                    | 'LOCKED' 
                    | 'LOG' 
                    | 'LONGTEXT' 
                    | 'LOOP' 
                    | 'LOW' 
                    | 'LOW_PRIORITY' 
                    | 'MATCH' 
                    | 'MATCHED' 
                    | 'MATCH_ALL' 
                    | 'MATCH_ANY' 
                    | 'MATCH_PHRASE' 
                    | 'MATCH_PHRASE_PREFIX' 
                    | 'MATCH_REGEXP' 
                    | 'MATERIALIZED' 
                    | 'MAX' 
                    | 'MAXVALUE' 
                    | 'MEDIUMTEXT' 
                    | 'MEMBER' 
                    | 'MERGE' 
                    | 'MIN' 
                    | 'MINVALUE' 
                    | 'MODIFY' 
                    | 'MOVEMENT' 
                    | 'NEXT' 
                    | 'NO' 
                    | 'NOCACHE' 
                    | 'NOKEEP' 
                    | 'NOLOCK' 
                    | 'NOMAXVALUE' 
                    | 'NOMINVALUE' 
                    | 'NOORDER' 
                    | 'NOTHING' 
                    | 'NOTNULL' 
                    | 'NOVALIDATE' 
                    | 'NOWAIT' 
                    | 'NULLS' 
                    | 'OF' 
                    | 'OFF' 
                    | 'OPEN' 
                    | 'OVER' 
                    | 'OVERFLOW' 
                    | 'OVERLAPS' 
                    | 'OVERRIDING' 
                    | 'OVERWRITE' 
                    | 'PARALLEL' 
                    | 'PARENT' 
                    | 'PARTITION' 
                    | 'PATH' 
                    | 'PERCENT' 
                    | 'PLACING' 
                    | 'PLAN' 
                    | 'PLUS' 
                    | 'PRECEDING' 
                    | 'PRIMARY' 
                    | 'PURGE' 
                    | 'QUERY' 
                    | 'QUICK' 
                    | 'QUIESCE' 
                    | 'RANGE' 
                    | 'RAW' 
                    | 'READ' 
                    | 'RECURSIVE' 
                    | 'RECYCLEBIN' 
                    | 'REFERENCES' 
                    | 'REFRESH' 
                    | 'REGEXP' 
                    | 'REGEXP_LIKE' 
                    | 'REGISTER' 
                    | 'REMOTE' 
                    | 'RENAME' 
                    | 'REPEATABLE' 
                    | 'REPLACE' 
                    | 'RESET' 
                    | 'RESPECT' 
                    | 'RESTART' 
                    | 'RESTRICT' 
                    | 'RESTRICTED' 
                    | 'RESUMABLE' 
                    | 'RESUME' 
                    | 'RETURN' 
                    | 'RLIKE' 
                    | 'ROLLBACK' 
                    | 'ROLLUP' 
                    | 'ROOT' 
                    | 'ROW' 
                    | 'ROWS' 
                    | 'RR' 
                    | 'RS' 
                    | 'SAFE_CAST' 
                    | 'SAVEPOINT' 
                    | 'SCHEMA' 
                    | 'SECURE' 
                    | 'SEED' 
                    | 'SEPARATOR' 
                    | 'SEQUENCE' 
                    | 'SESSION' 
                    | 'SETS' 
                    | 'SHARE' 
                    | 'SHOW' 
                    | 'SHUTDOWN' 
                    | 'SIBLINGS' 
                    | 'SIGNED' 
                    | 'SIMILAR' 
                    | 'SIZE' 
                    | 'SKIP' 
                    | 'STORED' 
                    | 'STRING' 
                    | 'STRUCT' 
                    | 'SUMMARIZE' 
                    | 'SUSPEND' 
                    | 'SWITCH' 
                    | 'SYNONYM' 
                    | 'SYSTEM' 
                    | 'TABLE' 
                    | 'TABLESPACE' 
                    | 'TEMP' 
                    | 'TEMPORARY' 
                    | 'TEXT' 
                    | 'THAN' 
                    | 'THEN' 
                    | 'TIMEOUT' 
                    | 'TIMESTAMPTZ' 
                    | 'TIMEZONE' 
                    | 'TINYTEXT' 
                    | 'TO' 
                    | 'TRIGGER' 
                    | 'TRUNCATE' 
                    | 'TRY_CAST' 
                    | 'TUMBLING' 
                    | 'TYPE' 
                    | 'UNLOGGED' 
                    | 'UNQIESCE' 
                    | 'UNSIGNED' 
                    | 'UPDATE' 
                    | 'UPSERT' 
                    | 'UR' 
                    | 'USER' 
                    | 'VALIDATE' 
                    | 'VERBOSE' 
                    | 'VIEW' 
                    | 'VOLATILE' 
                    | 'WAIT' 
                    | 'WITHIN' 
                    | 'WITHOUT' 
                    | 'WITHOUT_ARRAY_WRAPPER' 
                    | 'WORK' 
                    | 'XML' 
                    | 'XMLAGG' 
                    | 'XMLDATA' 
                    | 'XMLSCHEMA' 
                    | 'XMLTEXT' 
                    | 'XSINIL' 
                    | 'YAML' 
                    | 'YES' 
                    | 'ZONE'  | 
RelObjectName¶
           | 'GROUP' 
                    | 'INTERVAL' 
                    | 'ON' 
                    | 'START' 
                    | 'TOP' 
                    | 'VALUE' 
                    | 'VALUES' 
                    | 'CREATE' 
                    | 'TABLES' 
                    | 'CONNECT' 
                    | 'IGNORE' 
                    | 'QUALIFY' 
                    | 'DEFAULT'  | 
                              Referenced by:
                               
  | 
RelObjectNameWithoutStart¶
           | 'TOP' 
                    | 'VALUE' 
                    | 'VALUES' 
                    | 'INTERVAL'  | 
                              Referenced by:
                                | 
RelObjectNameExt¶
         ::= RelObjectName 
                    | 'ALL' 
                    | 'ANY' 
                    | 'SOME' 
                    | 'LEFT' 
                    | 'RIGHT' 
                    | 'SET' 
                    | 'IF' 
                    | 'IIF' 
                    | 'OPTIMIZE' 
                    | 'LIMIT' 
                    | 'OFFSET' 
                    | 'PROCEDURE' 
                    | 'PUBLIC' 
                    | 'CASEWHEN' 
                    | 'IN' 
                    | 'GROUPING' 
                    | 'ORDER' 
         
                    | 'GLOBAL'  | 
RelObjectNameExt2¶
         ::= RelObjectNameExt 
                    | 'FROM' 
                    | K_SELECT 
                    | 'CURRENT'  | 
Table¶
TableWithAlias¶
TableWithAliasAndMysqlIndexHint¶
                              Referenced by:
                                | 
Number¶
           | S_LONG  | 
                              Referenced by:
                                | 
SampleClause¶
                              Referenced by:
                                | 
SelectWithWithItems¶
         ::= Select  | 
                              Referenced by:
                                | 
Select¶
FromQuery¶
         ::= 'FROM' FromItem ( '|>' PipeOperator )*  | 
                              Referenced by:
                                | 
FromQueryFromSelect¶
         ::= ( '|>' PipeOperator )+  | 
                              Referenced by:
                                | 
PipeOperator¶
                              Referenced by:
                                | 
SelectPipeOperator¶
                              Referenced by:
                                | 
WherePipeOperator¶
         ::= 'WHERE' Expression  | 
                              Referenced by:
                                | 
AggregatePipeOperator¶
         ::= 'AGGREGATE' SelectItem ( ',' SelectItem )* ( 'GROUP' ( 'AND' 'ORDER' )? 'BY' SelectItem ( ',' SelectItem )* )?  | 
                              Referenced by:
                                | 
OrderByPipeOperator¶
         ::= OrderByElements  | 
                              Referenced by:
                                | 
AsPipeOperator¶
         ::= 'AS' Alias  | 
                              Referenced by:
                                | 
JoinPipeOperator¶
         ::= JoinerExpression  | 
                              Referenced by:
                                | 
SetPipeOperator¶
         ::= 'SET' UpdateSets  | 
                              Referenced by:
                                | 
DropPipeOperator¶
         ::= 'DROP' ColumnList  | 
                              Referenced by:
                                | 
LimitPipeOperator¶
         ::= 'LIMIT' Expression ( 'OFFSET' Expression )?  | 
                              Referenced by:
                                | 
SetOperationPipeOperator¶
         ::= ( 'UNION' ( 'ALL' | 'DISTINCT' ) | ( 'INTERSECT' | 'EXCEPT' ) 'DISTINCT'
            ) ParenthesedSelect ( ',' ParenthesedSelect )*  | 
                              Referenced by:
                                | 
CallPipeOperator¶
         ::= 'CALL' TableFunction Alias?  | 
                              Referenced by:
                                | 
TableSamplePipeOperator¶
                              Referenced by:
                                | 
PivotPipeOperator¶
                              Referenced by:
                                | 
UnPivotPipeOperator¶
                              Referenced by:
                                | 
TableStatement¶
                              Referenced by:
                                | 
ParenthesedSelect¶
         ::= '(' Select ')'  | 
ParenthesedInsert¶
         ::= '(' Insert ')'  | 
                              Referenced by:
                                | 
ParenthesedUpdate¶
         ::= '(' Update ')'  | 
                              Referenced by:
                                | 
ParenthesedDelete¶
         ::= '(' Delete ')'  | 
                              Referenced by:
                                | 
LateralView¶
         ::= 'LATERAL' 'VIEW' 'OUTER'? Function RelObjectNameWithoutStart? 'AS' RelObjectNameWithoutStart ( ',' RelObjectNameWithoutStart )?  | 
                              Referenced by:
                                | 
ForClause¶
         ::= 'FOR' ( 'BROWSE' | 'XML' ( ( 'RAW' ( '(' S_CHAR_LITERAL ')' )? | 'AUTO' ) ( ',' ( 'BINARY' 'BASE64' | 'TYPE' | ( 'ROOT' | 'XMLSCHEMA' ) (
            '(' S_CHAR_LITERAL ')' )? | 'XMLDATA' | 'ELEMENTS' ( 'XSINIL' | 'ABSENT' )? ) )* | 'EXPLICIT' ( ','
            ( 'BINARY' 'BASE64' | 'TYPE' | 'ROOT' ( '(' S_CHAR_LITERAL ')' )? | 'XMLDATA' ) )* | 'PATH' ( '(' S_CHAR_LITERAL ')' )? ( ',' ( 'BINARY' 'BASE64' | 'TYPE' | 'ROOT' ( '(' S_CHAR_LITERAL ')' )? | 'ELEMENTS' ( 'XSINIL' | 'ABSENT' )? ) )* ) | 'JSON' ( 'AUTO' | 'PATH' )
            ( ',' ( 'ROOT' ( '(' S_CHAR_LITERAL ')' )? | 'INCLUDE_NULL_VALUES' | 'WITHOUT_ARRAY_WRAPPER' ) )* )  | 
                              Referenced by:
                                | 
LateralViews¶
         ::= LateralView+  | 
                              Referenced by:
                                | 
LateralSubSelect¶
         ::= 'LATERAL' '(' Select ')'  | 
                              Referenced by:
                                | 
PlainSelect¶
         ::= K_SELECT 'STRAIGHT_JOIN'? Skip? First? Top? ( 'ALL' | 'DISTINCT' ( 'ON' '(' SelectItemsList ')' )? | 'UNIQUE' | 'SQL_CALC_FOUND_ROWS' | 'SQL_NO_CACHE' | 'SQL_CACHE' )? ( 'AS'
            ( 'STRUCT' | 'VALUE' ) )? Top? SelectItemsList IntoClause? ( 'FROM' FromItem LateralViews? JoinsList? )? ( 'FROM' 'ONLY' FromItem LateralViews? JoinsList? )? 'FINAL'? KSQLWindowClause? WhereClause? OracleHierarchicalQueryClause? ( PreferringClause ( 'PARTITION' 'BY' ( ComplexExpressionList | '(' ComplexExpressionList ')' ) )? )? Having? GroupByColumnReferences? Having? Qualify? ForClause? OrderByElements? ( 'WINDOW' RelObjectName 'AS' windowDefinition ( ',' RelObjectName 'AS' windowDefinition )* )? OrderByElements? ( 'EMIT' 'CHANGES' )? LimitBy? LimitWithOffset? Offset? LimitWithOffset? Fetch? WithIsolation? ( 'FOR' ( ( 'NO' 'KEY' )? 'UPDATE' | 'KEY'? 'SHARE' ) ( 'OF' Table )? Wait? ( 'NOWAIT' | 'SKIP' 'LOCKED' )? )? OptimizeFor? ( 'INTO' 'TEMP' Table )? ( 'WITH' 'NO' 'LOG' )?  | 
                              Referenced by:
                                | 
SetOperationList¶
         ::= ( ( 'UNION' ( 'ALL' | 'DISTINCT' )? | 'INTERSECT' | 'MINUS' | 'EXCEPT'
            ) ( PlainSelect | Values | ParenthesedSelect ) )+ OrderByElements? LimitWithOffset? Offset? LimitWithOffset? Fetch? WithIsolation?  | 
                              Referenced by:
                                | 
WithList¶
                              Referenced by:
                                | 
WithItem¶
WithItem ::= 'RECURSIVE'? RelObjectName ( '(' SelectItemsList ')' )? 'AS' 'MATERIALIZED'? ( ParenthesedSelect | ParenthesedInsert | ParenthesedUpdate | ParenthesedDelete )  | 
                              Referenced by:
                                | 
ColumnSelectItemsList¶
         ::= SelectItem ( ',' SelectItem )*  | 
                              Referenced by:
                                | 
SelectItemsList¶
         ::= SelectItem ( ',' SelectItem )*  | 
SelectItem¶
         ::= ( AllColumns | ConnectByPriorOperator | AllTableColumns | XorExpression | ConcatExpression | Expression ) Alias?  | 
AllColumns¶
         ::= '*' ( ( 'EXCEPT' | 'EXCLUDE' ) ParenthesedColumnList )? ( 'REPLACE' '(' ColumnSelectItemsList ')' )?  | 
                              Referenced by:
                                | 
AllTableColumns¶
         ::= Table '.' AllColumns  | 
                              Referenced by:
                                | 
Alias¶
Alias    ::= 'AS' RelObjectNameWithoutStart? '(' RelObjectName ColDataType? ( ',' RelObjectName ColDataType? )* ')' 
                    | 'AS'? ( RelObjectNameWithoutStart | S_CHAR_LITERAL ) ( '(' RelObjectName ColDataType? ( ',' RelObjectName ColDataType? )* ')' )?  | 
SQLServerHint¶
         ::= 'INDEX' '(' RelObjectName ')' 
                    | 'NOLOCK'  | 
                              Referenced by:
                                | 
SQLServerHints¶
         ::= 'WITH' '(' SQLServerHint ( ',' SQLServerHint )* ')'  | 
                              Referenced by:
                                | 
MySQLIndexHint¶
         ::= ( 'USE' | 'SHOW' | 'IGNORE' | 'FORCE' ) ( 'INDEX' | 'KEY' ) '(' RelObjectNameWithoutValue ( ',' RelObjectNameWithoutValue )* ')'  | 
                              Referenced by:
                                | 
FunctionItem¶
                              Referenced by:
                                | 
PivotForColumns¶
           | Column  | 
PivotFunctionItems¶
         ::= FunctionItem ( ',' FunctionItem )*  | 
ExpressionListItem¶
                              Referenced by:
                                | 
PivotMultiInItems¶
         ::= ExpressionListItem ( ',' ExpressionListItem )*  | 
Pivot¶
Pivot    ::= 'PIVOT' '(' PivotFunctionItems 'FOR' PivotForColumns 'IN' '(' ( SelectItemsList | PivotMultiInItems ) ')' ')' Alias?  | 
                              Referenced by:
                                | 
PivotXml¶
PivotXml ::= 'PIVOT' 'XML' '(' PivotFunctionItems 'FOR' PivotForColumns 'IN' '(' ( 'ANY' | Select | SelectItemsList | PivotMultiInItems ) ')' ')'  | 
                              Referenced by:
                                | 
UnPivot¶
UnPivot  ::= 'UNPIVOT' ( ( 'INCLUDE' | 'EXCLUDE' ) 'NULLS' )? '(' PivotForColumns 'FOR' PivotForColumns 'IN' '(' SelectItemsList ')' ')' Alias?  | 
                              Referenced by:
                                | 
IntoClause¶
                              Referenced by:
                                | 
ParenthesedFromItem¶
                              Referenced by:
                                | 
FromItem¶
FromItem ::= ( Values | TableFunction | Table | ParenthesedFromItem | ParenthesedSelect Pivot? UnPivot? | LateralSubSelect | Select ) Alias? SampleClause? UnPivot? ( PivotXml | Pivot )? ( MySQLIndexHint | SQLServerHints )?  | 
JoinsList¶
         ::= JoinerExpression+  | 
                              Referenced by:
                                | 
JoinHint¶
JoinHint ::= 'LOOP' 
                    | 'HASH' 
                    | 'MERGE' 
                    | 'REMOTE'  | 
                              Referenced by:
                                | 
JoinerExpression¶
         ::= 'GLOBAL'? 'NATURAL'? ( ( 'RIGHT' | 'FULL' )? 'OUTER'? | 'LEFT' ( 'SEMI'
            | 'OUTER' )? | 'INNER' | 'CROSS' ) ( JoinHint? 'JOIN' | ',' 'OUTER'? | 'STRAIGHT_JOIN' | 'APPLY' ) FromItem ( ( 'WITHIN' '(' JoinWindow ')' )? ( 'ON' Expression )+ | 'USING' '(' Column ( ',' Column )* ')' )?  | 
                              Referenced by:
                                | 
JoinWindow¶
                              Referenced by:
                                | 
KSQLWindowClause¶
         ::= 'WINDOW' ( 'HOPPING' '(' 'SIZE' S_LONG S_IDENTIFIER ',' 'ADVANCE' 'BY' | 'SESSION' '(' | 'TUMBLING' '(' 'SIZE' ) S_LONG S_IDENTIFIER ')'  | 
                              Referenced by:
                                | 
WhereClause¶
         ::= 'WHERE' Expression  | 
OracleHierarchicalQueryClause¶
         ::= ( 'START' 'WITH' AndExpression 'CONNECT' 'BY' 'NOCYCLE'? | 'CONNECT' 'BY' 'NOCYCLE'? ( AndExpression 'START' 'WITH' )? ) AndExpression  | 
                              Referenced by:
                                | 
PreferringClause¶
         ::= 'PREFERRING' PreferenceTerm  | 
                              Referenced by:
                                | 
PreferenceTerm¶
         ::= Plus  | 
                              Referenced by:
                                | 
Plus¶
                              Referenced by:
                                | 
PriorTo¶
PriorTo  ::= ( PreferenceTermTerminal | '(' PreferenceTerm ')' ) ( 'PRIOR' 'TO' ( PreferenceTermTerminal | '(' PreferenceTerm ')' ) )*  | 
                              Referenced by:
                                | 
PreferenceTermTerminal¶
         ::= HighExpression 
         
                    | Inverse 
          | 
                              Referenced by:
                                | 
HighExpression¶
         ::= 'HIGH' Expression  | 
                              Referenced by:
                                | 
LowExpression¶
         ::= 'LOW' Expression  | 
                              Referenced by:
                                | 
Inverse¶
Inverse  ::= 'INVERSE' '(' PreferenceTerm ')'  | 
                              Referenced by:
                                | 
GroupByColumnReferences¶
         ::= 'GROUP' 'BY' ( 'GROUPING' 'SETS' '(' GroupingSet ( ',' GroupingSet )* ')' | ExpressionList ( 'GROUPING' 'SETS' '(' GroupingSet ( ',' GroupingSet )* ')' )? ( 'WITH' 'ROLLUP' )? )  | 
                              Referenced by:
                                | 
GroupingSet¶
                              Referenced by:
                                | 
Having¶
Having   ::= 'HAVING' Expression  | 
                              Referenced by:
                                | 
Qualify¶
Qualify  ::= 'QUALIFY' Expression  | 
                              Referenced by:
                                | 
OrderByElements¶
         ::= 'ORDER' 'SIBLINGS'? 'BY' OrderByElement ( ',' OrderByElement )*  | 
OrderByElement¶
         ::= Expression ( 'ASC' | 'DESC' )? ( 'NULLS' ( 'FIRST' | 'LAST' )? )? ( 'WITH' 'ROLLUP' )?  | 
                              Referenced by:
                                | 
JdbcParameter¶
         ::= ( '?' | S_PARAMETER ) S_LONG?  | 
LimitWithOffset¶
         ::= 'LIMIT' Expression ',' Expression 
          | 
                              Referenced by:
                                | 
PlainLimit¶
         ::= 'LIMIT' ( ParenthesedSelect | Expression )  | 
                              Referenced by:
                                | 
LimitBy¶
                              Referenced by:
                                | 
Offset¶
Offset   ::= 'OFFSET' Expression ( 'ROWS' | 'ROW' )?  | 
                              Referenced by:
                                | 
Fetch¶
Fetch    ::= 'FETCH' ( 'FIRST' | 'NEXT' ) ( Expression 'PERCENT'? )? ( 'ROWS' | 'ROW' ) ( 'ONLY' | 'WITH TIES' )  | 
                              Referenced by:
                                | 
WithIsolation¶
         ::= 'WITH' K_ISOLATION  | 
                              Referenced by:
                                | 
OptimizeFor¶
         ::= 'OPTIMIZE' 'FOR' S_LONG 'ROWS'  | 
                              Referenced by:
                                | 
Top¶
Top      ::= 'TOP' ( S_LONG | JdbcParameter | ':' S_IDENTIFIER? | '(' AdditiveExpression ')' ) 'PERCENT'? 'WITH TIES'?  | 
                              Referenced by:
                                | 
Skip¶
                              Referenced by:
                                | 
First¶
                              Referenced by:
                                | 
Expression¶
XorExpression¶
         ::= OrExpression ( 'XOR' OrExpression )*  | 
                              Referenced by:
                                | 
OrExpression¶
         ::= AndExpression ( 'OR' AndExpression )*  | 
                              Referenced by:
                                | 
AndExpression¶
         ::= ( Condition | ( 'NOT' | '!' )? '(' XorExpression ')' ) ( ( 'AND' | '&&' ) ( Condition | ( 'NOT' | '!' )? '(' XorExpression ')' ) )*  | 
                              Referenced by:
                                | 
Condition¶
         ::= ( 'NOT' | '!' )? ( RegularCondition | SQLCondition )  | 
                              Referenced by:
                                | 
OverlapsCondition¶
         ::= ParenthesedExpressionList 'OVERLAPS' ParenthesedExpressionList  | 
                              Referenced by:
                                | 
RegularCondition¶
         ::= 'PRIOR'? ComparisonItem ( '(' '+' ')' )? ( '>' | '<' | '=' | OP_GREATERTHANEQUALS | OP_MINORTHANEQUALS | OP_NOTEQUALSSTANDARD | OP_NOTEQUALSBANG | OP_NOTEQUALSHAT | '*=' | '=*' | '&&' | '&>' | '<&' | '@@' | '~' | '~*' | '!~' | '!~*' | '@>' | '<@'
            | '?' | '?|' | '?&' | OP_CONCAT | '-' | '-#' | '<->' | '<#>' | '<=>' ) 'PRIOR'? ComparisonItem ( '(' '+' ')' )?  | 
SQLCondition¶
         ::= ExistsExpression 
         
         
          | 
                              Referenced by:
                                | 
InExpression¶
         ::= SimpleExpression ( '(' '+' ')' )? 'GLOBAL'? 'NOT'? 'IN' ( S_CHAR_LITERAL | Function | ParenthesedSelect | ParenthesedExpressionList | SimpleExpression )  | 
                              Referenced by:
                                | 
IncludesExpression¶
         ::= 'INCLUDES' ParenthesedExpressionList  | 
                              Referenced by:
                                | 
ExcludesExpression¶
         ::= 'EXCLUDES' ParenthesedExpressionList  | 
                              Referenced by:
                                | 
Between¶
Between  ::= 'NOT'? 'BETWEEN' ( ParenthesedSelect | RegularCondition | SimpleExpression ) 'AND' ( ParenthesedSelect | RegularCondition | SimpleExpression )  | 
                              Referenced by:
                                | 
LikeExpression¶
         ::= 'NOT'? ( 'LIKE' | 'ILIKE' | 'RLIKE' | 'REGEXP_LIKE' | 'REGEXP' | K_SIMILAR_TO | 'MATCH_ANY' | 'MATCH_ALL' | 'MATCH_PHRASE' | 'MATCH_PHRASE_PREFIX' | 'MATCH_REGEXP'
            ) 'BINARY'? SimpleExpression ( 'ESCAPE' ( S_CHAR_LITERAL | Expression ) )?  | 
                              Referenced by:
                                | 
SimilarToExpression¶
         ::= 'NOT'? 'SIMILAR' 'TO' SimpleExpression ( 'ESCAPE' S_CHAR_LITERAL )?  | 
                              Referenced by:
                                | 
IsDistinctExpression¶
         ::= 'IS' 'NOT'? 'DISTINCT' 'FROM' SimpleExpression  | 
                              Referenced by:
                                | 
IsNullExpression¶
         ::= 'NOT'? 'ISNULL' 
                    | 'NOTNULL' 
                    | 'IS' 'NOT'? 'NULL'  | 
                              Referenced by:
                                | 
IsBooleanExpression¶
         ::= 'IS' 'NOT'? ( 'TRUE' | 'FALSE' )  | 
                              Referenced by:
                                | 
IsUnknownExpression¶
         ::= 'IS' 'NOT'? 'UNKNOWN'  | 
                              Referenced by:
                                | 
ExistsExpression¶
         ::= 'EXISTS' SimpleExpression  | 
                              Referenced by:
                                | 
MemberOfExpression¶
         ::= 'MEMBER' 'OF' Expression  | 
                              Referenced by:
                                | 
ExpressionList¶
ParenthesedExpressionList¶
         ::= '(' ( ComplexExpressionList | SimpleExpressionList )? ')'  | 
SimpleExpressionList¶
                              Referenced by:
                                | 
ColumnList¶
ParenthesedColumnList¶
         ::= '(' ColumnList ')'  | 
                              Referenced by:
                                | 
ComplexExpressionList¶
         ::= ( OracleNamedFunctionParameter | Expression ) ( ',' ( OracleNamedFunctionParameter | LambdaExpression | Expression ) )*  | 
NamedExpressionListExprFirst¶
         ::= SimpleExpression ( 'FROM' | 'IN' | 'PLACING' ) SimpleExpression ( ( 'FOR' | 'FROM' ) SimpleExpression ( 'FOR' SimpleExpression )? )?  | 
                              Referenced by:
                                | 
ComparisonItem¶
                              Referenced by:
                                | 
AnyComparisonExpression¶
         ::= ( 'ANY' | 'SOME' | 'ALL' ) ParenthesedSelect  | 
                              Referenced by:
                                | 
SimpleExpression¶
ConcatExpression¶
                              Referenced by:
                                | 
BitwiseAndOr¶
         ::= AdditiveExpression ( ( '|' | '&' | '<<' | '>>' ) AdditiveExpression )*  | 
                              Referenced by:
                                | 
AdditiveExpression¶
         ::= MultiplicativeExpression ( ( '+' | '-' ) MultiplicativeExpression )*  | 
                              Referenced by:
                                | 
MultiplicativeExpression¶
         ::= BitwiseXor ( ( '*' | '/' | 'DIV' | '%' ) BitwiseXor )*  | 
                              Referenced by:
                                | 
BitwiseXor¶
         ::= PrimaryExpression ( '^' PrimaryExpression )*  | 
                              Referenced by:
                                | 
ArrayExpression¶
         ::= ( '[' SimpleExpression? ( ':' SimpleExpression? )? ']' )+  | 
                              Referenced by:
                                | 
PrimaryExpression¶
         ::= ( 'NOT' | '!' )? ( '+' | '-' | '~' )? ( 'NULL' | CaseWhenExpression | CharacterPrimary | ImplicitCast | JdbcParameter | JdbcNamedParameter | UserVariable | NumericBind | ExtractExpression | MySQLGroupConcat | XMLSerializeExpr | JsonFunction | JsonAggregateFunction | FullTextSearch | Function AnalyticExpression? | IntervalExpression | S_DOUBLE | S_LONG | S_HEX | CastExpression | K_TIME_KEY_EXPR | 'CURRENT' | DateTimeLiteralExpression | StructType | 'ARRAY'? ArrayConstructor | NextValExpression | ConnectByRootOperator | 'ALL' | Column | 'TRUE' | 'FALSE' | S_CHAR_LITERAL | ( '{d' | '{t' | '{ts' ) S_CHAR_LITERAL '}' | Select | ParenthesedSelect | ParenthesedExpressionList ( '->' Expression )? ( '.' RelObjectNameExt )? ) ( 'COLLATE' S_IDENTIFIER )? IntervalExpressionWithoutInterval? ArrayExpression? ( '::' ColDataType )* ( ( ( '->' | ':' | '->>' | '#>' | '#>>' ) Expression )+ JsonExpression )? ( 'AT' K_DATETIMELITERAL 'ZONE' PrimaryExpression )*  | 
                              Referenced by:
                                | 
ConnectByRootOperator¶
         ::= 'CONNECT_BY_ROOT' Column  | 
                              Referenced by:
                                | 
ConnectByPriorOperator¶
         ::= 'PRIOR' Column  | 
                              Referenced by:
                                | 
NextValExpression¶
                              Referenced by:
                                | 
JdbcNamedParameter¶
         ::= ( ':' | '&' ) IdentifierChain  | 
                              Referenced by:
                                | 
OracleNamedFunctionParameter¶
         ::= ( RelObjectNameExt2 | 'OUTER' ) '=>' Expression  | 
                              Referenced by:
                                | 
UserVariable¶
         ::= ( '@' | '@@' ) IdentifierChain  | 
NumericBind¶
         ::= ':' S_LONG  | 
                              Referenced by:
                                | 
DateTimeLiteralExpression¶
                              Referenced by:
                                | 
RangeExpression¶
         ::= ':' Expression  | 
                              Referenced by:
                                | 
ArrayConstructor¶
         ::= '[' ( ( Expression RangeExpression? | ArrayConstructor ) ( ',' ( Expression RangeExpression? | ArrayConstructor ) )* )? ']'  | 
                              Referenced by:
                                | 
StructParameters¶
                              Referenced by:
                                | 
StructType¶
         ::= 'STRUCT' ( '<' StructParameters '>' )? '(' SelectItemsList ')' 
                    | '{' RelObjectName ':' Expression ( ',' RelObjectName ':' Expression )* '}' ( '::' 'STRUCT' '(' StructParameters ')' )*  | 
                              Referenced by:
                                | 
JsonExpression¶
         ::= ( ( '::' ColDataType )+ ( ( '->' | ':' | '->>' | '#>' | '#>>' ) Expression )* )*  | 
                              Referenced by:
                                | 
JsonFunction¶
         ::= ( 'JSON_OBJECT' '(' ( 'KEY'? ( S_CHAR_LITERAL | Column ) ( ( ':' | ',' | 'VALUE' ) Expression ( 'FORMAT' 'JSON' )? )? ( ',' 'KEY'? ( S_CHAR_LITERAL | Column ) ( ':' | ',' | 'VALUE' ) Expression ( 'FORMAT' 'JSON' )? )* )? ( ( 'NULL' | 'ABSENT' ) 'ON' 'NULL' )? ( ( 'WITH' | 'WITHOUT'
            ) 'UNIQUE' 'KEYS' )? | 'JSON_ARRAY' '(' ( 'NULL' 'ON' 'NULL' | Expression ( 'FORMAT' 'JSON' )? ( ',' Expression ( 'FORMAT' 'JSON' )? )* )* ( 'ABSENT' 'ON' 'NULL' )? ) ')'  | 
                              Referenced by:
                                | 
JsonAggregateFunction¶
         ::= ( 'JSON_OBJECTAGG' '(' 'KEY'? ( DT_ZONE | S_DOUBLE | S_LONG | S_HEX | S_CHAR_LITERAL | Column ) ( ':' | ',' | 'VALUE' ) Expression ( 'FORMAT' 'JSON' )? ( ( 'NULL' | 'ABSENT' ) 'ON' 'NULL' )? ( ( 'WITH' | 'WITHOUT'
            ) 'UNIQUE' 'KEYS' )? | 'JSON_ARRAYAGG' '(' Expression ( 'FORMAT' 'JSON' )? OrderByElements? ( ( 'NULL' | 'ABSENT' ) 'ON' 'NULL' )? ) ')' ( 'FILTER' '(' 'WHERE' Expression ')' )? ( 'OVER' '(' ( 'PARTITION' 'BY' ( ComplexExpressionList | '(' ComplexExpressionList ')' ) )? OrderByElements? WindowElement? ')' )?  | 
                              Referenced by:
                                | 
IntervalExpression¶
         ::= 'INTERVAL' '-'? ( S_LONG | S_DOUBLE | S_CHAR_LITERAL | JdbcParameter | JdbcNamedParameter | Function | Column ) ( S_IDENTIFIER | K_DATE_LITERAL )?  | 
                              Referenced by:
                                | 
IntervalExpressionWithoutInterval¶
         ::= K_DATE_LITERAL  | 
                              Referenced by:
                                | 
KeepExpression¶
         ::= 'KEEP' '(' S_IDENTIFIER ( 'FIRST' | 'LAST' ) OrderByElements ')'  | 
                              Referenced by:
                                | 
windowFun¶
         ::= ( 'OVER' | 'WITHIN' 'GROUP' ) ( RelObjectName | windowDefinition ( 'OVER' '(' ( 'PARTITION' 'BY' ( ComplexExpressionList | '(' ComplexExpressionList ')' ) )? ')' )? )  | 
                              Referenced by:
                                | 
windowDefinition¶
         ::= '(' ( 'PARTITION' 'BY' ( ComplexExpressionList | '(' ComplexExpressionList ')' ) )? OrderByElements? WindowElement? ')'  | 
                              Referenced by:
                                | 
AnalyticExpression¶
         ::= 'FILTER' '(' 'WHERE' Expression ')' windowFun? 
          | 
                              Referenced by:
                                | 
WindowElement¶
         ::= ( 'ROWS' | 'RANGE' ) ( 'BETWEEN' WindowOffset 'AND' )? WindowOffset  | 
                              Referenced by:
                                | 
WindowOffset¶
         ::= ( 'UNBOUNDED' | SimpleExpression ) ( 'PRECEDING' | 'FOLLOWING' ) 
                    | 'CURRENT' 'ROW'  | 
                              Referenced by:
                                | 
ExtractExpression¶
                              Referenced by:
                                | 
ImplicitCast¶
                              Referenced by:
                                | 
CastExpression¶
         ::= ( 'CAST' | 'SAFE_CAST' | 'TRY_CAST' | 'INTERPRET' ) '(' SimpleExpression 'AS' ( 'ROW' '(' ColumnDefinition ( ',' ColumnDefinition )* ')' | ColDataType ) ( 'FORMAT' S_CHAR_LITERAL )? ')'  | 
                              Referenced by:
                                | 
CaseWhenExpression¶
                              Referenced by:
                                | 
WhenThenSearchCondition¶
                              Referenced by:
                                | 
RowConstructor¶
         ::= 'ROW' ParenthesedExpressionList  | 
                              Referenced by:
                                | 
VariableExpression¶
         ::= UserVariable '=' SimpleExpression  | 
                              Not referenced by any.
                            | 
Execute¶
                              Referenced by:
                                | 
FullTextSearch¶
         ::= 'MATCH' '(' ColumnList ')' 'AGAINST' '(' ( S_CHAR_LITERAL | JdbcParameter | JdbcNamedParameter ) ( 'IN NATURAL LANGUAGE MODE' | 'IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION'
            | 'IN BOOLEAN MODE' | 'WITH QUERY EXPANSION' )? ')'  | 
                              Referenced by:
                                | 
LambdaExpression¶
                              Referenced by:
                                | 
Function¶
Function ::= '{' 'FN' InternalFunction '}' 
         
          | 
SpecialStringFunctionWithNamedParameters¶
                              Referenced by:
                                | 
InternalFunction¶
         ::= 'APPROXIMATE'? RelObjectNames '(' ( ( 'DISTINCT' | 'ALL' | 'UNIQUE' )? ( '*' | AllTableColumns | 'TABLE'? ExpressionList OrderByElements? ( 'ON' 'OVERFLOW' ( 'TRUNCATE' | 'ERROR' ) ( S_CHAR_LITERAL ( ( 'WITH' | 'WITHOUT' ) 'COUNT' )? )? )? | Select ) )? ( 'HAVING' ( 'MIN' | 'MAX' ) Expression )? ( ( 'IGNORE' | 'RESPECT' ) 'NULLS' )? PlainLimit? ')' ( '.' ( Function | Column ) )? ( ( 'IGNORE' | 'RESPECT' ) 'NULLS' )? KeepExpression?  | 
                              Referenced by:
                                | 
XMLSerializeExpr¶
         ::= 'XMLSERIALIZE' '(' 'XMLAGG' '(' 'XMLTEXT' '(' SimpleExpression ')' OrderByElements? ')' 'AS' ColDataType ')'  | 
                              Referenced by:
                                | 
MySQLGroupConcat¶
         ::= 'GROUP_CONCAT' '(' 'DISTINCT'? ExpressionList OrderByElements? ( 'SEPARATOR' S_CHAR_LITERAL )? ')'  | 
                              Referenced by:
                                | 
TableFunction¶
         ::= 'LATERAL'? Function  | 
                              Referenced by:
                                | 
ColumnNamesWithParamsList¶
                              Referenced by:
                                | 
Index¶
Index    ::= RelObjectNames  | 
                              Referenced by:
                                | 
CreateIndex¶
         ::= CreateParameter? 'INDEX' ( 'IF' 'NOT' 'EXISTS' )? Index ( 'ON' Table ( 'USING' S_IDENTIFIER )? | ( 'USING' S_IDENTIFIER )? 'ON' Table ) ColumnNamesWithParamsList CreateParameter*  | 
                              Referenced by:
                                | 
ColumnDefinition¶
                              Referenced by:
                                | 
CreateSchema¶
         ::= 'SCHEMA' ( 'IF' 'NOT' 'EXISTS' )? ( S_IDENTIFIER | S_QUOTED_IDENTIFIER )? ( 'AUTHORIZATION' ( S_IDENTIFIER | S_QUOTED_IDENTIFIER ) )? PathSpecification? ( 'CREATE' CreateTable | CreateView )*  | 
                              Referenced by:
                                | 
PathSpecification¶
                              Referenced by:
                                | 
CreateTable¶
         ::= 'UNLOGGED'? 'GLOBAL'? CreateParameter* 'TABLE' ( 'IF' 'NOT' 'EXISTS' )? Table ( '(' ( RelObjectName ( ',' RelObjectName )* | ColumnDefinition ( ',' ( ( 'INDEX' | 'UNIQUE'? 'FULLTEXT'? 'KEY' ) RelObjectName ColumnNamesWithParamsList CreateParameter* | ( 'CONSTRAINT' RelObjectName )? ( ( 'PRIMARY' 'KEY' | 'UNIQUE' 'KEY'? ) ColumnNamesWithParamsList CreateParameter* | 'FOREIGN' 'KEY' ColumnNamesWithParamsList 'REFERENCES' Table ColumnsNamesList ( 'ON' ( 'DELETE' | 'UPDATE' ) Action )? ( 'ON' ( 'DELETE' | 'UPDATE' ) Action )? | 'CHECK' ( '(' Expression ')' )* ) | 'EXCLUDE' 'WHERE' ( '(' Expression ')' )* | ColumnDefinition ) )* ) ')' )? CreateParameter* RowMovement? ( 'AS' Select )? ( 'LIKE' ( '(' Table ')' | Table ) )? ( ',' SpannerInterleaveIn )?  | 
                              Referenced by:
                                | 
SpannerInterleaveIn¶
         ::= 'INTERLEAVE' 'IN' 'PARENT' Table ( 'ON' 'DELETE' ( 'NO' 'ACTION' | 'CASCADE' ) )?  | 
                              Referenced by:
                                | 
DataType¶
           | 'ARRAY' '<' ColDataType '>' 
                    | ( K_DATETIMELITERAL | DT_ZONE | DATA_TYPE | 'SIGNED' | 'UNSIGNED' | 'CHARACTER' | 'BIT' | 'BYTES' | 'BINARY' | 'CHAR' | 'JSON'
            | 'STRING' ) ( DATA_TYPE | 'SIGNED' | 'UNSIGNED' | 'CHARACTER' | 'BIT' | 'BYTES' | 'BINARY' | 'CHAR' | 'JSON'
            | 'STRING' )* ( '(' ( S_LONG | 'MAX' ) ( ',' S_LONG )? ')' )?  | 
                              Referenced by:
                                | 
ColDataType¶
         ::= ( DataType | ( S_IDENTIFIER | S_QUOTED_IDENTIFIER | K_DATETIMELITERAL | K_DATE_LITERAL | 'XML' | 'INTERVAL' | DT_ZONE | 'CHAR' | 'SET' | 'BINARY' | 'JSON' | 'STRING' | 'PUBLIC' | 'DATA' ) ( '.' ColDataType )? ) ( '(' ( ( ( S_LONG | 'MAX' ) ( 'BYTE' | 'CHAR' )? | S_CHAR_LITERAL | S_IDENTIFIER | 'CHAR' ) ','? )* ')' )? ( '[' S_LONG? ']' )* ( 'CHARACTER' 'SET' ( S_IDENTIFIER | 'BINARY' ) )?  | 
Analyze¶
                              Referenced by:
                                | 
CreateView¶
         ::= ( 'NO'? 'FORCE' )? 'SECURE'? ( 'TEMP' | 'TEMPORARY' | 'VOLATILE' )? 'MATERIALIZED'?
            'VIEW' Table ( 'AUTO' 'REFRESH' ( 'YES' | 'NO' ) )? ( 'IF' 'NOT' 'EXISTS' )? ColumnWithCommentList? CreateViewTailComment? 'AS' Select ( 'WITH' 'READ' 'ONLY' )?  | 
                              Referenced by:
                                | 
CreateViewTailComment¶
         ::= 'COMMENT' '='? S_CHAR_LITERAL  | 
                              Referenced by:
                                | 
Action¶
Action   ::= 'CASCADE' 
                    | 'RESTRICT' 
                    | 'NO' 'ACTION' 
                    | 'SET' ( 'NULL' | 'DEFAULT' )  | 
                              Referenced by:
                                | 
AlterView¶
                              Referenced by:
                                | 
CreateParameter¶
           | ( 'USING' 'INDEX' )? 'TABLESPACE' RelObjectName 
         
                    | 'NULL' 
                    | 'NOT' 
                    | 'AUTO_INCREMENT' 
                    | 'PRIMARY' 
                    | 'FOREIGN' 
                    | 'REFERENCES' 
                    | 'KEY' 
                    | 'STORED' 
                    | 'ON' 
                    | 'COMMIT' 
                    | 'DROP' 
                    | 'ROWS' 
                    | 'UNIQUE' 
                    | 'CASCADE' 
                    | 'DELETE' 
                    | 'UPDATE' 
                    | 'CONSTRAINT' 
                    | 'WITH' 
                    | 'EXCLUDE' 
                    | 'WHERE' 
                    | 'TEMP' 
                    | 'TEMPORARY' 
                    | 'PARTITION' 
                    | 'BY' 
                    | 'IN' 
                    | 'TYPE' 
                    | 'COMMENT' 
                    | 'USING' 
                    | 'COLLATE' 
                    | 'ASC' 
                    | 'DESC' 
                    | 'TRUE' 
                    | 'FALSE' 
                    | 'PARALLEL' 
                    | 'BINARY' 
                    | 'START' 
         
                    | 'RAW' 
                    | 'HASH' 
                    | 'FIRST' 
                    | 'LAST' 
                    | 'SIGNED' 
                    | 'UNSIGNED' 
                    | 'ENGINE' 
                    | '=' 
                    | ( 'DEFAULT' | 'AS' | 'CHECK' ) ( '(' Expression ')' )? 
                    | ( '+' | '-' )? S_LONG 
                    | S_DOUBLE 
                    | AList 
                    | 'CHARACTER' 'SET' 
                    | 'ARRAY' ArrayConstructor 
                    | '::' ColDataType  | 
RowMovement¶
         ::= ( 'ENABLE' | 'DISABLE' ) 'ROW' 'MOVEMENT'  | 
                              Referenced by:
                                | 
AList¶
AList    ::= '(' ( ( S_LONG | S_DOUBLE | S_CHAR_LITERAL | 'TRUE' | 'FALSE' | RelObjectNameWithoutValue ) ( ',' | '=' )? )* ')'  | 
                              Referenced by:
                                | 
ColumnsNamesListItem¶
         ::= RelObjectName ( '(' S_LONG ')' )?  | 
                              Referenced by:
                                | 
ColumnsNamesList¶
         ::= '(' ColumnsNamesListItem ( ',' ColumnsNamesListItem )* ')'  | 
                              Referenced by:
                                | 
FuncArgsListItem¶
                              Referenced by:
                                | 
FuncArgsList¶
         ::= '(' ( FuncArgsListItem ( ',' FuncArgsListItem )* )? ')'  | 
                              Referenced by:
                                | 
Drop¶
Drop     ::= 'DROP' 'MATERIALIZED'? ( S_IDENTIFIER | 'TEMPORARY'? 'TABLE' | 'INDEX' | 'VIEW' | 'SCHEMA' | 'SEQUENCE' | 'FUNCTION' )
            ( 'IF' 'EXISTS' )? Table FuncArgsList? ( S_IDENTIFIER | 'CASCADE' | 'RESTRICT' | 'ON' )*  | 
                              Referenced by:
                                | 
Truncate¶
                              Referenced by:
                                | 
AlterExpressionColumnDataType¶
                              Referenced by:
                                | 
AlterExpressionColumnDropNotNull¶
         ::= RelObjectName 'DROP' 'NOT'? 'NULL'  | 
                              Referenced by:
                                | 
AlterExpressionColumnDropDefault¶
         ::= RelObjectName 'DROP' 'DEFAULT'  | 
                              Referenced by:
                                | 
AlterExpressionConstraintState¶
         ::= ( 'NOT'? 'DEFERRABLE' | 'VALIDATE' | 'NOVALIDATE' | 'ENABLE' | 'DISABLE'
            )*  | 
                              Referenced by:
                                | 
IndexWithComment¶
         ::= 'COMMENT' S_CHAR_LITERAL  | 
                              Referenced by:
                                | 
PartitionDefinitions¶
         ::= '(' ( 'PARTITION' RelObjectName 'VALUES' 'LESS' 'THAN' ( '(' ( S_CHAR_LITERAL | S_LONG ','? )* ')' | 'MAXVALUE' ) ( 'ENGINE' '=' S_IDENTIFIER )? ','? )* ')'  | 
                              Referenced by:
                                | 
PartitionNamesList¶
         ::= S_IDENTIFIER ( ',' S_IDENTIFIER )*  | 
                              Referenced by:
                                | 
AlterExpression¶
         ::= ( 'ADD' | 'ALTER' | 'MODIFY' ) ( 'PRIMARY' 'KEY' ColumnsNamesList AlterExpressionConstraintState ( 'USING' RelObjectName )? | ( ( 'KEY' | 'INDEX' ) RelObjectName ColumnsNamesList AlterExpressionConstraintState | 'UNIQUE' ( ( 'KEY' | 'INDEX' ) ( S_IDENTIFIER | S_QUOTED_IDENTIFIER ) )? ColumnsNamesList ) ( 'USING' RelObjectName )? IndexWithComment? | RelObjectName 'COMMENT' S_CHAR_LITERAL | 'PARTITION' PartitionDefinitions | ( 'COLUMN' | 'COLUMNS' )? ( 'IF' 'NOT' 'EXISTS' )? ( '(' AlterExpressionColumnDataType ( ',' AlterExpressionColumnDataType )* ')' | AlterExpressionColumnDataType | AlterExpressionColumnDropNotNull | AlterExpressionColumnDropDefault ) | '(' AlterExpressionColumnDataType ( ',' AlterExpressionColumnDataType )* ')' | 'FOREIGN' 'KEY' ColumnsNamesList 'REFERENCES' Table ColumnsNamesList? ( 'ON' ( 'DELETE' | 'UPDATE' ) Action )? ( 'ON' ( 'DELETE' | 'UPDATE' ) Action )? | 'CONSTRAINT' RelObjectName ( ( 'FOREIGN' 'KEY' ColumnsNamesList 'REFERENCES' Table ColumnsNamesList? ( 'ON' ( 'DELETE' | 'UPDATE' ) Action )? ( 'ON' ( 'DELETE' | 'UPDATE' ) Action )? | 'KEY' ColumnsNamesList ) AlterExpressionConstraintState | ( 'PRIMARY' 'KEY' | 'UNIQUE' ( 'KEY' | 'INDEX' )? ) ColumnsNamesList AlterExpressionConstraintState ( 'USING' RelObjectName )? IndexWithComment? | 'CHECK' ( '(' Expression ')' )* ) ) 
         
                    | 'DROP' ( 'PARTITION' PartitionNamesList | ( ColumnsNamesList | 'COLUMN'? ( 'IF' 'EXISTS' )? ( S_IDENTIFIER | S_QUOTED_IDENTIFIER ) ) 'INVALIDATE'? ( 'CASCADE' 'CONSTRAINTS'? )? | ( 'INDEX' | 'KEY' ) ( S_IDENTIFIER | S_QUOTED_IDENTIFIER ) | ( ( 'UNIQUE' | 'FOREIGN' 'KEY' ) ColumnsNamesList | 'PRIMARY' 'KEY' | 'CONSTRAINT' ( 'IF' 'EXISTS' )? ( S_IDENTIFIER | S_QUOTED_IDENTIFIER ) ) ( 'CASCADE' | 'RESTRICT' )? ) 
                    | 'FORCE' 
                    | ( 'ALGORITHM' | 'LOCK' | 'ENGINE' ) '='? RelObjectName 
                    | 'RENAME' ( ( 'COLUMN' | 'INDEX' | 'KEY' | 'CONSTRAINT' )? ( S_IDENTIFIER | S_QUOTED_IDENTIFIER ) )? 'TO' ( S_IDENTIFIER | S_QUOTED_IDENTIFIER ) 
                    | ( 'CONVERT' 'TO' 'CHARACTER' 'SET' ( S_IDENTIFIER 'COLLATE' )? | 'DEFAULT'? 'CHARACTER' 'SET' '='? ( S_IDENTIFIER 'COLLATE' '='? )? ) S_IDENTIFIER 
                    | ( 'COMMENT' | 'ENCRYPTION' ) '='? S_CHAR_LITERAL 
                    | 'AUTO_INCREMENT' '='? S_LONG 
                    | 'TRUNCATE' 'PARTITION' PartitionNamesList 
          | 
                              Referenced by:
                                | 
Alter¶
Alter    ::= 'ALTER' ( AlterTable | AlterSession | AlterView | AlterSystemStatement | AlterSequence | captureRest ) 
                    | 'REPLACE' ( AlterView | captureRest )  | 
                              Referenced by:
                                | 
AlterTable¶
                              Referenced by:
                                | 
AlterSession¶
         ::= 'SESSION' ( 'ADVISE' ( 'COMMIT' | 'ROLLBACK' | 'NOTHING' ) | 'CLOSE'
            'DATABASE' 'LINK' | ( 'ENABLE' | 'DISABLE' ) ( 'COMMIT' 'IN' 'PROCEDURE' | 'GUARD'
            | 'PARALLEL' ( 'DML' | 'DDL' | 'QUERY' ) | 'RESUMABLE' ) | 'FORCE' 'PARALLEL' ( 'DML'
            | 'DDL' | 'QUERY' ) | 'SET' ) ( S_CHAR_LITERAL | S_IDENTIFIER | '=' | S_LONG | 'PARALLEL' )*  | 
                              Referenced by:
                                | 
AlterSystemStatement¶
         ::= 'SYSTEM' ( 'ARCHIVE' 'LOG' | 'CHECKPOINT' | 'DUMP' 'ACTIVE' 'SESSION'
            'HISTORY' | ( 'ENABLE' | 'DISABLE' ) ( 'DISTRIBUTED RECOVERY' | 'RESTRICTED SESSION'
            ) | 'FLUSH' | 'DISCONNECT' 'SESSION' | 'KILL SESSION' | 'SWITCH' | 'SUSPEND' | 'RESUME'
            | 'QUIESCE' 'RESTRICTED' | 'UNQIESCE' | 'SHUTDOWN' | 'REGISTER' | 'SET' | 'RESET'
            ) captureRest  | 
                              Referenced by:
                                | 
Wait¶
                              Referenced by:
                                | 
SavepointStatement¶
         ::= 'SAVEPOINT' S_IDENTIFIER  | 
                              Referenced by:
                                | 
RollbackStatement¶
         ::= 'ROLLBACK' 'WORK'? ( 'TO' 'SAVEPOINT'? S_IDENTIFIER | 'FORCE' S_CHAR_LITERAL )?  | 
                              Referenced by:
                                | 
Comment¶
                              Referenced by:
                                | 
Grant¶
Grant    ::= 'GRANT' ( ( readGrantTypes ( ',' readGrantTypes )* )? 'ON' RelObjectNames | S_IDENTIFIER ) 'TO' UsersList  | 
                              Referenced by:
                                | 
UsersList¶
         ::= RelObjectName ( ',' ColumnsNamesListItem )*  | 
                              Referenced by:
                                | 
readGrantTypes¶
         ::= K_SELECT 
                    | 'INSERT' 
                    | 'UPDATE' 
                    | 'DELETE' 
                    | 'EXECUTE' 
                    | 'ALTER' 
                    | 'DROP'  | 
                              Referenced by:
                                | 
Sequence¶
                              Referenced by:
                                | 
SequenceParameters¶
                              Referenced by:
                                | 
CreateSequence¶
         ::= 'SEQUENCE' Sequence SequenceParameters  | 
                              Referenced by:
                                | 
AlterSequence¶
         ::= 'SEQUENCE' Sequence SequenceParameters  | 
                              Referenced by:
                                | 
Create¶
Create   ::= 'CREATE' ( 'OR' 'REPLACE' )? ( CreateFunctionStatement | CreateSchema | CreateSequence | CreateSynonym | CreateTable | CreateView | ( 'TRIGGER' | 'DOMAIN' )? captureRest | CreateIndex )  | 
                              Referenced by:
                                | 
CreateFunctionStatement¶
         ::= ( 'FUNCTION' | 'PROCEDURE' ) captureFunctionBody  | 
                              Referenced by:
                                | 
CreateSynonym¶
         ::= 'PUBLIC'? 'SYNONYM' Synonym 'FOR' RelObjectNames  | 
                              Referenced by:
                                | 
Synonym¶
                              Referenced by:
                                | 
UnsupportedStatement¶
                              Referenced by:
                                | 
IdentifierChain¶
         ::= RelObjectNameExt2 ( '.' RelObjectNameExt2 )*  | 
                              Referenced by:
                                | 
CharacterPrimary¶
                              Referenced by:
                                | 
TranscodingFunction¶
         ::= 'CONVERT' '(' ( ColDataType ',' Expression ( ',' S_LONG )? | Expression 'USING' IdentifierChain ) ')'  | 
                              Referenced by:
                                | 
TrimFunction¶
         ::= 'TRIM' '(' ( 'LEADING' | 'TRAILING' | 'BOTH' )? Expression? ( ( ',' | 'FROM' ) Expression )? ')'  | 
                              Referenced by:
                                | 
WHITESPACE¶
         ::= [ #x9#xD#xA]  | 
K_DATETIMELITERAL¶
         ::= 'DATE' 
                    | 'DATETIME' 
                    | 'TIME' 
                    | 'TIMESTAMP' 
                    | 'TIMESTAMPTZ'  | 
K_DATE_LITERAL¶
         ::= 'YEAR' 
                    | 'MONTH' 
                    | 'DAY' 
                    | 'HOUR' 
                    | 'MINUTE' 
                    | 'SECOND'  | 
K_ISOLATION¶
         ::= 'UR' 
                    | 'RS' 
                    | 'RR' 
                    | 'CS'  | 
                              Referenced by:
                                | 
K_NEXTVAL¶
         ::= 'NEXTVAL' ( ' '+ 'FOR' )? 
                    | 'NEXT' ' '+ 'VALUE' ' '+ 'FOR'  | 
                              Referenced by:
                                | 
K_SELECT¶
K_SELECT ::= 'SELECT' 
                    | 'SEL'  | 
                              Referenced by:
                                | 
K_TEXT_LITERAL¶
         ::= 'TEXT' 
                    | 'TINYTEXT' 
                    | 'MEDIUMTEXT' 
                    | 'LONGTEXT'  | 
                              Referenced by:
                                | 
K_TIME_KEY_EXPR¶
         ::= 'CURRENT' ( '_' | ' '+ ) ( 'TIMESTAMP' | 'TIME' | 'DATE' | 'TIMEZONE'
            ) '()'?  | 
                              Referenced by:
                                | 
K_STRING_FUNCTION_NAME¶
         ::= 'SUBSTR' 
                    | 'SUBSTRING' 
                    | 'TRIM' 
                    | 'POSITION' 
                    | 'OVERLAY'  | 
K_SIMILAR_TO¶
         ::= 'SIMILAR' ' '+ 'TO'  | 
                              Referenced by:
                                | 
ST_SEMICOLON¶
         ::= ';' 
                    | #xA ( [/#xA] | 'go' ) #xA  | 
                              Referenced by:
                                | 
OP_GREATERTHANEQUALS¶
         ::= '>' WHITESPACE* '='  | 
                              Referenced by:
                                | 
OP_MINORTHANEQUALS¶
         ::= '<' WHITESPACE* '='  | 
                              Referenced by:
                                | 
OP_NOTEQUALSSTANDARD¶
         ::= '<' WHITESPACE* '>'  | 
                              Referenced by:
                                | 
OP_NOTEQUALSBANG¶
         ::= '!' WHITESPACE* '='  | 
                              Referenced by:
                                | 
OP_NOTEQUALSHAT¶
         ::= '^' WHITESPACE* '='  | 
                              Referenced by:
                                | 
OP_CONCAT¶
         ::= '|' WHITESPACE* '|'  | 
                              Referenced by:
                                | 
DT_ZONE¶
DT_ZONE  ::= K_DATETIMELITERAL WHITESPACE* ( '(' S_LONG ')' )? WHITESPACE* ( 'WITH' | 'WITHOUT' ) WHITESPACE+ ( 'LOCAL' WHITESPACE+ )? 'TIME' WHITESPACE+ 'ZONE'  | 
                              Referenced by:
                                | 
DATA_TYPE¶
         ::= 'BISTRING' 
         
         
                    | 'ENUM' 
         
         
                    | 'UUID' 
                    | 'MAP' 
         
         
         
         
                    | 'HUGEINT' 
                    | 'UTINYINT' 
                    | 'USMALLINT' 
                    | 'UINTEGER' 
                    | 'UBIGINT' 
                    | 'UHUGEINT' 
         
         
                    | 'TIMETZ' 
          | 
                              Referenced by:
                                | 
TYPE_BLOB¶
         ::= 'BLOB' 
                    | 'BYTEA' 
                    | 'BINARY' 
                    | 'VARBINARY' 
                    | 'BYTES'  | 
                              Referenced by:
                                | 
TYPE_BOOLEAN¶
         ::= 'BOOLEAN' 
                    | 'BOOL'  | 
                              Referenced by:
                                | 
TYPE_DECIMAL¶
         ::= 'DECIMAL' 
                    | 'NUMBER' 
                    | 'NUMERIC'  | 
                              Referenced by:
                                | 
TYPE_TINYINT¶
         ::= 'TINYINT' 
                    | 'INT1'  | 
                              Referenced by:
                                | 
TYPE_SMALLINT¶
         ::= 'SMALLINT' 
                    | 'INT2' 
                    | 'SHORT'  | 
                              Referenced by:
                                | 
TYPE_INTEGER¶
         ::= 'INTEGER' 
                    | 'INT' 
                    | 'INT4' 
                    | 'SIGNED' 
                    | 'UNSIGNED'  | 
                              Referenced by:
                                | 
TYPE_BIGINT¶
         ::= 'BIGINT' 
                    | 'INT8' 
                    | 'LONG'  | 
                              Referenced by:
                                | 
TYPE_REAL¶
         ::= 'REAL' 
                    | 'FLOAT4' 
                    | 'FLOAT'  | 
                              Referenced by:
                                | 
TYPE_DOUBLE¶
         ::= 'DOUBLE' 
                    | 'PRECISION' 
                    | 'FLOAT8' 
                    | 'FLOAT64'  | 
                              Referenced by:
                                | 
TYPE_VARCHAR¶
         ::= 'NVARCHAR' 
                    | 'VARCHAR' 
                    | 'NCHAR' 
                    | 'CHAR' 
                    | 'BPCHAR' 
                    | 'TEXT' 
                    | 'STRING' 
                    | 'CHARACTER' 
                    | 'VARYING'  | 
                              Referenced by:
                                | 
TYPE_TIMESTAMP¶
         ::= 'TIMESTAMP_NS' 
                    | 'TIMESTAMP_MS' 
                    | 'TIMESTAMP_S'  | 
                              Referenced by:
                                | 
S_DOUBLE¶
S_LONG¶
DIGIT¶
DIGIT    ::= [0-9]  | 
                              Referenced by:
                                | 
S_HEX¶
           | '0x' HEX_VALUE+  | 
                              Referenced by:
                                | 
HEX_VALUE¶
         ::= [0-9A-F ]  | 
                              Referenced by:
                                | 
LINE_COMMENT¶
         ::= ( '--' | '//' ) [^#xD#xA]*  | 
                              Not referenced by any.
                            | 
MULTI_LINE_COMMENT¶
         ::= '/*' [^*]* '*' ( ( [^*/] [^*]* )? '*' )* '/'  | 
                              Not referenced by any.
                            | 
S_PARAMETER¶
         ::= '$' [0-9]+  | 
                              Referenced by:
                                | 
S_IDENTIFIER¶
LETTER¶
           | Nd 
                    | [$_#x23]  | 
                              Referenced by:
                                | 
PART_LETTER¶
           | [$_@#x23]  | 
                              Referenced by:
                                | 
UnicodeIdentifierStart¶
         ::= #xB7 
                    | Ll 
                    | Lm 
                    | Lo 
                    | Lt 
                    | Lu 
                    | Nl 
                    | CJK  | 
                              Referenced by:
                                | 
Ll¶
Ll       ::= [a-z#xB5#xDF-#xF6#xF8-#xFF#x101#x103#x105#x107#x109#x10B#x10D#x10F#x111#x113#x115#x117#x119#x11B#x11D#x11F#x121#x123#x125#x127#x129#x12B#x12D#x12F#x131#x133#x135#x137-#x138#x13A#x13C#x13E#x140#x142#x144#x146#x148-#x149#x14B#x14D#x14F#x151#x153#x155#x157#x159#x15B#x15D#x15F#x161#x163#x165#x167#x169#x16B#x16D#x16F#x171#x173#x175#x177#x17A#x17C#x17E-#x180#x183#x185#x188#x18C-#x18D#x192#x195#x199-#x19B#x19E#x1A1#x1A3#x1A5#x1A8#x1AA-#x1AB#x1AD#x1B0#x1B4#x1B6#x1B9-#x1BA#x1BD-#x1BF#x1C6#x1C9#x1CC#x1CE#x1D0#x1D2#x1D4#x1D6#x1D8#x1DA#x1DC-#x1DD#x1DF#x1E1#x1E3#x1E5#x1E7#x1E9#x1EB#x1ED#x1EF-#x1F0#x1F3#x1F5#x1F9#x1FB#x1FD#x1FF#x201#x203#x205#x207#x209#x20B#x20D#x20F#x211#x213#x215#x217#x219#x21B#x21D#x21F#x221#x223#x225#x227#x229#x22B#x22D#x22F#x231#x233-#x239#x23C#x23F-#x240#x242#x247#x249#x24B#x24D#x24F-#x293#x295-#x2AF#x371#x373#x377#x37B-#x37D#x390#x3AC-#x3CE#x3D0-#x3D1#x3D5-#x3D7#x3D9#x3DB#x3DD#x3DF#x3E1#x3E3#x3E5#x3E7#x3E9#x3EB#x3ED#x3EF-#x3F3#x3F5#x3F8#x3FB-#x3FC#x430-#x45F#x461#x463#x465#x467#x469#x46B#x46D#x46F#x471#x473#x475#x477#x479#x47B#x47D#x47F#x481#x48B#x48D#x48F#x491#x493#x495#x497#x499#x49B#x49D#x49F#x4A1#x4A3#x4A5#x4A7#x4A9#x4AB#x4AD#x4AF#x4B1#x4B3#x4B5#x4B7#x4B9#x4BB#x4BD#x4BF#x4C2#x4C4#x4C6#x4C8#x4CA#x4CC#x4CE-#x4CF#x4D1#x4D3#x4D5#x4D7#x4D9#x4DB#x4DD#x4DF#x4E1#x4E3#x4E5#x4E7#x4E9#x4EB#x4ED#x4EF#x4F1#x4F3#x4F5#x4F7#x4F9#x4FB#x4FD#x4FF#x501#x503#x505#x507#x509#x50B#x50D#x50F#x511#x513#x515#x517#x519#x51B#x51D#x51F#x521#x523#x525#x527#x529#x52B#x52D#x52F#x560-#x588#x10D0-#x10FA#x10FD-#x10FF#x13F8-#x13FD#x1C80-#x1C88#x1D00-#x1D2B#x1D6B-#x1D77#x1D79-#x1D9A#x1E01#x1E03#x1E05#x1E07#x1E09#x1E0B#x1E0D#x1E0F#x1E11#x1E13#x1E15#x1E17#x1E19#x1E1B#x1E1D#x1E1F#x1E21#x1E23#x1E25#x1E27#x1E29#x1E2B#x1E2D#x1E2F#x1E31#x1E33#x1E35#x1E37#x1E39#x1E3B#x1E3D#x1E3F#x1E41#x1E43#x1E45#x1E47#x1E49#x1E4B#x1E4D#x1E4F#x1E51#x1E53#x1E55#x1E57#x1E59#x1E5B#x1E5D#x1E5F#x1E61#x1E63#x1E65#x1E67#x1E69#x1E6B#x1E6D#x1E6F#x1E71#x1E73#x1E75#x1E77#x1E79#x1E7B#x1E7D#x1E7F#x1E81#x1E83#x1E85#x1E87#x1E89#x1E8B#x1E8D#x1E8F#x1E91#x1E93#x1E95-#x1E9D#x1E9F#x1EA1#x1EA3#x1EA5#x1EA7#x1EA9#x1EAB#x1EAD#x1EAF#x1EB1#x1EB3#x1EB5#x1EB7#x1EB9#x1EBB#x1EBD#x1EBF#x1EC1#x1EC3#x1EC5#x1EC7#x1EC9#x1ECB#x1ECD#x1ECF#x1ED1#x1ED3#x1ED5#x1ED7#x1ED9#x1EDB#x1EDD#x1EDF#x1EE1#x1EE3#x1EE5#x1EE7#x1EE9#x1EEB#x1EED#x1EEF#x1EF1#x1EF3#x1EF5#x1EF7#x1EF9#x1EFB#x1EFD#x1EFF-#x1F07#x1F10-#x1F15#x1F20-#x1F27#x1F30-#x1F37#x1F40-#x1F45#x1F50-#x1F57#x1F60-#x1F67#x1F70-#x1F7D#x1F80-#x1F87#x1F90-#x1F97#x1FA0-#x1FA7#x1FB0-#x1FB4#x1FB6-#x1FB7#x1FBE#x1FC2-#x1FC4#x1FC6-#x1FC7#x1FD0-#x1FD3#x1FD6-#x1FD7#x1FE0-#x1FE7#x1FF2-#x1FF4#x1FF6-#x1FF7#x210A#x210E-#x210F#x2113#x212F#x2134#x2139#x213C-#x213D#x2146-#x2149#x214E#x2184#x2C30-#x2C5F#x2C61#x2C65-#x2C66#x2C68#x2C6A#x2C6C#x2C71#x2C73-#x2C74#x2C76-#x2C7B#x2C81#x2C83#x2C85#x2C87#x2C89#x2C8B#x2C8D#x2C8F#x2C91#x2C93#x2C95#x2C97#x2C99#x2C9B#x2C9D#x2C9F#x2CA1#x2CA3#x2CA5#x2CA7#x2CA9#x2CAB#x2CAD#x2CAF#x2CB1#x2CB3#x2CB5#x2CB7#x2CB9#x2CBB#x2CBD#x2CBF#x2CC1#x2CC3#x2CC5#x2CC7#x2CC9#x2CCB#x2CCD#x2CCF#x2CD1#x2CD3#x2CD5#x2CD7#x2CD9#x2CDB#x2CDD#x2CDF#x2CE1#x2CE3-#x2CE4#x2CEC#x2CEE#x2CF3#x2D00-#x2D25#x2D27#x2D2D#xA641#xA643#xA645#xA647#xA649#xA64B#xA64D#xA64F#xA651#xA653#xA655#xA657#xA659#xA65B#xA65D#xA65F#xA661#xA663#xA665#xA667#xA669#xA66B#xA66D#xA681#xA683#xA685#xA687#xA689#xA68B#xA68D#xA68F#xA691#xA693#xA695#xA697#xA699#xA69B#xA723#xA725#xA727#xA729#xA72B#xA72D#xA72F-#xA731#xA733#xA735#xA737#xA739#xA73B#xA73D#xA73F#xA741#xA743#xA745#xA747#xA749#xA74B#xA74D#xA74F#xA751#xA753#xA755#xA757#xA759#xA75B#xA75D#xA75F#xA761#xA763#xA765#xA767#xA769#xA76B#xA76D#xA76F#xA771-#xA778#xA77A#xA77C#xA77F#xA781#xA783#xA785#xA787#xA78C#xA78E#xA791#xA793-#xA795#xA797#xA799#xA79B#xA79D#xA79F#xA7A1#xA7A3#xA7A5#xA7A7#xA7A9#xA7AF#xA7B5#xA7B7#xA7B9#xA7BB#xA7BD#xA7BF#xA7C1#xA7C3#xA7C8#xA7CA#xA7D1#xA7D3#xA7D5#xA7D7#xA7D9#xA7F6#xA7FA#xAB30-#xAB5A#xAB60-#xAB68#xAB70-#xABBF#xFB00-#xFB06#xFB13-#xFB17#xFF41-#xFF5A]  | 
                              Referenced by:
                                | 
Lm¶
Lm       ::= [#x2B0-#x2C1#x2C6-#x2D1#x2E0-#x2E4#x2EC#x2EE#x374#x37A#x559#x640#x6E5-#x6E6#x7F4-#x7F5#x7FA#x81A#x824#x828#x8C9#x971#xE46#xEC6#x10FC#x17D7#x1843#x1AA7#x1C78-#x1C7D#x1D2C-#x1D6A#x1D78#x1D9B-#x1DBF#x2071#x207F#x2090-#x209C#x2C7C-#x2C7D#x2D6F#x2E2F#x3005#x3031-#x3035#x303B#x309D-#x309E#x30FC-#x30FE#xA015#xA4F8-#xA4FD#xA60C#xA67F#xA69C-#xA69D#xA717-#xA71F#xA770#xA788#xA7F2-#xA7F4#xA7F8-#xA7F9#xA9CF#xA9E6#xAA70#xAADD#xAAF3-#xAAF4#xAB5C-#xAB5F#xAB69#xFF70#xFF9E-#xFF9F]  | 
                              Referenced by:
                                | 
Lo¶
Lo       ::= [#xAA#xBA#x1BB#x1C0-#x1C3#x294#x5D0-#x5EA#x5EF-#x5F2#x620-#x63F#x641-#x64A#x66E-#x66F#x671-#x6D3#x6D5#x6EE-#x6EF#x6FA-#x6FC#x6FF#x710#x712-#x72F#x74D-#x7A5#x7B1#x7CA-#x7EA#x800-#x815#x840-#x858#x860-#x86A#x870-#x887#x889-#x88E#x8A0-#x8C8#x904-#x939#x93D#x950#x958-#x961#x972-#x980#x985-#x98C#x98F-#x990#x993-#x9A8#x9AA-#x9B0#x9B2#x9B6-#x9B9#x9BD#x9CE#x9DC-#x9DD#x9DF-#x9E1#x9F0-#x9F1#x9FC#xA05-#xA0A#xA0F-#xA10#xA13-#xA28#xA2A-#xA30#xA32-#xA33#xA35-#xA36#xA38-#xA39#xA59-#xA5C#xA5E#xA72-#xA74#xA85-#xA8D#xA8F-#xA91#xA93-#xAA8#xAAA-#xAB0#xAB2-#xAB3#xAB5-#xAB9#xABD#xAD0#xAE0-#xAE1#xAF9#xB05-#xB0C#xB0F-#xB10#xB13-#xB28#xB2A-#xB30#xB32-#xB33#xB35-#xB39#xB3D#xB5C-#xB5D#xB5F-#xB61#xB71#xB83#xB85-#xB8A#xB8E-#xB90#xB92-#xB95#xB99-#xB9A#xB9C#xB9E-#xB9F#xBA3-#xBA4#xBA8-#xBAA#xBAE-#xBB9#xBD0#xC05-#xC0C#xC0E-#xC10#xC12-#xC28#xC2A-#xC39#xC3D#xC58-#xC5A#xC5D#xC60-#xC61#xC80#xC85-#xC8C#xC8E-#xC90#xC92-#xCA8#xCAA-#xCB3#xCB5-#xCB9#xCBD#xCDD-#xCDE#xCE0-#xCE1#xCF1-#xCF2#xD04-#xD0C#xD0E-#xD10#xD12-#xD3A#xD3D#xD4E#xD54-#xD56#xD5F-#xD61#xD7A-#xD7F#xD85-#xD96#xD9A-#xDB1#xDB3-#xDBB#xDBD#xDC0-#xDC6#xE01-#xE30#xE32-#xE33#xE40-#xE45#xE81-#xE82#xE84#xE86-#xE8A#xE8C-#xEA3#xEA5#xEA7-#xEB0#xEB2-#xEB3#xEBD#xEC0-#xEC4#xEDC-#xEDF#xF00#xF40-#xF47#xF49-#xF6C#xF88-#xF8C#x1000-#x102A#x103F#x1050-#x1055#x105A-#x105D#x1061#x1065-#x1066#x106E-#x1070#x1075-#x1081#x108E#x1100-#x1248#x124A-#x124D#x1250-#x1256#x1258#x125A-#x125D#x1260-#x1288#x128A-#x128D#x1290-#x12B0#x12B2-#x12B5#x12B8-#x12BE#x12C0#x12C2-#x12C5#x12C8-#x12D6#x12D8-#x1310#x1312-#x1315#x1318-#x135A#x1380-#x138F#x1401-#x166C#x166F-#x167F#x1681-#x169A#x16A0-#x16EA#x16F1-#x16F8#x1700-#x1711#x171F-#x1731#x1740-#x1751#x1760-#x176C#x176E-#x1770#x1780-#x17B3#x17DC#x1820-#x1842#x1844-#x1878#x1880-#x1884#x1887-#x18A8#x18AA#x18B0-#x18F5#x1900-#x191E#x1950-#x196D#x1970-#x1974#x1980-#x19AB#x19B0-#x19C9#x1A00-#x1A16#x1A20-#x1A54#x1B05-#x1B33#x1B45-#x1B4C#x1B83-#x1BA0#x1BAE-#x1BAF#x1BBA-#x1BE5#x1C00-#x1C23#x1C4D-#x1C4F#x1C5A-#x1C77#x1CE9-#x1CEC#x1CEE-#x1CF3#x1CF5-#x1CF6#x1CFA#x2135-#x2138#x2D30-#x2D67#x2D80-#x2D96#x2DA0-#x2DA6#x2DA8-#x2DAE#x2DB0-#x2DB6#x2DB8-#x2DBE#x2DC0-#x2DC6#x2DC8-#x2DCE#x2DD0-#x2DD6#x2DD8-#x2DDE#x3006#x303C#x3041-#x3096#x309F#x30A1-#x30FA#x30FF#x3105-#x312F#x3131-#x318E#x31A0-#x31BF#x31F0-#x31FF#x4DBF#x9FFF-#xA014#xA016-#xA48C#xA4D0-#xA4F7#xA500-#xA60B#xA610-#xA61F#xA62A-#xA62B#xA66E#xA6A0-#xA6E5#xA78F#xA7F7#xA7FB-#xA801#xA803-#xA805#xA807-#xA80A#xA80C-#xA822#xA840-#xA873#xA882-#xA8B3#xA8F2-#xA8F7#xA8FB#xA8FD-#xA8FE#xA90A-#xA925#xA930-#xA946#xA960-#xA97C#xA984-#xA9B2#xA9E0-#xA9E4#xA9E7-#xA9EF#xA9FA-#xA9FE#xAA00-#xAA28#xAA40-#xAA42#xAA44-#xAA4B#xAA60-#xAA6F#xAA71-#xAA76#xAA7A#xAA7E-#xAAAF#xAAB1#xAAB5-#xAAB6#xAAB9-#xAABD#xAAC0#xAAC2#xAADB-#xAADC#xAAE0-#xAAEA#xAAF2#xAB01-#xAB06#xAB09-#xAB0E#xAB11-#xAB16#xAB20-#xAB26#xAB28-#xAB2E#xABC0-#xABE2#xD7A3#xD7B0-#xD7C6#xD7CB-#xD7FB#xF900-#xFA6D#xFA70-#xFAD9#xFB1D#xFB1F-#xFB28#xFB2A-#xFB36#xFB38-#xFB3C#xFB3E#xFB40-#xFB41#xFB43-#xFB44#xFB46-#xFBB1#xFBD3-#xFD3D#xFD50-#xFD8F#xFD92-#xFDC7#xFDF0-#xFDFB#xFE70-#xFE74#xFE76-#xFEFC#xFF66-#xFF6F#xFF71-#xFF9D#xFFA0-#xFFBE#xFFC2-#xFFC7#xFFCA-#xFFCF#xFFD2-#xFFD7#xFFDA-#xFFDC]  | 
                              Referenced by:
                                | 
Lt¶
Lt       ::= [#x1C5#x1C8#x1CB#x1F2#x1F88-#x1F8F#x1F98-#x1F9F#x1FA8-#x1FAF#x1FBC#x1FCC#x1FFC]  | 
                              Referenced by:
                                | 
Lu¶
Lu       ::= [A-Z#xC0-#xD6#xD8-#xDE#x100#x102#x104#x106#x108#x10A#x10C#x10E#x110#x112#x114#x116#x118#x11A#x11C#x11E#x120#x122#x124#x126#x128#x12A#x12C#x12E#x130#x132#x134#x136#x139#x13B#x13D#x13F#x141#x143#x145#x147#x14A#x14C#x14E#x150#x152#x154#x156#x158#x15A#x15C#x15E#x160#x162#x164#x166#x168#x16A#x16C#x16E#x170#x172#x174#x176#x178-#x179#x17B#x17D#x181-#x182#x184#x186-#x187#x189-#x18B#x18E-#x191#x193-#x194#x196-#x198#x19C-#x19D#x19F-#x1A0#x1A2#x1A4#x1A6-#x1A7#x1A9#x1AC#x1AE-#x1AF#x1B1-#x1B3#x1B5#x1B7-#x1B8#x1BC#x1C4#x1C7#x1CA#x1CD#x1CF#x1D1#x1D3#x1D5#x1D7#x1D9#x1DB#x1DE#x1E0#x1E2#x1E4#x1E6#x1E8#x1EA#x1EC#x1EE#x1F1#x1F4#x1F6-#x1F8#x1FA#x1FC#x1FE#x200#x202#x204#x206#x208#x20A#x20C#x20E#x210#x212#x214#x216#x218#x21A#x21C#x21E#x220#x222#x224#x226#x228#x22A#x22C#x22E#x230#x232#x23A-#x23B#x23D-#x23E#x241#x243-#x246#x248#x24A#x24C#x24E#x370#x372#x376#x37F#x386#x388-#x38A#x38C#x38E-#x38F#x391-#x3A1#x3A3-#x3AB#x3CF#x3D2-#x3D4#x3D8#x3DA#x3DC#x3DE#x3E0#x3E2#x3E4#x3E6#x3E8#x3EA#x3EC#x3EE#x3F4#x3F7#x3F9-#x3FA#x3FD-#x42F#x460#x462#x464#x466#x468#x46A#x46C#x46E#x470#x472#x474#x476#x478#x47A#x47C#x47E#x480#x48A#x48C#x48E#x490#x492#x494#x496#x498#x49A#x49C#x49E#x4A0#x4A2#x4A4#x4A6#x4A8#x4AA#x4AC#x4AE#x4B0#x4B2#x4B4#x4B6#x4B8#x4BA#x4BC#x4BE#x4C0-#x4C1#x4C3#x4C5#x4C7#x4C9#x4CB#x4CD#x4D0#x4D2#x4D4#x4D6#x4D8#x4DA#x4DC#x4DE#x4E0#x4E2#x4E4#x4E6#x4E8#x4EA#x4EC#x4EE#x4F0#x4F2#x4F4#x4F6#x4F8#x4FA#x4FC#x4FE#x500#x502#x504#x506#x508#x50A#x50C#x50E#x510#x512#x514#x516#x518#x51A#x51C#x51E#x520#x522#x524#x526#x528#x52A#x52C#x52E#x531-#x556#x10A0-#x10C5#x10C7#x10CD#x13A0-#x13F5#x1C90-#x1CBA#x1CBD-#x1CBF#x1E00#x1E02#x1E04#x1E06#x1E08#x1E0A#x1E0C#x1E0E#x1E10#x1E12#x1E14#x1E16#x1E18#x1E1A#x1E1C#x1E1E#x1E20#x1E22#x1E24#x1E26#x1E28#x1E2A#x1E2C#x1E2E#x1E30#x1E32#x1E34#x1E36#x1E38#x1E3A#x1E3C#x1E3E#x1E40#x1E42#x1E44#x1E46#x1E48#x1E4A#x1E4C#x1E4E#x1E50#x1E52#x1E54#x1E56#x1E58#x1E5A#x1E5C#x1E5E#x1E60#x1E62#x1E64#x1E66#x1E68#x1E6A#x1E6C#x1E6E#x1E70#x1E72#x1E74#x1E76#x1E78#x1E7A#x1E7C#x1E7E#x1E80#x1E82#x1E84#x1E86#x1E88#x1E8A#x1E8C#x1E8E#x1E90#x1E92#x1E94#x1E9E#x1EA0#x1EA2#x1EA4#x1EA6#x1EA8#x1EAA#x1EAC#x1EAE#x1EB0#x1EB2#x1EB4#x1EB6#x1EB8#x1EBA#x1EBC#x1EBE#x1EC0#x1EC2#x1EC4#x1EC6#x1EC8#x1ECA#x1ECC#x1ECE#x1ED0#x1ED2#x1ED4#x1ED6#x1ED8#x1EDA#x1EDC#x1EDE#x1EE0#x1EE2#x1EE4#x1EE6#x1EE8#x1EEA#x1EEC#x1EEE#x1EF0#x1EF2#x1EF4#x1EF6#x1EF8#x1EFA#x1EFC#x1EFE#x1F08-#x1F0F#x1F18-#x1F1D#x1F28-#x1F2F#x1F38-#x1F3F#x1F48-#x1F4D#x1F59#x1F5B#x1F5D#x1F5F#x1F68-#x1F6F#x1FB8-#x1FBB#x1FC8-#x1FCB#x1FD8-#x1FDB#x1FE8-#x1FEC#x1FF8-#x1FFB#x2102#x2107#x210B-#x210D#x2110-#x2112#x2115#x2119-#x211D#x2124#x2126#x2128#x212A-#x212D#x2130-#x2133#x213E-#x213F#x2145#x2183#x2C00-#x2C2F#x2C60#x2C62-#x2C64#x2C67#x2C69#x2C6B#x2C6D-#x2C70#x2C72#x2C75#x2C7E-#x2C80#x2C82#x2C84#x2C86#x2C88#x2C8A#x2C8C#x2C8E#x2C90#x2C92#x2C94#x2C96#x2C98#x2C9A#x2C9C#x2C9E#x2CA0#x2CA2#x2CA4#x2CA6#x2CA8#x2CAA#x2CAC#x2CAE#x2CB0#x2CB2#x2CB4#x2CB6#x2CB8#x2CBA#x2CBC#x2CBE#x2CC0#x2CC2#x2CC4#x2CC6#x2CC8#x2CCA#x2CCC#x2CCE#x2CD0#x2CD2#x2CD4#x2CD6#x2CD8#x2CDA#x2CDC#x2CDE#x2CE0#x2CE2#x2CEB#x2CED#x2CF2#xA640#xA642#xA644#xA646#xA648#xA64A#xA64C#xA64E#xA650#xA652#xA654#xA656#xA658#xA65A#xA65C#xA65E#xA660#xA662#xA664#xA666#xA668#xA66A#xA66C#xA680#xA682#xA684#xA686#xA688#xA68A#xA68C#xA68E#xA690#xA692#xA694#xA696#xA698#xA69A#xA722#xA724#xA726#xA728#xA72A#xA72C#xA72E#xA732#xA734#xA736#xA738#xA73A#xA73C#xA73E#xA740#xA742#xA744#xA746#xA748#xA74A#xA74C#xA74E#xA750#xA752#xA754#xA756#xA758#xA75A#xA75C#xA75E#xA760#xA762#xA764#xA766#xA768#xA76A#xA76C#xA76E#xA779#xA77B#xA77D-#xA77E#xA780#xA782#xA784#xA786#xA78B#xA78D#xA790#xA792#xA796#xA798#xA79A#xA79C#xA79E#xA7A0#xA7A2#xA7A4#xA7A6#xA7A8#xA7AA-#xA7AE#xA7B0-#xA7B4#xA7B6#xA7B8#xA7BA#xA7BC#xA7BE#xA7C0#xA7C2#xA7C4-#xA7C7#xA7C9#xA7D0#xA7D6#xA7D8#xA7F5#xFF21-#xFF3A]  | 
                              Referenced by:
                                | 
Nl¶
Nl       ::= [#x16EE-#x16F0#x2160-#x2182#x2185-#x2188#x3007#x3021-#x3029#x3038-#x303A#xA6E6-#xA6EF]  | 
                              Referenced by:
                                | 
UnicodeIdentifierExtend¶
         ::= Mn 
                    | Mc 
                    | Nd 
                    | Pc 
                    | Cf 
                    | CJK  | 
                              Referenced by:
                                | 
Cf¶
Cf       ::= [#xAD#x600-#x605#x61C#x6DD#x70F#x890-#x891#x8E2#x180E#x200B-#x200F#x202A-#x202E#x2060-#x2064#x2066-#x206F#xFEFF#xFFF9-#xFFFB]  | 
                              Referenced by:
                                | 
Mc¶
Mc       ::= [#x903#x93B#x93E-#x940#x949-#x94C#x94E-#x94F#x982-#x983#x9BE-#x9C0#x9C7-#x9C8#x9CB-#x9CC#x9D7#xA03#xA3E-#xA40#xA83#xABE-#xAC0#xAC9#xACB-#xACC#xB02-#xB03#xB3E#xB40#xB47-#xB48#xB4B-#xB4C#xB57#xBBE-#xBBF#xBC1-#xBC2#xBC6-#xBC8#xBCA-#xBCC#xBD7#xC01-#xC03#xC41-#xC44#xC82-#xC83#xCBE#xCC0-#xCC4#xCC7-#xCC8#xCCA-#xCCB#xCD5-#xCD6#xCF3#xD02-#xD03#xD3E-#xD40#xD46-#xD48#xD4A-#xD4C#xD57#xD82-#xD83#xDCF-#xDD1#xDD8-#xDDF#xDF2-#xDF3#xF3E-#xF3F#xF7F#x102B-#x102C#x1031#x1038#x103B-#x103C#x1056-#x1057#x1062-#x1064#x1067-#x106D#x1083-#x1084#x1087-#x108C#x108F#x109A-#x109C#x1715#x1734#x17B6#x17BE-#x17C5#x17C7-#x17C8#x1923-#x1926#x1929-#x192B#x1930-#x1931#x1933-#x1938#x1A19-#x1A1A#x1A55#x1A57#x1A61#x1A63-#x1A64#x1A6D-#x1A72#x1B04#x1B35#x1B3B#x1B3D-#x1B41#x1B43-#x1B44#x1B82#x1BA1#x1BA6-#x1BA7#x1BAA#x1BE7#x1BEA-#x1BEC#x1BEE#x1BF2-#x1BF3#x1C24-#x1C2B#x1C34-#x1C35#x1CE1#x1CF7#x302E-#x302F#xA823-#xA824#xA827#xA880-#xA881#xA8B4-#xA8C3#xA952-#xA953#xA983#xA9B4-#xA9B5#xA9BA-#xA9BB#xA9BE-#xA9C0#xAA2F-#xAA30#xAA33-#xAA34#xAA4D#xAA7B#xAA7D#xAAEB#xAAEE-#xAAEF#xAAF5#xABE3-#xABE4#xABE6-#xABE7#xABE9-#xABEA#xABEC]  | 
                              Referenced by:
                                | 
Mn¶
Mn       ::= [#x300-#x36F#x483-#x487#x591-#x5BD#x5BF#x5C1-#x5C2#x5C4-#x5C5#x5C7#x610-#x61A#x64B-#x65F#x670#x6D6-#x6DC#x6DF-#x6E4#x6E7-#x6E8#x6EA-#x6ED#x711#x730-#x74A#x7A6-#x7B0#x7EB-#x7F3#x7FD#x816-#x819#x81B-#x823#x825-#x827#x829-#x82D#x859-#x85B#x898-#x89F#x8CA-#x8E1#x8E3-#x902#x93A#x93C#x941-#x948#x94D#x951-#x957#x962-#x963#x981#x9BC#x9C1-#x9C4#x9CD#x9E2-#x9E3#x9FE#xA01-#xA02#xA3C#xA41-#xA42#xA47-#xA48#xA4B-#xA4D#xA51#xA70-#xA71#xA75#xA81-#xA82#xABC#xAC1-#xAC5#xAC7-#xAC8#xACD#xAE2-#xAE3#xAFA-#xAFF#xB01#xB3C#xB3F#xB41-#xB44#xB4D#xB55-#xB56#xB62-#xB63#xB82#xBC0#xBCD#xC00#xC04#xC3C#xC3E-#xC40#xC46-#xC48#xC4A-#xC4D#xC55-#xC56#xC62-#xC63#xC81#xCBC#xCBF#xCC6#xCCC-#xCCD#xCE2-#xCE3#xD00-#xD01#xD3B-#xD3C#xD41-#xD44#xD4D#xD62-#xD63#xD81#xDCA#xDD2-#xDD4#xDD6#xE31#xE34-#xE3A#xE47-#xE4E#xEB1#xEB4-#xEBC#xEC8-#xECE#xF18-#xF19#xF35#xF37#xF39#xF71-#xF7E#xF80-#xF84#xF86-#xF87#xF8D-#xF97#xF99-#xFBC#xFC6#x102D-#x1030#x1032-#x1037#x1039-#x103A#x103D-#x103E#x1058-#x1059#x105E-#x1060#x1071-#x1074#x1082#x1085-#x1086#x108D#x109D#x135D-#x135F#x1712-#x1714#x1732-#x1733#x1752-#x1753#x1772-#x1773#x17B4-#x17B5#x17B7-#x17BD#x17C6#x17C9-#x17D3#x17DD#x180B-#x180D#x180F#x1885-#x1886#x18A9#x1920-#x1922#x1927-#x1928#x1932#x1939-#x193B#x1A17-#x1A18#x1A1B#x1A56#x1A58-#x1A5E#x1A60#x1A62#x1A65-#x1A6C#x1A73-#x1A7C#x1A7F#x1AB0-#x1ABD#x1ABF-#x1ACE#x1B00-#x1B03#x1B34#x1B36-#x1B3A#x1B3C#x1B42#x1B6B-#x1B73#x1B80-#x1B81#x1BA2-#x1BA5#x1BA8-#x1BA9#x1BAB-#x1BAD#x1BE6#x1BE8-#x1BE9#x1BED#x1BEF-#x1BF1#x1C2C-#x1C33#x1C36-#x1C37#x1CD0-#x1CD2#x1CD4-#x1CE0#x1CE2-#x1CE8#x1CED#x1CF4#x1CF8-#x1CF9#x1DC0-#x1DFF#x20D0-#x20DC#x20E1#x20E5-#x20F0#x2CEF-#x2CF1#x2D7F#x2DE0-#x2DFF#x302A-#x302D#x3099-#x309A#xA66F#xA674-#xA67D#xA69E-#xA69F#xA6F0-#xA6F1#xA802#xA806#xA80B#xA825-#xA826#xA82C#xA8C4-#xA8C5#xA8E0-#xA8F1#xA8FF#xA926-#xA92D#xA947-#xA951#xA980-#xA982#xA9B3#xA9B6-#xA9B9#xA9BC-#xA9BD#xA9E5#xAA29-#xAA2E#xAA31-#xAA32#xAA35-#xAA36#xAA43#xAA4C#xAA7C#xAAB0#xAAB2-#xAAB4#xAAB7-#xAAB8#xAABE-#xAABF#xAAC1#xAAEC-#xAAED#xAAF6#xABE5#xABE8#xABED#xFB1E#xFE00-#xFE0F#xFE20-#xFE2F]  | 
                              Referenced by:
                                | 
Nd¶
Nd       ::= [0-9#x660-#x669#x6F0-#x6F9#x7C0-#x7C9#x966-#x96F#x9E6-#x9EF#xA66-#xA6F#xAE6-#xAEF#xB66-#xB6F#xBE6-#xBEF#xC66-#xC6F#xCE6-#xCEF#xD66-#xD6F#xDE6-#xDEF#xE50-#xE59#xED0-#xED9#xF20-#xF29#x1040-#x1049#x1090-#x1099#x17E0-#x17E9#x1810-#x1819#x1946-#x194F#x19D0-#x19D9#x1A80-#x1A89#x1A90-#x1A99#x1B50-#x1B59#x1BB0-#x1BB9#x1C40-#x1C49#x1C50-#x1C59#xA620-#xA629#xA8D0-#xA8D9#xA900-#xA909#xA9D0-#xA9D9#xA9F0-#xA9F9#xAA50-#xAA59#xABF0-#xABF9#xFF10-#xFF19]  | 
                              Referenced by:
                                | 
Pc¶
Pc       ::= [#x203F-#x2040#x2054#xFE33-#xFE34#xFE4D-#xFE4F#xFF3F]  | 
                              Referenced by:
                                | 
CJK¶
CJK      ::= [#xAC00-#xD7A3#x4E00-#x9FFF]  | 
                              Referenced by:
                                | 
ESC¶
ESC      ::= '\' [ntbrf\"]  | 
                              Referenced by:
                                | 
S_CHAR_LITERAL¶
S_QUOTED_IDENTIFIER¶
         ::= '"' ( '""' | [^"#xA#xD] )* '"' 
                    | '$$' [^$]* '$$' 
                    | '`' [^`#xA#xD]+ '`' 
                    | '[' [^#x5D#xA#xD]* ']'  | 
EOF¶
EOF      ::= $  | 
                              Referenced by:
                                | 
ColumnWithCommentList¶