SQL Syntax 5.5.15-SNAPSHOT

The EBNF and Railroad Diagrams for 5.5.15-SNAPSHOT.

NonReservedWord

ACTION ACTIVE ADD ADVANCE ADVISE AGAINST AGGREGATE ALGORITHM ALIGN ALTER ALWAYS ANALYSE ANALYZE ANTI APPEND_ONLY APPLY APPROX APPROXIMATE ARCHIVE ASSERT ARRAY ASYMMETRIC AT ASC ATTACH AUTHORIZATION AUTO AUTO_INCREMENT AZURE BASE64 BEFORE BEGIN BERNOULLI BINARY BIT BLOBSTORAGE BLOCK BOOLEAN BREADTH BRANCH BROWSE BUCKETS BY BYTES CACHE BUFFERS BYTE CALL CASCADE CASE CAST CERTIFICATE CHARACTER CHANGE CHANGES CHECKPOINT CHAR CLOSE CLOUD COALESCE CLONE COLLATE COLUMN COLUMNS COMMIT COPY COMMENT COMMENTS COMPLETION CONFLICT CONSTRAINTS CONVERT CORRESPONDING COSTS COUNT CREATED CYCLE DATABASE DATA DECLARE DBA_RECYCLEBIN DEFAULTS DEPTH DEALLOCATE DEFERRABLE DELAYED DELETE DELIMIT DELIMITER DESC DESCRIBE DETACH DISABLE DISCARD DISCONNECT DIRECTORY DIV DDL DML DO DOMAIN DRIVER DROP DUMP DUMPFILE DUPLICATE ELEMENTS ENCLOSED EMIT EMPTY ENABLE ENCODING ENCRYPTION END ENDS ESCAPED ENFORCED ENGINE ERROR ESCAPE EVENT EVERY EXA EXCHANGE EXCLUDE EXCLUDING EXCLUSIVE EXEC EXECUTE EXPLAIN EXPLICIT EXTENDED EXTRACT EXPORT K_ISOLATION FILTER FIELDS FILL FINALIZE FIRST FLUSH FOLLOWING FORMAT FULLTEXT FUNCTION GLOB GRANT GROUPS GROUP_CONCAT GUARD HASH HIGH HIGH_PRIORITY HISTORY HISTOGRAM HOPPING IDENTIFIED IDENTITY INCLUDE INCLUDE_NULL_VALUES INCLUDING INCREMENT INDEX INSTALL INFORMATION INSERT INTERLEAVE INTERPOLATE INTERPRET INVALIDATE INVERSE INVISIBLE ISNULL JDBC JSON JSON_OBJECT JSON_OBJECTAGG JSON_ARRAY JSON_ARRAYAGG KEEP KEY_BLOCK_SIZE KEY KEYS KILL FN LAST LEADING LESS LEVEL LINEAR LINES LIST LOAD LOCAL LOCK LOCKED LINK LOG LOOP LOW LOW_PRIORITY LTRIM MATCH MATCH_ANY MATCH_ALL MATCH_PHRASE MATCH_PHRASE_PREFIX MATCH_REGEXP MATCHED MACRO MATERIALIZED MAX MAX_ROWS MAXVALUE MEMBER MERGE MIN MIN_ROWS MINVALUE MODE MODULUS MODIFY MOVEMENT NAMES NAME NEVER NEXT NEAREST K_NEXTVAL NO NOCACHE NOKEEP NOLOCK NO_WRITE_TO_BINLOG NOMAXVALUE NOMINVALUE NONE NOORDER NOTHING NOTNULL NOVALIDATE NULLS NOWAIT OF OFF OPTION OPTIONALLY OPEN ORA ORDINALITY OUTFILE OVER OVERFLOW OVERLAPS OVERRIDING OVERWRITE PADDING PARALLEL PARENT PARSER PARTITION PARTITIONING PARTITIONS PATH PASSWORD PERCENT PLACING PLAN PLUS PRAGMA PREPARE PRECEDING PRIMARY POLICY PURGE QUERY QUICK QUIESCE RANGE RANDOM RAW READ REBUILD RECYCLEBIN RECURSIVE REFERENCES REFRESH REGEXP REJECT RESPECT RLIKE REGEXP_LIKE REGISTER REMOTE REMOVE REMAINDER RENAME REORGANIZE REPAIR REPEATABLE REPLACE RESET REVOKE RESTART RESUMABLE RESUME RESTRICT RESTRICTED RETURN ROLLBACK ROLLUP ROOT ROW ROWS RTRIM SAFE_CAST SAFE_CONVERT SAVEPOINT SCHEDULE SCHEMA SEARCH SECURE SECURITY SEED SEQUENCE SEPARATOR SESSION SETS SHOW SHUTDOWN SHARE SIBLINGS SIMILAR SIMILARITY SIZE SKIP SLAVE SPATIAL STALENESS STARTS STARTING STEP STORED STORAGE STREAM STRICT STRING STRUCT SUMMARIZE SUBPARTITION SUBPARTITIONS SUSPEND SWITCH SYMMETRIC SYNONYM SYSTEM SYSTEM_TIME SYSTEM_TIMESTAMP SYSTEM_VERSION TABLE TABLESPACE TERMINATED TRIGGER THEN TEMP K_TEXT_LITERAL TEMPORARY THAN K_TIME_KEY_EXPR TIMEOUT TO TRIM TRUNCATE TRY_CAST TRY_CONVERT TUMBLING TYPE UNLIMITED UNLOGGED UPDATE UPSERT UNQIESCE USER SIGNED K_STRING_FUNCTION_NAME UNSIGNED VALIDATE VALIDATION VERBOSE VERSION VIEW VISIBLE VOLATILE CONCURRENTLY WAIT WITH TIES WITHIN WITHOUT WITHOUT_ARRAY_WRAPPER WORK XML XMLAGG XMLDATA XMLSCHEMA XMLTEXT XSINIL YAML YES ZEROFILL ZONE
         ::= 'ACTION'
           | 'ACTIVE'
           | 'ADD'
           | 'ADVANCE'
           | 'ADVISE'
           | 'AGAINST'
           | 'AGGREGATE'
           | 'ALGORITHM'
           | 'ALIGN'
           | 'ALTER'
           | 'ALWAYS'
           | 'ANALYSE'
           | 'ANALYZE'
           | 'ANTI'
           | 'APPEND_ONLY'
           | 'APPLY'
           | 'APPROX'
           | 'APPROXIMATE'
           | 'ARCHIVE'
           | 'ASSERT'
           | 'ARRAY'
           | 'ASYMMETRIC'
           | 'AT'
           | 'ASC'
           | 'ATTACH'
           | 'AUTHORIZATION'
           | 'AUTO'
           | 'AUTO_INCREMENT'
           | 'AZURE'
           | 'BASE64'
           | 'BEFORE'
           | 'BEGIN'
           | 'BERNOULLI'
           | 'BINARY'
           | 'BIT'
           | 'BLOBSTORAGE'
           | 'BLOCK'
           | 'BOOLEAN'
           | 'BREADTH'
           | 'BRANCH'
           | 'BROWSE'
           | 'BUCKETS'
           | 'BY'
           | 'BYTES'
           | 'CACHE'
           | 'BUFFERS'
           | 'BYTE'
           | 'CALL'
           | 'CASCADE'
           | 'CASE'
           | 'CAST'
           | 'CERTIFICATE'
           | 'CHARACTER'
           | 'CHANGE'
           | 'CHANGES'
           | 'CHECKPOINT'
           | 'CHAR'
           | 'CLOSE'
           | 'CLOUD'
           | 'COALESCE'
           | 'CLONE'
           | 'COLLATE'
           | 'COLUMN'
           | 'COLUMNS'
           | 'COMMIT'
           | 'COPY'
           | 'COMMENT'
           | 'COMMENTS'
           | 'COMPLETION'
           | 'CONFLICT'
           | 'CONSTRAINTS'
           | 'CONVERT'
           | 'CORRESPONDING'
           | 'COSTS'
           | 'COUNT'
           | 'CREATED'
           | 'CYCLE'
           | 'DATABASE'
           | 'DATA'
           | 'DECLARE'
           | 'DBA_RECYCLEBIN'
           | 'DEFAULTS'
           | 'DEPTH'
           | 'DEALLOCATE'
           | 'DEFERRABLE'
           | 'DELAYED'
           | 'DELETE'
           | 'DELIMIT'
           | 'DELIMITER'
           | 'DESC'
           | 'DESCRIBE'
           | 'DETACH'
           | 'DISABLE'
           | 'DISCARD'
           | 'DISCONNECT'
           | 'DIRECTORY'
           | 'DIV'
           | 'DDL'
           | 'DML'
           | 'DO'
           | 'DOMAIN'
           | 'DRIVER'
           | 'DROP'
           | 'DUMP'
           | 'DUMPFILE'
           | 'DUPLICATE'
           | 'ELEMENTS'
           | 'ENCLOSED'
           | 'EMIT'
           | 'EMPTY'
           | 'ENABLE'
           | 'ENCODING'
           | 'ENCRYPTION'
           | 'END'
           | 'ENDS'
           | 'ESCAPED'
           | 'ENFORCED'
           | 'ENGINE'
           | 'ERROR'
           | 'ESCAPE'
           | 'EVENT'
           | 'EVERY'
           | 'EXA'
           | 'EXCHANGE'
           | 'EXCLUDE'
           | 'EXCLUDING'
           | 'EXCLUSIVE'
           | 'EXEC'
           | 'EXECUTE'
           | 'EXPLAIN'
           | 'EXPLICIT'
           | 'EXTENDED'
           | 'EXTRACT'
           | 'EXPORT'
           | K_ISOLATION
           | 'FILTER'
           | 'FIELDS'
           | 'FILL'
           | 'FINALIZE'
           | 'FIRST'
           | 'FLUSH'
           | 'FOLLOWING'
           | 'FORMAT'
           | 'FULLTEXT'
           | 'FUNCTION'
           | 'GLOB'
           | 'GRANT'
           | 'GROUPS'
           | 'GROUP_CONCAT'
           | 'GUARD'
           | 'HASH'
           | 'HIGH'
           | 'HIGH_PRIORITY'
           | 'HISTORY'
           | 'HISTOGRAM'
           | 'HOPPING'
           | 'IDENTIFIED'
           | 'IDENTITY'
           | 'INCLUDE'
           | 'INCLUDE_NULL_VALUES'
           | 'INCLUDING'
           | 'INCREMENT'
           | 'INDEX'
           | 'INSTALL'
           | 'INFORMATION'
           | 'INSERT'
           | 'INTERLEAVE'
           | 'INTERPOLATE'
           | 'INTERPRET'
           | 'INVALIDATE'
           | 'INVERSE'
           | 'INVISIBLE'
           | 'ISNULL'
           | 'JDBC'
           | 'JSON'
           | 'JSON_OBJECT'
           | 'JSON_OBJECTAGG'
           | 'JSON_ARRAY'
           | 'JSON_ARRAYAGG'
           | 'KEEP'
           | 'KEY_BLOCK_SIZE'
           | 'KEY'
           | 'KEYS'
           | 'KILL'
           | 'FN'
           | 'LAST'
           | 'LEADING'
           | 'LESS'
           | 'LEVEL'
           | 'LINEAR'
           | 'LINES'
           | 'LIST'
           | 'LOAD'
           | 'LOCAL'
           | 'LOCK'
           | 'LOCKED'
           | 'LINK'
           | 'LOG'
           | 'LOOP'
           | 'LOW'
           | 'LOW_PRIORITY'
           | 'LTRIM'
           | 'MATCH'
           | 'MATCH_ANY'
           | 'MATCH_ALL'
           | 'MATCH_PHRASE'
           | 'MATCH_PHRASE_PREFIX'
           | 'MATCH_REGEXP'
           | 'MATCHED'
           | 'MACRO'
           | 'MATERIALIZED'
           | 'MAX'
           | 'MAX_ROWS'
           | 'MAXVALUE'
           | 'MEMBER'
           | 'MERGE'
           | 'MIN'
           | 'MIN_ROWS'
           | 'MINVALUE'
           | 'MODE'
           | 'MODULUS'
           | 'MODIFY'
           | 'MOVEMENT'
           | 'NAMES'
           | 'NAME'
           | 'NEVER'
           | 'NEXT'
           | 'NEAREST'
           | K_NEXTVAL
           | 'NO'
           | 'NOCACHE'
           | 'NOKEEP'
           | 'NOLOCK'
           | 'NO_WRITE_TO_BINLOG'
           | 'NOMAXVALUE'
           | 'NOMINVALUE'
           | 'NONE'
           | 'NOORDER'
           | 'NOTHING'
           | 'NOTNULL'
           | 'NOVALIDATE'
           | 'NULLS'
           | 'NOWAIT'
           | 'OF'
           | 'OFF'
           | 'OPTION'
           | 'OPTIONALLY'
           | 'OPEN'
           | 'ORA'
           | 'ORDINALITY'
           | 'OUTFILE'
           | 'OVER'
           | 'OVERFLOW'
           | 'OVERLAPS'
           | 'OVERRIDING'
           | 'OVERWRITE'
           | 'PADDING'
           | 'PARALLEL'
           | 'PARENT'
           | 'PARSER'
           | 'PARTITION'
           | 'PARTITIONING'
           | 'PARTITIONS'
           | 'PATH'
           | 'PASSWORD'
           | 'PERCENT'
           | 'PLACING'
           | 'PLAN'
           | 'PLUS'
           | 'PRAGMA'
           | 'PREPARE'
           | 'PRECEDING'
           | 'PRIMARY'
           | 'POLICY'
           | 'PURGE'
           | 'QUERY'
           | 'QUICK'
           | 'QUIESCE'
           | 'RANGE'
           | 'RANDOM'
           | 'RAW'
           | 'READ'
           | 'REBUILD'
           | 'RECYCLEBIN'
           | 'RECURSIVE'
           | 'REFERENCES'
           | 'REFRESH'
           | 'REGEXP'
           | 'REJECT'
           | 'RESPECT'
           | 'RLIKE'
           | 'REGEXP_LIKE'
           | 'REGISTER'
           | 'REMOTE'
           | 'REMOVE'
           | 'REMAINDER'
           | 'RENAME'
           | 'REORGANIZE'
           | 'REPAIR'
           | 'REPEATABLE'
           | 'REPLACE'
           | 'RESET'
           | 'REVOKE'
           | 'RESTART'
           | 'RESUMABLE'
           | 'RESUME'
           | 'RESTRICT'
           | 'RESTRICTED'
           | 'RETURN'
           | 'ROLLBACK'
           | 'ROLLUP'
           | 'ROOT'
           | 'ROW'
           | 'ROWS'
           | 'RTRIM'
           | 'SAFE_CAST'
           | 'SAFE_CONVERT'
           | 'SAVEPOINT'
           | 'SCHEDULE'
           | 'SCHEMA'
           | 'SEARCH'
           | 'SECURE'
           | 'SECURITY'
           | 'SEED'
           | 'SEQUENCE'
           | 'SEPARATOR'
           | 'SESSION'
           | 'SETS'
           | 'SHOW'
           | 'SHUTDOWN'
           | 'SHARE'
           | 'SIBLINGS'
           | 'SIMILAR'
           | 'SIMILARITY'
           | 'SIZE'
           | 'SKIP'
           | 'SLAVE'
           | 'SPATIAL'
           | 'STALENESS'
           | 'STARTS'
           | 'STARTING'
           | 'STEP'
           | 'STORED'
           | 'STORAGE'
           | 'STREAM'
           | 'STRICT'
           | 'STRING'
           | 'STRUCT'
           | 'SUMMARIZE'
           | 'SUBPARTITION'
           | 'SUBPARTITIONS'
           | 'SUSPEND'
           | 'SWITCH'
           | 'SYMMETRIC'
           | 'SYNONYM'
           | 'SYSTEM'
           | 'SYSTEM_TIME'
           | 'SYSTEM_TIMESTAMP'
           | 'SYSTEM_VERSION'
           | 'TABLE'
           | 'TABLESPACE'
           | 'TERMINATED'
           | 'TRIGGER'
           | 'THEN'
           | 'TEMP'
           | K_TEXT_LITERAL
           | 'TEMPORARY'
           | 'THAN'
           | K_TIME_KEY_EXPR
           | 'TIMEOUT'
           | 'TO'
           | 'TRIM'
           | 'TRUNCATE'
           | 'TRY_CAST'
           | 'TRY_CONVERT'
           | 'TUMBLING'
           | 'TYPE'
           | 'UNLIMITED'
           | 'UNLOGGED'
           | 'UPDATE'
           | 'UPSERT'
           | 'UNQIESCE'
           | 'USER'
           | 'SIGNED'
           | K_STRING_FUNCTION_NAME
           | 'UNSIGNED'
           | 'VALIDATE'
           | 'VALIDATION'
           | 'VERBOSE'
           | 'VERSION'
           | 'VIEW'
           | 'VISIBLE'
           | 'VOLATILE'
           | 'CONCURRENTLY'
           | 'WAIT'
           | 'WITH TIES'
           | 'WITHIN'
           | 'WITHOUT'
           | 'WITHOUT_ARRAY_WRAPPER'
           | 'WORK'
           | 'XML'
           | 'XMLAGG'
           | 'XMLDATA'
           | 'XMLSCHEMA'
           | 'XMLTEXT'
           | 'XSINIL'
           | 'YAML'
           | 'YES'
           | 'ZEROFILL'
           | 'ZONE'

KeywordOrIdentifier

S_IDENTIFIER S_QUOTED_IDENTIFIER NAME NEXT VALUE PUBLIC STRING DATA TYPE VERSION
         ::= S_IDENTIFIER
           | S_QUOTED_IDENTIFIER
           | 'NAME'
           | 'NEXT'
           | 'VALUE'
           | 'PUBLIC'
           | 'STRING'
           | 'DATA'
           | 'TYPE'
           | 'VERSION'

Statement

IF Condition SingleStatement Block ST_SEMICOLON ELSE SingleStatement Block ST_SEMICOLON SingleStatement Block ST_SEMICOLON EOF UnsupportedStatement
         ::= 'IF' Condition ( SingleStatement | Block ) ST_SEMICOLON? ( 'ELSE' ( SingleStatement | Block ) ST_SEMICOLON? )?
           | ( SingleStatement | Block ) ( ST_SEMICOLON | EOF )
           | UnsupportedStatement
Not referenced by any.

SingleStatement

OracleBlock SqlServerRoutine InsertBulk WithList SelectWithWithItems InsertWithWithItems UpdateWithWithItems DeleteWithWithItems Merge Select TableStatement Upsert Alter RenameTableStatement Create Drop Analyze Truncate Execute DoStatement SetIdentityInsert Set Reset Show RefreshMaterializedView Use SavepointStatement RollbackStatement COMMIT Comment Describe Explain Declare Grant Revoke PragmaStatement ExtensionStatement AttachStatement DetachStatement ConnectStatement DisconnectStatement PrepareStatement DeallocateStatement CopyStatement AssertStatement ExportDataStatement LoadDataStatement PurgeStatement SessionStatement LockStatement Import Export
         ::= OracleBlock
           | SqlServerRoutine
           | InsertBulk
           | Select
           | TableStatement
           | Upsert
           | Alter
           | RenameTableStatement
           | Create
           | Drop
           | Analyze
           | Truncate
           | Execute
           | DoStatement
           | SetIdentityInsert
           | Set
           | Reset
           | Show
           | RefreshMaterializedView
           | Use
           | SavepointStatement
           | RollbackStatement
           | 'COMMIT'
           | Comment
           | Describe
           | Explain
           | Declare
           | Grant
           | Revoke
           | PragmaStatement
           | ExtensionStatement
           | AttachStatement
           | DetachStatement
           | ConnectStatement
           | DisconnectStatement
           | PrepareStatement
           | DeallocateStatement
           | CopyStatement
           | AssertStatement
           | ExportDataStatement
           | LoadDataStatement
           | PurgeStatement
           | SessionStatement
           | LockStatement
           | Import
           | Export

OracleBlock

DECLARE OracleVariableDeclaration BEGIN OracleBlockStatements AccessKeyword OracleExceptionHandler END
         ::= ( 'DECLARE' OracleVariableDeclaration+ )? 'BEGIN' OracleBlockStatements ( AccessKeyword OracleExceptionHandler+ )? 'END'

OracleVariableDeclaration

RelObjectName AccessKeyword ColDataType NOT NULL := DEFAULT Expression ST_SEMICOLON
         ::= RelObjectName AccessKeyword? ColDataType ( 'NOT' 'NULL' )? ( ( ':=' | 'DEFAULT' ) Expression )? ST_SEMICOLON
Referenced by:

OracleBlockStatements

OracleBlockStatement ST_SEMICOLON
         ::= ( OracleBlockStatement ST_SEMICOLON )+

OracleBlockStatement

OracleBlock Column JdbcNamedParameter := Expression NULL OracleImplicitCall SingleStatement
         ::= OracleBlock
           | ( Column | JdbcNamedParameter ) ':=' Expression
           | 'NULL'
           | OracleImplicitCall
           | SingleStatement
Referenced by:

OracleImplicitCall

ColumnIdentifier ExpressionList
         ::= ColumnIdentifier ExpressionList?
Referenced by:

OracleExceptionHandler

WHEN TypeDdlName OR THEN OracleBlockStatements
         ::= 'WHEN' TypeDdlName ( 'OR' TypeDdlName )* 'THEN' OracleBlockStatements
Referenced by:

DoStatement

DO AccessKeyword RelObjectName S_CHAR_LITERAL S_CHAR_LITERAL AccessKeyword RelObjectName
Referenced by:

Block

BEGIN ST_SEMICOLON SingleStatement Block ST_SEMICOLON END ST_SEMICOLON
Block    ::= 'BEGIN' ST_SEMICOLON* ( ( SingleStatement | Block ) ST_SEMICOLON )+ 'END' ST_SEMICOLON?

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.

LockStatement

LOCK TABLE Table IN ROW SHARE EXCLUSIVE SHARE ROW EXCLUSIVE UPDATE EXCLUSIVE MODE NOWAIT WAIT S_LONG
         ::= 'LOCK' 'TABLE' Table 'IN' ( 'ROW' ( 'SHARE' | 'EXCLUSIVE' ) | 'SHARE' ( 'ROW' 'EXCLUSIVE' | 'UPDATE' )? | 'EXCLUSIVE' ) 'MODE' ( 'NOWAIT' | 'WAIT' S_LONG )?
Referenced by:

LikeClause

LIKE Table ( ColumnSelectItemsList ) INCLUDING EXCLUDING RelObjectName
         ::= 'LIKE' Table ( '(' ColumnSelectItemsList ')' )? ( ( 'INCLUDING' | 'EXCLUDING' ) RelObjectName )*

Export

EXPORT Table ParenthesedColumnList ParenthesedSelect INTO ExportIntoItem
Referenced by:

Import

IMPORT INTO Table ParenthesedColumnList ImportColumns FROM ImportFromItem
Import   ::= 'IMPORT' ( 'INTO' ( Table ParenthesedColumnList? | ImportColumns ) )? 'FROM' ImportFromItem
Referenced by:

SubImport

( IMPORT INTO ImportColumns FROM ImportFromItem )
         ::= '(' 'IMPORT' ( 'INTO' ImportColumns )? 'FROM' ImportFromItem ')'
Referenced by:

ImportColumns

( ColumnDefinition LikeClause , )
         ::= '(' ( ColumnDefinition | LikeClause ) ( ',' ( ColumnDefinition | LikeClause ) )* ')'
Referenced by:

ExportIntoItem

DBMSDestination FileDestination ScriptSourceDestination ErrorClause
Referenced by:

ImportFromItem

DBMSSource FileSource ScriptSourceDestination ErrorClause
Referenced by:

DBMSDestination

DBMSType ConnectionDefinition TABLE Table ParenthesedColumnList DBMSTableDestinationOptionList ImportExportStatement
Referenced by:

DBMSTableDestinationOption

REPLACE TRUNCATE CREATED BY S_CHAR_LITERAL
         ::= 'REPLACE'
           | 'TRUNCATE'
           | 'CREATED' 'BY' S_CHAR_LITERAL

DBMSTableDestinationOptionList

DBMSTableDestinationOption
         ::= DBMSTableDestinationOption+
Referenced by:

DBMSSource

DBMSType ConnectionDefinition TABLE Table ParenthesedColumnList ImportExportStatementsList
Referenced by:

DBMSType

EXA ORA JDBC DRIVER = S_CHAR_LITERAL
DBMSType ::= 'EXA'
           | 'ORA'
           | 'JDBC' ( 'DRIVER' '=' S_CHAR_LITERAL )?

FileType

CSV FBV
FileType ::= 'CSV'
           | 'FBV'

ImportExportStatement

STATEMENT S_CHAR_LITERAL
         ::= 'STATEMENT' S_CHAR_LITERAL

ImportExportStatementsList

ImportExportStatement
         ::= ImportExportStatement+
Referenced by:

File

FILE S_CHAR_LITERAL
File     ::= 'FILE' S_CHAR_LITERAL

FileList

File

ConnectionFileDefinition

ConnectionOrCloudConnectionDefinition FileList

ConnectionFileDefinitionList

ConnectionFileDefinition
         ::= ConnectionFileDefinition+

CSVDestinationColumn

S_LONG .. S_LONG FORMAT = S_CHAR_LITERAL DELIMIT = ALWAYS NEVER AUTO
         ::= S_LONG ( '..' S_LONG | ( 'FORMAT' '=' S_CHAR_LITERAL )? ( 'DELIMIT' '=' ( 'ALWAYS' | 'NEVER' | 'AUTO' ) )? )
Referenced by:

CSVDestinationColumnList

CSVDestinationColumn ,
         ::= CSVDestinationColumn ( ',' CSVDestinationColumn )*
Referenced by:

CSVSourceColumn

S_LONG .. S_LONG FORMAT = S_CHAR_LITERAL
         ::= S_LONG ( '..' S_LONG | 'FORMAT' '=' S_CHAR_LITERAL )?
Referenced by:

CSVSourceColumnList

CSVSourceColumn ,
         ::= CSVSourceColumn ( ',' CSVSourceColumn )*
Referenced by:

FBVDestinationColumn

SIZE = S_LONG FORMAT PADDING = S_CHAR_LITERAL ALIGN = LEFT RIGHT
         ::= 'SIZE' '=' S_LONG
           | ( 'FORMAT' | 'PADDING' ) '=' S_CHAR_LITERAL
           | 'ALIGN' '=' ( 'LEFT' | 'RIGHT' )
Referenced by:

FBVDestinationColumnList

FBVDestinationColumn ,
         ::= FBVDestinationColumn ( ','? FBVDestinationColumn )*
Referenced by:

FBVSourceColumn

SIZE START = S_LONG FORMAT PADDING = S_CHAR_LITERAL ALIGN = LEFT RIGHT
         ::= ( 'SIZE' | 'START' ) '=' S_LONG
           | ( 'FORMAT' | 'PADDING' ) '=' S_CHAR_LITERAL
           | 'ALIGN' '=' ( 'LEFT' | 'RIGHT' )
Referenced by:

FBVSourceColumnList

FBVSourceColumn ,
         ::= FBVSourceColumn ( ','? FBVSourceColumn )*
Referenced by:

FileDestinationOption

REPLACE TRUNCATE WITH COLUMN NAMES ENCODING NULL BOOLEAN ROW SEPARATOR COLUMN SEPARATOR DELIMITER = S_CHAR_LITERAL DELIMIT = ALWAYS NEVER AUTO
         ::= 'REPLACE'
           | 'TRUNCATE'
           | 'WITH' 'COLUMN' 'NAMES'
           | ( 'ENCODING' | 'NULL' | 'BOOLEAN' | 'ROW' 'SEPARATOR' | 'COLUMN' ( 'SEPARATOR' | 'DELIMITER' ) ) '=' S_CHAR_LITERAL
           | 'DELIMIT' '=' ( 'ALWAYS' | 'NEVER' | 'AUTO' )

FileDestinationOptionList

FileDestinationOption
         ::= FileDestinationOption+
Referenced by:

FileSourceOption

TRIM LTRIM RTRIM ENCODING NULL COLUMN SEPARATOR DELIMITER = S_CHAR_LITERAL SKIP = S_LONG ROW SEPARATOR = S_CHAR_LITERAL SIZE = S_LONG
         ::= 'TRIM'
           | 'LTRIM'
           | 'RTRIM'
           | ( 'ENCODING' | 'NULL' | 'COLUMN' ( 'SEPARATOR' | 'DELIMITER' ) ) '=' S_CHAR_LITERAL
           | 'SKIP' '=' S_LONG
           | 'ROW' ( 'SEPARATOR' '=' S_CHAR_LITERAL | 'SIZE' '=' S_LONG )
Referenced by:

FileSourceOptionList

FileSourceOption
         ::= FileSourceOption+
Referenced by:

FileDestination

FileType ConnectionFileDefinitionList LOCAL SECURE FileType FileList ( CSVDestinationColumnList FBVDestinationColumnList ) FileDestinationOptionList CertificateVerification
Referenced by:

FileSource

FileType ConnectionFileDefinitionList LOCAL SECURE FileType FileList ( CSVSourceColumnList FBVSourceColumnList ) FileSourceOptionList CertificateVerification
Referenced by:

CertificateVerification

IGNORE VERIFY CERTIFICATE PUBLIC KEY S_CHAR_LITERAL PUBLIC KEY S_CHAR_LITERAL
         ::= ( 'IGNORE' | 'VERIFY' ) 'CERTIFICATE' ( 'PUBLIC' 'KEY' S_CHAR_LITERAL )?
           | 'PUBLIC' 'KEY' S_CHAR_LITERAL

ScriptSourceDestination

SCRIPT Table ConnectionDefinition WITH RelObjectName = S_CHAR_LITERAL
         ::= 'SCRIPT' Table ConnectionDefinition? ( 'WITH' ( RelObjectName '=' S_CHAR_LITERAL )+ )?

UserIdentification

USER S_CHAR_LITERAL IDENTIFIED BY S_CHAR_LITERAL
         ::= 'USER' S_CHAR_LITERAL 'IDENTIFIED' 'BY' S_CHAR_LITERAL

ConnectionDefinition

AT RelObjectName S_CHAR_LITERAL UserIdentification CertificateVerification

CloudConnectionDefinition

AT CLOUD NONE AZURE BLOBSTORAGE RelObjectName S_CHAR_LITERAL UserIdentification
         ::= 'AT' 'CLOUD' ( 'NONE' | 'AZURE' 'BLOBSTORAGE' ) ( RelObjectName | S_CHAR_LITERAL ) UserIdentification?

ConnectionOrCloudConnectionDefinition

CloudConnectionDefinition ConnectionDefinition
         ::= CloudConnectionDefinition
           | ConnectionDefinition

ErrorClause

ERRORS INTO ErrorDestination ( Expression ) REPLACE TRUNCATE RejectClause RejectClause
         ::= 'ERRORS' 'INTO' ErrorDestination ( '(' Expression ')' )? ( 'REPLACE' | 'TRUNCATE' )? RejectClause?
           | RejectClause

RejectClause

REJECT LIMIT S_LONG UNLIMITED ERRORS
         ::= 'REJECT' 'LIMIT' ( S_LONG | 'UNLIMITED' ) 'ERRORS'?
Referenced by:

ErrorDestination

CSVFileDestination Table
         ::= CSVFileDestination
           | Table
Referenced by:

CSVFileDestination

CSV ConnectionOrCloudConnectionDefinition LOCAL SECURE CSV File
         ::= ( 'CSV' ConnectionOrCloudConnectionDefinition | 'LOCAL' 'SECURE'? 'CSV' ) File
Referenced by:

Declare

DECLARE UserVariable TABLE ( ColumnDefinition , ) AS RelObjectName ColDataType = Expression UserVariable ,
Declare  ::= 'DECLARE' UserVariable ( 'TABLE' '(' ColumnDefinition ( ',' ColumnDefinition )* ')' | 'AS' RelObjectName | ColDataType ( '=' Expression )? ( ',' UserVariable ColDataType ( '=' Expression )? )* )
Referenced by:

SessionStatement

SESSION BRANCH START APPLY DROP SHOW DESCRIBE S_IDENTIFIER S_QUOTED_IDENTIFIER S_CHAR_LITERAL S_LONG . S_IDENTIFIER S_QUOTED_IDENTIFIER S_CHAR_LITERAL S_LONG WITH S_IDENTIFIER KEEP = S_IDENTIFIER S_QUOTED_IDENTIFIER S_CHAR_LITERAL S_LONG TRUE FALSE ON OFF YES NO ,
         ::= ( 'SESSION' | 'BRANCH' ) ( 'START' | 'APPLY' | 'DROP' | 'SHOW' | 'DESCRIBE' ) ( ( S_IDENTIFIER | S_QUOTED_IDENTIFIER | S_CHAR_LITERAL | S_LONG ) ( '.' ( S_IDENTIFIER | S_QUOTED_IDENTIFIER | S_CHAR_LITERAL | S_LONG ) )? )? ( 'WITH' ( S_IDENTIFIER | 'KEEP' ) '=' ( S_IDENTIFIER | S_QUOTED_IDENTIFIER | S_CHAR_LITERAL | S_LONG | 'TRUE' | 'FALSE' | 'ON' | 'OFF' | 'YES' | 'NO' ) ( ',' ( S_IDENTIFIER | 'KEEP' ) '=' ( S_IDENTIFIER | S_QUOTED_IDENTIFIER | S_CHAR_LITERAL | S_LONG | 'TRUE' | 'FALSE' | 'ON' | 'OFF' | 'YES' | 'NO' ) )* )?
Referenced by:

Set

SET SqlServerSetOnOffOptions SetAssignments
Set      ::= 'SET' ( SqlServerSetOnOffOptions | SetAssignments )
Referenced by:

SetAssignments

LOCAL SESSION K_DATETIMELITERAL ZONE UserVariable IdentifierChain = Expression ZONE K_DATETIMELITERAL = RelObjectName ,
         ::= ( 'LOCAL' | 'SESSION' )? ( K_DATETIMELITERAL 'ZONE' | ( UserVariable | IdentifierChain ) '='? ) Expression ( ',' ( K_DATETIMELITERAL 'ZONE' | RelObjectName '='? )? Expression )*
Referenced by:

SqlServerSetOnOffOptions

S_IDENTIFIER , ON OFF
         ::= S_IDENTIFIER ( ',' S_IDENTIFIER )* ( 'ON' | 'OFF' )
Referenced by:

Reset

RESET K_DATETIMELITERAL ZONE RelObjectName ALL
Reset    ::= 'RESET' ( K_DATETIMELITERAL 'ZONE' | RelObjectName | 'ALL' )
Referenced by:

RenameTableStatement

RENAME TABLE IF EXISTS Table WAIT S_LONG NOWAIT TO Table Table ,
         ::= 'RENAME' 'TABLE'? ( 'IF' 'EXISTS' )? Table ( 'WAIT' S_LONG | 'NOWAIT' )? 'TO' Table ( ',' Table 'TO' Table )*
Referenced by:

CreateMacro

TEMP TEMPORARY MACRO RelObjectNames ( RelObjectName := Expression , ) AS TABLE Select Expression
         ::= ( 'TEMP' | 'TEMPORARY' )? 'MACRO' RelObjectNames '(' ( RelObjectName ( ':=' Expression )? ( ',' RelObjectName ( ':=' Expression )? )* )? ')' 'AS' ( 'TABLE' Select | Expression )
Referenced by:

CopyStatement

COPY ( Select ) Table ( ColumnList ) FROM TO S_CHAR_LITERAL S_IDENTIFIER ( DatabaseOption , )
         ::= 'COPY' ( '(' Select ')' | Table ( '(' ColumnList ')' )? ) ( 'FROM' | 'TO' ) ( S_CHAR_LITERAL | S_IDENTIFIER ) ( '(' DatabaseOption ( ',' DatabaseOption )* ')' )?
Referenced by:

PrepareStatement

PREPARE RelObjectNames AS SingleStatement
         ::= 'PREPARE' RelObjectNames 'AS' SingleStatement
Referenced by:

DeallocateStatement

DEALLOCATE PREPARE RelObjectNames
         ::= 'DEALLOCATE' 'PREPARE'? RelObjectNames
Referenced by:

ConnectStatement

CONNECT S_CHAR_LITERAL RelObjectNames AS RelObjectNames
         ::= 'CONNECT' ( S_CHAR_LITERAL | RelObjectNames ) ( 'AS' RelObjectNames )?
Referenced by:

DisconnectStatement

DISCONNECT RelObjectNames
         ::= 'DISCONNECT' RelObjectNames?
Referenced by:

AttachStatement

ATTACH DATABASE IF NOT EXISTS S_CHAR_LITERAL RelObjectNames AS RelObjectNames ( DatabaseOption , )
         ::= 'ATTACH' 'DATABASE'? ( 'IF' 'NOT' 'EXISTS' )? ( S_CHAR_LITERAL | RelObjectNames ) ( 'AS' RelObjectNames )? ( '(' DatabaseOption ( ',' DatabaseOption )* ')' )?
Referenced by:

DetachStatement

DETACH DATABASE IF EXISTS RelObjectNames
         ::= 'DETACH' 'DATABASE'? ( 'IF' 'EXISTS' )? RelObjectNames
Referenced by:

ExtensionStatement

FORCE INSTALL LOAD S_CHAR_LITERAL RelObjectNames FROM S_CHAR_LITERAL RelObjectNames
         ::= 'FORCE'? ( 'INSTALL' | 'LOAD' ) ( S_CHAR_LITERAL | RelObjectNames ) ( 'FROM' ( S_CHAR_LITERAL | RelObjectNames ) )?
Referenced by:

PragmaStatement

PRAGMA RelObjectNames ( ExpressionList ) = SimpleExpression
         ::= 'PRAGMA' RelObjectNames ( '(' ExpressionList ')' | '=' SimpleExpression )?
Referenced by:

LoadDataStatement

LOAD DATA INTO OVERWRITE Table ( ColumnDefinition , ) S_IDENTIFIER ( ExpressionList ) FROM S_IDENTIFIER ( ExpressionList ) WITH PARTITION COLUMNS WITH S_IDENTIFIER RelObjectNames
         ::= 'LOAD' 'DATA' ( 'INTO' | 'OVERWRITE' ) Table ( '(' ColumnDefinition ( ',' ColumnDefinition )* ')' )? ( S_IDENTIFIER '(' ExpressionList ')' )? 'FROM' S_IDENTIFIER '(' ExpressionList ')' ( 'WITH' 'PARTITION' 'COLUMNS' )? ( 'WITH' S_IDENTIFIER RelObjectNames )?
Referenced by:

ExportDataStatement

EXPORT DATA WITH S_IDENTIFIER RelObjectNames S_IDENTIFIER ( ExpressionList ) AS Select
         ::= 'EXPORT' 'DATA' ( 'WITH' S_IDENTIFIER RelObjectNames )? ( S_IDENTIFIER '(' ExpressionList ')' )? 'AS' Select
Referenced by:

AssertStatement

ASSERT Expression AS S_CHAR_LITERAL
         ::= 'ASSERT' Expression ( 'AS' S_CHAR_LITERAL )?
Referenced by:

PurgeStatement

PURGE TABLE Table INDEX Index RECYCLEBIN DBA_RECYCLEBIN TABLESPACE S_IDENTIFIER USER S_IDENTIFIER
         ::= 'PURGE' ( 'TABLE' Table | 'INDEX' Index | 'RECYCLEBIN' | 'DBA_RECYCLEBIN' | 'TABLESPACE' S_IDENTIFIER ( 'USER' S_IDENTIFIER )? )
Referenced by:

Describe

DESCRIBE DESC Select Table
Describe ::= ( 'DESCRIBE' | 'DESC' ) ( Select | Table )
Referenced by:

Explain

EXPLAIN SUMMARIZE ( PostgresqlExplainOptions ) ExplainStatementOptions WithList SelectWithWithItems InsertWithWithItems UpdateWithWithItems DeleteWithWithItems Merge Table
Referenced by:

PostgresqlExplainOptions

PostgresqlExplainOption ,
         ::= PostgresqlExplainOption ( ',' PostgresqlExplainOption )*
Referenced by:

PostgresqlExplainOption

ANALYZE VERBOSE COSTS BUFFERS FORMAT SETTINGS S_IDENTIFIER TRUE FALSE ON OFF XML JSON YAML K_TEXT_LITERAL NONE BINARY S_LONG S_IDENTIFIER
         ::= ( 'ANALYZE' | 'VERBOSE' | 'COSTS' | 'BUFFERS' | 'FORMAT' | 'SETTINGS' | S_IDENTIFIER ) ( 'TRUE' | 'FALSE' | 'ON' | 'OFF' | 'XML' | 'JSON' | 'YAML' | K_TEXT_LITERAL | 'NONE' | 'BINARY' | S_LONG | S_IDENTIFIER )?
Referenced by:

ExplainOptionBoolean

TRUE FALSE ON OFF
         ::= ( 'TRUE' | 'FALSE' | 'ON' | 'OFF' )?
Referenced by:

ExplainFormatOption

XML JSON YAML
         ::= ( 'XML' | 'JSON' | 'YAML' )?
Referenced by:

ExplainStatementOptions

ANALYZE BUFFERS COSTS VERBOSE ExplainOptionBoolean FORMAT PLAN FOR ExplainFormatOption
         ::= ( ( 'ANALYZE' | 'BUFFERS' | 'COSTS' | 'VERBOSE' ) ExplainOptionBoolean | ( 'FORMAT' | 'PLAN' 'FOR'? ) ExplainFormatOption )*
Referenced by:

SetIdentityInsert

SET AccessKeyword Table ON OFF
         ::= 'SET' AccessKeyword Table ( 'ON' | 'OFF' )
Referenced by:

Use

USE SCHEMA RelObjectName
Use      ::= 'USE' 'SCHEMA'? RelObjectName
Referenced by:

Show

SHOW ShowColumns ShowIndex ShowTables captureRest
Show     ::= 'SHOW' ( ShowColumns | ShowIndex | ShowTables | captureRest )
Referenced by:

ShowColumns

COLUMNS FROM RelObjectName
         ::= 'COLUMNS' 'FROM' RelObjectName
Referenced by:

ShowIndex

INDEX FROM RelObjectName
         ::= 'INDEX' 'FROM' RelObjectName
Referenced by:

RefreshMaterializedView

REFRESH MATERIALIZED VIEW CONCURRENTLY Table WITH NO DATA captureRest
         ::= 'REFRESH' 'MATERIALIZED' 'VIEW' 'CONCURRENTLY'? Table ( 'WITH' 'NO'? 'DATA' )? captureRest
Referenced by:

ShowTables

EXTENDED FULL TABLES FROM IN RelObjectName LIKE SimpleExpression WHERE Expression
         ::= 'EXTENDED'? 'FULL'? 'TABLES' ( ( 'FROM' | 'IN' ) RelObjectName )? ( 'LIKE' SimpleExpression | 'WHERE' Expression )?
Referenced by:

Values

VALUES VALUE ExpressionList
Values   ::= ( 'VALUES' | 'VALUE' ) ExpressionList

ReturningClause

RETURNING RETURN ReturningOutputAliasList SelectItemsList INTO Table UserVariable ,
         ::= ( 'RETURNING' | 'RETURN' ) ReturningOutputAliasList? SelectItemsList ( 'INTO' ( Table | UserVariable ) ( ',' ( Table | UserVariable ) )* )?
Referenced by:

ReturningReferenceKind

RelObjectName
         ::= RelObjectName

ReturningOutputAliasDefinition

ReturningReferenceKind AS RelObjectName
         ::= ReturningReferenceKind 'AS' RelObjectName
Referenced by:

ReturningOutputAliasList

WITH ( ReturningOutputAliasDefinition , )
         ::= 'WITH' '(' ReturningOutputAliasDefinition ( ',' ReturningOutputAliasDefinition )* ')'
Referenced by:

UpdateWithWithItems

Update
         ::= Update
Referenced by:

Update

UPDATE LOW_PRIORITY IGNORE TableWithAliasAndMysqlIndexHint ForPortionClause JoinsList UpdateFromClause SET UpdateSets OutputClause UpdateFromClause WhereClause PreferringClause OrderByElements PlainLimit OptionClause ReturningClause

ForPortionClause

FOR AccessKeyword OF RelObjectName FROM Expression TO Expression
         ::= 'FOR' AccessKeyword 'OF' RelObjectName 'FROM' Expression 'TO' Expression
Referenced by:

UpdateFromClause

FROM FromItem JoinsList
         ::= 'FROM' FromItem JoinsList?
Referenced by:

UpdateSets

Column = Expression ParenthesedExpressionList = ParenthesedSelect ParenthesedExpressionList , Column = Expression ParenthesedExpressionList = ParenthesedSelect ParenthesedExpressionList

Partitions

Column = Expression ,
         ::= Column ( '=' Expression )? ( ',' Column ( '=' Expression )? )*
Referenced by:

InsertBulk

INSERT AccessKeyword Table ( InsertBulkColumn , ) WITH ( InsertBulkOption , )
         ::= 'INSERT' AccessKeyword Table '(' InsertBulkColumn ( ',' InsertBulkColumn )* ')' ( 'WITH' '(' InsertBulkOption ( ',' InsertBulkOption )* ')' )?
Referenced by:

InsertBulkColumn

RelObjectName ColDataType COLLATE RelObjectName
         ::= RelObjectName ColDataType ( 'COLLATE' RelObjectName )?
Referenced by:

InsertBulkOption

ORDER ( Column ASC DESC , ) AccessKeyword = S_LONG RelObjectName
         ::= 'ORDER' '(' Column ( 'ASC' | 'DESC' )? ( ',' Column ( 'ASC' | 'DESC' )? )* ')'
           | AccessKeyword '=' S_LONG
           | RelObjectName
Referenced by:

InsertWithWithItems

Insert
         ::= Insert
Referenced by:

Insert

INSERT LOW_PRIORITY DELAYED HIGH_PRIORITY IGNORE ALL FIRST OracleMultiInsertClause OracleMultiInsertWhenBranch OracleMultiInsertElseBranch Select OVERWRITE TABLE INTO TABLE TableReference PARTITION ( Partitions ) AS RelObjectName ( ColumnList ) BY NAME K_STRING_FUNCTION_NAME OVERRIDING SYSTEM USER VALUE OutputClause DEFAULT VALUES SET UpdateSets Select Alias ON DUPLICATE KEY UPDATE InsertDuplicateAction ON CONFLICT InsertConflictTarget InsertConflictAction ReturningClause
Insert   ::= 'INSERT' ( 'LOW_PRIORITY' | 'DELAYED' | 'HIGH_PRIORITY' )? 'IGNORE'? ( ( 'ALL' | 'FIRST' ) ( OracleMultiInsertClause+ | OracleMultiInsertWhenBranch+ OracleMultiInsertElseBranch? ) Select | ( 'OVERWRITE' 'TABLE' | 'INTO' 'TABLE'? )? TableReference ( 'PARTITION' '(' Partitions ')' )? ( 'AS'? RelObjectName )? ( '(' ColumnList ')' )? ( 'BY' ( 'NAME' | K_STRING_FUNCTION_NAME ) )? ( 'OVERRIDING' ( 'SYSTEM' | 'USER' ) 'VALUE' )? OutputClause? ( 'DEFAULT' 'VALUES' | 'SET' UpdateSets | Select ) Alias? ( 'ON' 'DUPLICATE' 'KEY' 'UPDATE' InsertDuplicateAction )? ( 'ON' 'CONFLICT' InsertConflictTarget? InsertConflictAction )? ReturningClause? )

OracleMultiInsertClause

INTO Table ( ColumnList ) Select
         ::= 'INTO' Table ( '(' ColumnList ')' )? Select

OracleMultiInsertWhenBranch

WHEN Expression THEN OracleMultiInsertClauseList
         ::= 'WHEN' Expression 'THEN' OracleMultiInsertClauseList
Referenced by:

OracleMultiInsertElseBranch

ELSE OracleMultiInsertClauseList
         ::= 'ELSE' OracleMultiInsertClauseList
Referenced by:

OracleMultiInsertClauseList

OracleMultiInsertClause
         ::= OracleMultiInsertClause+

InsertConflictTarget

( InsertConflictIndexElement , ) WhereClause ON CONSTRAINT RelObjectNameExt
         ::= '(' InsertConflictIndexElement ( ',' InsertConflictIndexElement )* ')' WhereClause?
           | 'ON' 'CONSTRAINT' RelObjectNameExt
Referenced by:

InsertConflictIndexElement

Function RelObjectNameExt ( Expression ) COLLATE RelObjectNames RelObjectNames
         ::= ( Function | RelObjectNameExt | '(' Expression ')' ) ( 'COLLATE' RelObjectNames )? RelObjectNames?
Referenced by:

InsertConflictAction

DO NOTHING UPDATE SET UpdateSets WhereClause
         ::= 'DO' ( 'NOTHING' | 'UPDATE' 'SET' UpdateSets WhereClause? )
Referenced by:

InsertDuplicateAction

NOTHING UpdateSets WhereClause
         ::= 'NOTHING'
           | UpdateSets WhereClause?
Referenced by:

OutputClause

OUTPUT SelectItemsList INTO UserVariable Table ColumnsNamesList
         ::= 'OUTPUT' SelectItemsList ( 'INTO' ( UserVariable | Table ) ColumnsNamesList? )?
Referenced by:

Upsert

UPSERT INSERT OR REPLACE INTO Table ParenthesedColumnList SET UpdateSets Select ON DUPLICATE KEY UPDATE InsertDuplicateAction
Upsert   ::= ( 'UPSERT' | ( 'INSERT' 'OR' )? 'REPLACE' ) 'INTO'? Table ParenthesedColumnList? ( 'SET' UpdateSets | Select ) ( 'ON' 'DUPLICATE' 'KEY' 'UPDATE' InsertDuplicateAction )?
Referenced by:

DeleteWithWithItems

Delete
         ::= Delete
Referenced by:

Delete

DELETE LOW_PRIORITY QUICK IGNORE TableWithAlias , OutputClause FROM TableWithAlias ForPortionClause JoinsList USING FromItem , WhereClause PreferringClause OrderByElements PlainLimit OptionClause ReturningClause
Delete   ::= 'DELETE' 'LOW_PRIORITY'? 'QUICK'? 'IGNORE'? ( ( TableWithAlias ( ',' TableWithAlias )* OutputClause? )? 'FROM' )? ( TableWithAlias ForPortionClause? JoinsList? )? ( 'USING' FromItem ( ',' FromItem )* )? WhereClause? PreferringClause? OrderByElements? PlainLimit? OptionClause? ReturningClause?

Merge

MERGE INTO TableWithAlias USING FromItem ON Expression MergeOperations ReturningClause OutputClause OptionClause
Referenced by:

MergeOperations

MergeWhenMatched MergeWhenNotMatched
         ::= ( MergeWhenMatched | MergeWhenNotMatched )*
Referenced by:

MergeWhenMatched

WHEN MATCHED AND Expression THEN DELETE MergeUpdateClause
         ::= 'WHEN' 'MATCHED' ( 'AND' Expression )? 'THEN' ( 'DELETE' | MergeUpdateClause )
Referenced by:

MergeUpdateClause

UPDATE SET UpdateSets WHERE Expression DELETE WHERE Expression
         ::= 'UPDATE' 'SET' UpdateSets ( 'WHERE' Expression )? ( 'DELETE' 'WHERE' Expression )?

MergeInsertClause

INSERT ( ColumnList ) VALUES ( SimpleExpressionList ) WHERE Expression
         ::= 'INSERT' ( '(' ColumnList ')' )? 'VALUES' '(' SimpleExpressionList ')' ( 'WHERE' Expression )?
Referenced by:

MergeWhenNotMatched

WHEN NOT MATCHED BY S_IDENTIFIER AND Expression THEN MergeInsertClause MergeUpdateClause DELETE
         ::= 'WHEN' 'NOT' 'MATCHED' ( 'BY' S_IDENTIFIER )? ( 'AND' Expression )? 'THEN' ( MergeInsertClause | MergeUpdateClause | 'DELETE' )
Referenced by:

RelObjectNames

RelObjectName ... .. . : RelObjectNameExt
         ::= RelObjectName ( ( '...' | '..' | '.' | ':' ) RelObjectNameExt )*

ColumnIdentifier

RelObjectName ... .. . RelObjectNameExt
         ::= RelObjectName ( ( '...' | '..' | '.' ) RelObjectNameExt )*

Column

ColumnIdentifier COMMENT S_CHAR_LITERAL . K_NEXTVAL ArrayConstructor

RelObjectName

DATA_TYPE S_IDENTIFIER S_QUOTED_IDENTIFIER K_DATETIMELITERAL K_DATE_LITERAL NonReservedWord ALL ANY CASEWHEN CONNECT CREATE DEFAULT GLOBAL GROUP GROUPING IF IIF IGNORE IN INTERVAL LEFT LIMIT K_NEXTVAL OFFSET ON OPTIMIZE ORDER PROCEDURE PUBLIC QUALIFY RIGHT FILE SET SOME START TABLES TOP VALUE VALUES
         ::= DATA_TYPE
           | S_IDENTIFIER
           | S_QUOTED_IDENTIFIER
           | K_DATETIMELITERAL
           | K_DATE_LITERAL
           | NonReservedWord
           | 'ALL'
           | 'ANY'
           | 'CASEWHEN'
           | 'CONNECT'
           | 'CREATE'
           | 'DEFAULT'
           | 'GLOBAL'
           | 'GROUP'
           | 'GROUPING'
           | 'IF'
           | 'IIF'
           | 'IGNORE'
           | 'IN'
           | 'INTERVAL'
           | 'LEFT'
           | 'LIMIT'
           | K_NEXTVAL
           | 'OFFSET'
           | 'ON'
           | 'OPTIMIZE'
           | 'ORDER'
           | 'PROCEDURE'
           | 'PUBLIC'
           | 'QUALIFY'
           | 'RIGHT'
           | 'FILE'
           | 'SET'
           | 'SOME'
           | 'START'
           | 'TABLES'
           | 'TOP'
           | 'VALUE'
           | 'VALUES'
Referenced by:

RelObjectNameExt

RelObjectName FROM K_SELECT CURRENT
         ::= RelObjectName
           | 'FROM'
           | K_SELECT
           | 'CURRENT'

Table

RelObjectNames TimeTravelBeforeAlias S_CHAR_LITERAL
           | S_CHAR_LITERAL

TableReference

TableVariable Table
         ::= TableVariable
           | Table

TableVariable

S_AT_IDENTIFIER
         ::= S_AT_IDENTIFIER
Referenced by:

TableWithAlias

TableReference Alias
         ::= TableReference Alias?

TableWithAliasAndMysqlIndexHint

TableWithAlias MySQLIndexHint
         ::= TableWithAlias MySQLIndexHint?
Referenced by:

Number

S_DOUBLE S_LONG
Number   ::= S_DOUBLE
           | S_LONG
Referenced by:

SampleClause

SAMPLE BLOCK TABLESAMPLE SYSTEM BERNOULLI USING SAMPLE SYSTEM BERNOULLI S_IDENTIFIER ( Number % PERCENT ROWS ) REPEATABLE ( Number ) SEED ( Number ) Number % PERCENT ROWS OFFSET Number ( SYSTEM BERNOULLI S_IDENTIFIER , Number )
         ::= ( 'SAMPLE' 'BLOCK'? | 'TABLESAMPLE' ( 'SYSTEM' | 'BERNOULLI' ) | 'USING' 'SAMPLE' ( 'SYSTEM' | 'BERNOULLI' | S_IDENTIFIER )? ) ( '(' Number ( '%' | 'PERCENT' | 'ROWS' )? ')' ( 'REPEATABLE' '(' Number ')' )? ( 'SEED' '(' Number ')' )? | Number ( '%' | 'PERCENT' | 'ROWS' )? ( 'OFFSET' Number )? ) ( '(' ( 'SYSTEM' | 'BERNOULLI' | S_IDENTIFIER ) ( ',' Number )? ')' )?
Referenced by:

SelectWithWithItems

Select
         ::= Select
Referenced by:

Select

WithList FromFirstSelect FromQuery PivotQuery UnPivotQuery PlainSelect Values ParenthesedSelect Alias FromQueryFromSelect SetOperationList OrderByElements InterpolateClause OptionClause LimitWithOffset Offset Fetch WithIsolation

FromFirstSelect

FROM FromItem JoinsList K_SELECT ALL DISTINCT SelectItemsList WhereClause GroupByColumnReferences Having Qualify OrderByElements LimitWithOffset Offset
Referenced by:

FromQuery

FROM FromItem LateralViews JoinsList |> PipeOperator
         ::= 'FROM' FromItem LateralViews? JoinsList? ( '|>' PipeOperator )*
Referenced by:

FromQueryFromSelect

|> PipeOperator
         ::= ( '|>' PipeOperator )+
Referenced by:

PipeOperator

SelectPipeOperator SetPipeOperator DropPipeOperator AsPipeOperator WherePipeOperator LimitPipeOperator AggregatePipeOperator OrderByPipeOperator SetOperationPipeOperator JoinPipeOperator CallPipeOperator TableSamplePipeOperator PivotPipeOperator UnPivotPipeOperator
         ::= SelectPipeOperator
           | SetPipeOperator
           | DropPipeOperator
           | AsPipeOperator
           | WherePipeOperator
           | LimitPipeOperator
           | AggregatePipeOperator
           | OrderByPipeOperator
           | SetOperationPipeOperator
           | JoinPipeOperator
           | CallPipeOperator
           | TableSamplePipeOperator
           | PivotPipeOperator
           | UnPivotPipeOperator

SelectPipeOperator

K_SELECT DISTINCT ALL EXTEND WINDOW RENAME SelectItem ,
         ::= ( K_SELECT ( 'DISTINCT' | 'ALL' )? | 'EXTEND' | 'WINDOW' | 'RENAME' ) SelectItem ( ',' SelectItem )*
Referenced by:

WherePipeOperator

WHERE Expression
         ::= 'WHERE' Expression
Referenced by:

OrderSuffix

ASC DESC NULLS FIRST LAST
         ::= ( 'ASC' | 'DESC' ) ( 'NULLS' ( 'FIRST' | 'LAST' ) )?
Referenced by:

AggregatePipeOperator

AGGREGATE SelectItem OrderSuffix , GROUP AND ORDER BY SelectItem OrderSuffix ,
         ::= 'AGGREGATE' SelectItem OrderSuffix? ( ',' SelectItem OrderSuffix? )* ( 'GROUP' ( 'AND' 'ORDER' )? 'BY' SelectItem OrderSuffix? ( ',' SelectItem OrderSuffix? )* )?
Referenced by:

OrderByPipeOperator

OrderByElements
         ::= OrderByElements
Referenced by:

AsPipeOperator

AS Alias
         ::= 'AS' Alias
Referenced by:

JoinPipeOperator

JoinerExpression
         ::= JoinerExpression
Referenced by:

SetPipeOperator

SET UpdateSets
         ::= 'SET' UpdateSets
Referenced by:

DropPipeOperator

DROP ColumnList
         ::= 'DROP' ColumnList
Referenced by:

LimitPipeOperator

LIMIT Expression OFFSET Expression
         ::= 'LIMIT' Expression ( 'OFFSET' Expression )?
Referenced by:

SetOperationModifier

ALL DISTINCT BY NAME ContextualKeyword ( RelObjectName , ) STRICT CORRESPONDING ALL DISTINCT BY ALL DISTINCT ( RelObjectName , ) ALL DISTINCT
         ::= ( 'ALL' | 'DISTINCT' )? 'BY' 'NAME' ( ContextualKeyword '(' RelObjectName ( ',' RelObjectName )* ')' )?
           | 'STRICT'? 'CORRESPONDING' ( 'ALL' | 'DISTINCT' )? ( 'BY' ( 'ALL' | 'DISTINCT' )? '(' RelObjectName ( ',' RelObjectName )* ')' )?
           | 'ALL'
           | 'DISTINCT'

SetOperationPipeOperator

UNION INTERSECT EXCEPT SetOperationModifier ParenthesedSelect ,
         ::= ( 'UNION' | 'INTERSECT' | 'EXCEPT' ) SetOperationModifier? ParenthesedSelect ( ',' ParenthesedSelect )*
Referenced by:

CallPipeOperator

CALL TableFunction Alias
         ::= 'CALL' TableFunction Alias?
Referenced by:

TableSamplePipeOperator

TABLESAMPLE SYSTEM ( S_DOUBLE S_LONG PERCENT )
         ::= 'TABLESAMPLE' 'SYSTEM' '(' ( S_DOUBLE | S_LONG ) 'PERCENT' ')'
Referenced by:

PivotPipeOperator

PIVOT ( Function FOR Column IN ( SelectItemsList ) ) Alias
         ::= 'PIVOT' '(' Function 'FOR' Column 'IN' '(' SelectItemsList ')' ')' Alias?
Referenced by:

UnPivotPipeOperator

UNPIVOT ( Column FOR Column IN ( SelectItemsList ) ) Alias
         ::= 'UNPIVOT' '(' Column 'FOR' Column 'IN' '(' SelectItemsList ')' ')' Alias?
Referenced by:

TableStatement

TABLE Table OrderByElements LimitWithOffset Offset
         ::= 'TABLE' Table OrderByElements? LimitWithOffset? Offset?
Referenced by:

ParenthesedSelect

( Select )
         ::= '(' Select ')'

ParenthesedInsert

( Insert )
         ::= '(' Insert ')'
Referenced by:

ParenthesedUpdate

( Update )
         ::= '(' Update ')'
Referenced by:

ParenthesedDelete

( Delete )
         ::= '(' Delete ')'
Referenced by:

LateralView

LATERAL VIEW OUTER Function RelObjectName AS RelObjectName ,
         ::= 'LATERAL' 'VIEW' 'OUTER'? Function RelObjectName? 'AS' RelObjectName ( ',' RelObjectName )*
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
         ::= '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
         ::= LateralView+
Referenced by:

LateralSubSelect

LATERAL ( Select )
         ::= 'LATERAL' '(' Select ')'
Referenced by:

PlainSelect

K_SELECT STRAIGHT_JOIN Skip First Top ALL DISTINCT ON ( SelectItemsList ) DISTINCTROW UNIQUE SQL_CALC_FOUND_ROWS SQL_NO_CACHE SQL_CACHE AS STRUCT VALUE Top SelectItemsList MySqlSelectIntoClause IntoClause FROM FromItem LateralViews JoinsList FROM ONLY FromItem LateralViews JoinsList FINAL KSQLWindowClause PreWhereClause WhereClause OracleHierarchicalQueryClause PreferringClause PARTITION BY ComplexExpressionList ( ComplexExpressionList ) Having GroupByColumnReferences Having Qualify OrderByElements WINDOW RelObjectName AS windowDefinition , OrderByElements InterpolateClause ForClause OptionClause EMIT CHANGES FINAL LimitWithOffset BY ExpressionList Offset LimitWithOffset MySqlProcedureAnalyse Fetch WithIsolation FOR NO KEY UPDATE KEY SHARE READ FETCH ONLY OF Table , Wait NOWAIT SKIP LOCKED OrderByElements InterpolateClause MySqlSelectIntoClause SETTINGS UpdateSets OptimizeFor INTO TEMP Table WITH NO LOG
         ::= K_SELECT 'STRAIGHT_JOIN'? Skip? First? Top? ( 'ALL' | 'DISTINCT' ( 'ON' '(' SelectItemsList ')' )? | 'DISTINCTROW' | 'UNIQUE' | 'SQL_CALC_FOUND_ROWS' | 'SQL_NO_CACHE' | 'SQL_CACHE' )? ( 'AS' ( 'STRUCT' | 'VALUE' ) )? Top? SelectItemsList ( MySqlSelectIntoClause | IntoClause )? ( 'FROM' FromItem LateralViews? JoinsList? )? ( 'FROM' 'ONLY' FromItem LateralViews? JoinsList? )? 'FINAL'? KSQLWindowClause? PreWhereClause? WhereClause? OracleHierarchicalQueryClause? ( PreferringClause ( 'PARTITION' 'BY' ( ComplexExpressionList | '(' ComplexExpressionList ')' ) )? )? Having? GroupByColumnReferences? Having? Qualify? OrderByElements? ( 'WINDOW' RelObjectName 'AS' windowDefinition ( ',' RelObjectName 'AS' windowDefinition )* )? OrderByElements? InterpolateClause? ForClause? OptionClause? ( 'EMIT' ( 'CHANGES' | 'FINAL' ) )? ( LimitWithOffset ( 'BY' ExpressionList )? )? Offset? LimitWithOffset? MySqlProcedureAnalyse? Fetch? WithIsolation? ( 'FOR' ( ( 'NO' 'KEY' )? 'UPDATE' | 'KEY'? 'SHARE' | ( 'READ' | 'FETCH' ) 'ONLY' ) ( 'OF' Table ( ',' Table )* )? Wait? ( 'NOWAIT' | 'SKIP' 'LOCKED' )? OrderByElements? InterpolateClause? )? MySqlSelectIntoClause? ( 'SETTINGS' UpdateSets )? OptimizeFor? ( 'INTO' 'TEMP' Table )? ( 'WITH' 'NO' 'LOG' )?
Referenced by:

SetOperationList

UNION INTERSECT MINUS EXCEPT SetOperationModifier PlainSelect Values ParenthesedSelect OrderByElements InterpolateClause LimitWithOffset Offset LimitWithOffset Fetch WithIsolation
         ::= ( ( 'UNION' | 'INTERSECT' | 'MINUS' | 'EXCEPT' ) SetOperationModifier? ( PlainSelect | Values | ParenthesedSelect ) )+ OrderByElements? InterpolateClause? LimitWithOffset? Offset? LimitWithOffset? Fetch? WithIsolation?
Referenced by:

WithList

WITH WithItem ,
WithList ::= 'WITH' WithItem ( ',' WithItem )*

WithItem

FUNCTION WithFunctionDeclaration RECURSIVE RelObjectName ( SelectItemsList ) USING KEY ( ExpressionList ) AS NOT MATERIALIZED ParenthesedSelect ParenthesedInsert ParenthesedUpdate ParenthesedDelete WithItemExpression AS RelObjectName WithSearchClause WithCycleClause
WithItem ::= ( 'FUNCTION' WithFunctionDeclaration | 'RECURSIVE'? RelObjectName ( '(' SelectItemsList ')' )? ( 'USING' 'KEY' '(' ExpressionList ')' )? 'AS' ( 'NOT'? 'MATERIALIZED' )? ( ParenthesedSelect | ParenthesedInsert | ParenthesedUpdate | ParenthesedDelete ) | WithItemExpression 'AS' RelObjectName ) WithSearchClause? WithCycleClause?
Referenced by:

WithItemExpression

LambdaExpression ( LambdaExpression ) Expression
         ::= LambdaExpression
           | '(' LambdaExpression ')'
           | Expression
Referenced by:

WithSearchClause

SEARCH BREADTH DEPTH FIRST BY Column , SET RelObjectName
         ::= 'SEARCH' ( 'BREADTH' | 'DEPTH' ) 'FIRST' 'BY' Column ( ',' Column )* 'SET' RelObjectName
Referenced by:

WithCycleClause

CYCLE RelObjectName , SET RelObjectName TO Expression DEFAULT Expression USING RelObjectName
         ::= 'CYCLE' RelObjectName ( ',' RelObjectName )* 'SET' RelObjectName ( 'TO' Expression 'DEFAULT' Expression )? 'USING' RelObjectName
Referenced by:

WithFunctionDeclaration

RelObjectName ( WithFunctionParameter , ) RETURNS RelObjectName RETURN Expression
         ::= RelObjectName '(' ( WithFunctionParameter ( ',' WithFunctionParameter )* )? ')' 'RETURNS' RelObjectName 'RETURN' Expression
Referenced by:

WithFunctionParameter

RelObjectName ARRAY < RelObjectName > RelObjectName
         ::= RelObjectName ( 'ARRAY' '<' RelObjectName '>' | RelObjectName )
Referenced by:

ColumnSelectItemsList

SelectItem ,
         ::= SelectItem ( ',' SelectItem )*
Referenced by:

SelectItemsList

SelectItem ,
         ::= SelectItem ( ',' SelectItem )*

FunctionAllColumns

( Function ) . *
         ::= '('+ Function ')'+ '.' '*'
Not referenced by any.

SelectItem

SelectItemExpression Alias
         ::= SelectItemExpression Alias?

SelectItemExpression

ConnectByPriorOperator Condition ColumnsTransformer
Referenced by:

ColumnsTransformer

APPLY ( LambdaExpression Expression REPLACE ( SelectItemsList ) EXCEPT ParenthesedColumnList
         ::= ( 'APPLY' '(' ( LambdaExpression | Expression ) | 'REPLACE' '(' SelectItemsList ) ')'
           | 'EXCEPT' ParenthesedColumnList
Referenced by:

AllColumns

* EXCEPT EXCLUDE ParenthesedColumnList REPLACE ( SelectItemsList )
         ::= '*' ( ( 'EXCEPT' | 'EXCLUDE' ) ParenthesedColumnList )? ( 'REPLACE' '(' SelectItemsList ')' )?

AllTableColumns

Table . AllColumns
         ::= Table '.' AllColumns

Alias

AS RelObjectName AliasColumns AS RelObjectName S_CHAR_LITERAL AliasColumns
           | 'AS'? ( RelObjectName | S_CHAR_LITERAL ) AliasColumns?

AliasColumns

( RelObjectName ColDataType , )
         ::= '(' RelObjectName ColDataType? ( ',' RelObjectName ColDataType? )* ')'
Referenced by:

SQLServerHint

INDEX ( RelObjectName ) NOLOCK
         ::= 'INDEX' '(' RelObjectName ')'
           | 'NOLOCK'
Referenced by:

SQLServerHints

WITH ( SQLServerHint , )
         ::= 'WITH' '(' SQLServerHint ( ',' SQLServerHint )* ')'
Referenced by:

MySQLIndexHint

USE SHOW IGNORE FORCE INDEX KEY ( RelObjectName , )
         ::= ( 'USE' | 'SHOW' | 'IGNORE' | 'FORCE' ) ( 'INDEX' | 'KEY' ) '(' RelObjectName ( ',' RelObjectName )* ')'

FunctionItem

Function Alias
         ::= Function Alias?
Referenced by:

PivotForColumns

ParenthesedColumnList Column
         ::= ParenthesedColumnList
           | Column
Referenced by:

PivotFunctionItems

FunctionItem ,
         ::= FunctionItem ( ',' FunctionItem )*
Referenced by:

UnPivotQuery

UNPIVOT FromItem ON ExpressionList INTO NAME RelObjectName VALUE ColumnList
         ::= 'UNPIVOT' FromItem 'ON' ExpressionList ( 'INTO' 'NAME' RelObjectName 'VALUE' ColumnList )?
Referenced by:

PivotQuery

PIVOT FromItem ON ExpressionList USING PivotFunctionItems USING PivotFunctionItems GROUP BY ExpressionList GROUP BY ExpressionList
         ::= 'PIVOT' FromItem ( ( 'ON' ExpressionList ( 'USING' PivotFunctionItems )? | 'USING' PivotFunctionItems ) ( 'GROUP' 'BY' ExpressionList )? | 'GROUP' 'BY' ExpressionList )
Referenced by:

ExpressionListItem

ParenthesedExpressionList Alias
         ::= ParenthesedExpressionList Alias?
Referenced by:

PivotMultiInItems

ExpressionListItem ,
         ::= ExpressionListItem ( ',' ExpressionListItem )*
Referenced by:

Pivot

PIVOT ( PivotFunctionItems FOR PivotForColumns IN ( SelectItemsList PivotMultiInItems ) ) Alias
Pivot    ::= 'PIVOT' '(' PivotFunctionItems 'FOR' PivotForColumns 'IN' '(' ( SelectItemsList | PivotMultiInItems ) ')' ')' Alias?
Referenced by:

PivotXml

PIVOT XML ( PivotFunctionItems FOR PivotForColumns IN ( ANY Select SelectItemsList PivotMultiInItems ) )
PivotXml ::= 'PIVOT' 'XML' '(' PivotFunctionItems 'FOR' PivotForColumns 'IN' '(' ( 'ANY' | Select | SelectItemsList | PivotMultiInItems ) ')' ')'
Referenced by:

UnPivot

UNPIVOT INCLUDE EXCLUDE NULLS ( PivotForColumns FOR PivotForColumns IN ( SelectItemsList ) ) Alias
UnPivot  ::= 'UNPIVOT' ( ( 'INCLUDE' | 'EXCLUDE' ) 'NULLS' )? '(' PivotForColumns 'FOR' PivotForColumns 'IN' '(' SelectItemsList ')' ')' Alias?
Referenced by:

IntoClause

INTO Table ,
         ::= 'INTO' Table ( ',' Table )*
Referenced by:

MySqlSelectIntoClause

INTO OUTFILE S_CHAR_LITERAL MySqlSelectIntoOutfileTail DUMPFILE S_CHAR_LITERAL MySqlIntoVariable ,
         ::= 'INTO' ( 'OUTFILE' S_CHAR_LITERAL MySqlSelectIntoOutfileTail | 'DUMPFILE' S_CHAR_LITERAL | MySqlIntoVariable ( ',' MySqlIntoVariable )* )
Referenced by:

MySqlIntoVariable

UserVariable @ S_CHAR_LITERAL S_QUOTED_IDENTIFIER
         ::= UserVariable
           | '@' ( S_CHAR_LITERAL | S_QUOTED_IDENTIFIER )
Referenced by:

MySqlProcedureAnalyse

PROCEDURE ANALYSE ( S_LONG , S_LONG )
         ::= 'PROCEDURE' 'ANALYSE' '(' ( S_LONG ( ',' S_LONG )? )? ')'
Referenced by:

MySqlSelectIntoOutfileTail

CHARACTER SET S_IDENTIFIER BINARY MySqlSelectIntoFieldsClause MySqlSelectIntoLinesClause
         ::= ( 'CHARACTER' 'SET' ( S_IDENTIFIER | 'BINARY' ) )? MySqlSelectIntoFieldsClause? MySqlSelectIntoLinesClause?
Referenced by:

MySqlSelectIntoFieldsClause

FIELDS COLUMNS TERMINATED BY S_CHAR_LITERAL OPTIONALLY ENCLOSED BY S_CHAR_LITERAL ESCAPED BY S_CHAR_LITERAL
         ::= ( 'FIELDS' | 'COLUMNS' ) ( 'TERMINATED' 'BY' S_CHAR_LITERAL )? ( 'OPTIONALLY'? 'ENCLOSED' 'BY' S_CHAR_LITERAL )? ( 'ESCAPED' 'BY' S_CHAR_LITERAL )?

MySqlSelectIntoLinesClause

LINES STARTING BY S_CHAR_LITERAL TERMINATED BY S_CHAR_LITERAL
         ::= 'LINES' ( 'STARTING' 'BY' S_CHAR_LITERAL )? ( 'TERMINATED' 'BY' S_CHAR_LITERAL )?

ParenthesedFromItem

( FromItem JoinsList )
         ::= '(' FromItem JoinsList? ')'
Referenced by:

FromItem

Values TableFunction TableReference ParenthesedSelect Pivot UnPivot ParenthesedFromItem LateralSubSelect SubImport Select Alias WITH OFFSET Alias TimeTravelAfterAlias MatchRecognize PivotXml Pivot UnPivot Alias SampleClause SampleClause UnPivot PivotXml Pivot MySQLIndexHint SQLServerHints

MatchRecognize

ContextualKeyword ( PARTITION BY SimpleExpressionList OrderByElements ContextualKeyword SelectItemsList ContextualKeyword ROW ContextualKeyword MATCH ALL ROWS ContextualKeyword MATCH SHOW ContextualKeyword EMPTY ContextualKeyword WITH ContextualKeyword ROWS ContextualKeyword MATCH SKIP ContextualKeyword LAST ROW TO NEXT ROW FIRST LAST RelObjectName ContextualKeyword ( RowPattern ) ContextualKeyword MatchRecognizeSubset , ContextualKeyword MatchRecognizeDefinition , ContextualKeyword ( ContextualKeyword = TRUE FALSE ) )
         ::= ContextualKeyword '(' ( 'PARTITION' 'BY' SimpleExpressionList )? OrderByElements? ( ContextualKeyword SelectItemsList )? ( ContextualKeyword 'ROW' ContextualKeyword 'MATCH' | 'ALL' 'ROWS' ContextualKeyword 'MATCH' ( ( 'SHOW' | ContextualKeyword ) 'EMPTY' ContextualKeyword | 'WITH' ContextualKeyword 'ROWS' )? )? ContextualKeyword ( 'MATCH' 'SKIP' ( ContextualKeyword 'LAST' 'ROW' | 'TO' ( 'NEXT' 'ROW' | ( 'FIRST' | 'LAST' )? RelObjectName ) ) ContextualKeyword )? '(' RowPattern ')' ContextualKeyword ( MatchRecognizeSubset ( ',' MatchRecognizeSubset )* ContextualKeyword )? MatchRecognizeDefinition ( ',' MatchRecognizeDefinition )* ( ContextualKeyword '(' ( ContextualKeyword '=' ( 'TRUE' | 'FALSE' ) )? ')' )? ')'
Referenced by:

MatchRecognizeSubset

RelObjectName = ( RelObjectName , )
         ::= RelObjectName '=' '(' RelObjectName ( ',' RelObjectName )* ')'
Referenced by:

MatchRecognizeDefinition

RelObjectName AS Expression
         ::= RelObjectName 'AS' Expression
Referenced by:

RowPattern

SnowflakeRowPatternSequence RowPatternSequence | ||
         ::= SnowflakeRowPatternSequence
           | RowPatternSequence ( ( '|' | '||' ) RowPatternSequence )*

SnowflakeRowPatternSequence

SnowflakeRowPatternAlternative
         ::= SnowflakeRowPatternAlternative*
Referenced by:

SnowflakeRowPatternAlternative

RowPatternFactor |
         ::= RowPatternFactor ( '|' RowPatternFactor )*

RowPatternSequence

RowPatternFactor
         ::= RowPatternFactor*
Referenced by:

RowPatternFactor

ContextualKeyword ( RowPattern , ( RowPattern ) { - RowPattern - } ^ S_IDENTIFIER RelObjectName RowPatternQuantifier
         ::= ( ( ContextualKeyword '(' ( RowPattern ',' )* | '(' ) RowPattern ')' | '{' '-' RowPattern '-' '}' | '^' | S_IDENTIFIER | RelObjectName ) RowPatternQuantifier?

RowPatternQuantifier

* + ? { RowPatternBound , RowPatternBound } ?
         ::= ( '*' | '+' | '?' | '{' RowPatternBound? ( ',' RowPatternBound? )? '}' ) '?'?
Referenced by:

RowPatternBound

S_LONG ? UserVariable
         ::= S_LONG
           | '?'
           | UserVariable
Referenced by:

JoinsList

JoinerExpression
         ::= JoinerExpression+

JoinHint

LOOP HASH MERGE REMOTE
JoinHint ::= 'LOOP'
           | 'HASH'
           | 'MERGE'
           | 'REMOTE'
Referenced by:

DorisJoinHint

[ S_IDENTIFIER ]
         ::= '[' S_IDENTIFIER ']'
Referenced by:

JoinerExpression

S_IDENTIFIER GLOBAL ANY ALL NATURAL LEFT RIGHT FULL SEMI ANTI OUTER ANY ALL INNER SEMI ANTI CROSS OUTER ARRAY JoinHint JOIN DorisJoinHint FETCH , OUTER STRAIGHT_JOIN APPLY FromItem APPROX NEAREST S_LONG BY SIMILARITY Expression WITHIN KSQLJoinWindowClause ON Expression USING ( Column , )
         ::= S_IDENTIFIER? 'GLOBAL'? ( 'ANY' | 'ALL' )? 'NATURAL'? ( ( 'LEFT' | 'RIGHT' | 'FULL' ) ( 'SEMI' | 'ANTI' | 'OUTER' | 'ANY' | 'ALL' )? | 'INNER' | 'SEMI' | 'ANTI' | 'CROSS' | 'OUTER' )? 'ARRAY'? ( JoinHint? 'JOIN' DorisJoinHint? 'FETCH'? | ',' 'OUTER'? | 'STRAIGHT_JOIN' | 'APPLY' ) FromItem ( 'APPROX' 'NEAREST' S_LONG 'BY' 'SIMILARITY' Expression )? ( ( 'WITHIN' KSQLJoinWindowClause )? ( 'ON' Expression )+ | 'USING' '(' Column ( ',' Column )* ')' )?

KSQLDuration

S_LONG S_IDENTIFIER K_DATE_LITERAL
         ::= S_LONG ( S_IDENTIFIER | K_DATE_LITERAL )

KSQLGracePeriod

AccessKeyword AccessKeyword KSQLDuration

KSQLJoinWindowClause

( JoinWindow ) KSQLDuration KSQLGracePeriod
         ::= ( '(' JoinWindow ')' | KSQLDuration ) KSQLGracePeriod?
Referenced by:

JoinWindow

KSQLDuration , KSQLDuration
         ::= KSQLDuration ( ',' KSQLDuration )?
Referenced by:

KSQLWindowClause

WINDOW HOPPING ( SIZE KSQLDuration , ADVANCE BY SESSION ( TUMBLING ( SIZE KSQLDuration , KSQLGracePeriod )
         ::= 'WINDOW' ( 'HOPPING' '(' 'SIZE' KSQLDuration ',' 'ADVANCE' 'BY' | 'SESSION' '(' | 'TUMBLING' '(' 'SIZE' ) KSQLDuration ( ',' KSQLGracePeriod )? ')'
Referenced by:

WhereClause

WHERE Expression
         ::= 'WHERE' Expression

PreWhereClause

PREWHERE Expression
         ::= 'PREWHERE' Expression
Referenced by:

OracleHierarchicalQueryClause

START WITH XorExpression CONNECT BY NOCYCLE CONNECT BY NOCYCLE XorExpression START WITH XorExpression
         ::= ( 'START' 'WITH' XorExpression 'CONNECT' 'BY' 'NOCYCLE'? | 'CONNECT' 'BY' 'NOCYCLE'? ( XorExpression 'START' 'WITH' )? ) XorExpression
Referenced by:

PreferringClause

PREFERRING PreferenceTerm
         ::= 'PREFERRING' PreferenceTerm
Referenced by:

PreferenceTerm

Plus
         ::= Plus

Plus

PriorTo PLUS
Plus     ::= PriorTo ( 'PLUS' PriorTo )*
Referenced by:

PriorTo

PreferenceTermTerminal ( PreferenceTerm ) TO PRIOR
PriorTo  ::= ( PreferenceTermTerminal | '(' PreferenceTerm ')' ) ( 'PRIOR' 'TO' ( PreferenceTermTerminal | '(' PreferenceTerm ')' ) )*
Referenced by:

PreferenceTermTerminal

HighExpression LowExpression Inverse Condition
         ::= HighExpression
           | LowExpression
           | Inverse
           | Condition
Referenced by:

HighExpression

HIGH Expression
         ::= 'HIGH' Expression
Referenced by:

LowExpression

LOW Expression
         ::= 'LOW' Expression
Referenced by:

Inverse

INVERSE ( PreferenceTerm )
Inverse  ::= 'INVERSE' '(' PreferenceTerm ')'
Referenced by:

GroupByColumnReferences

GROUP BY GROUPING SETS ( GroupingSet , ) LegacyMySqlGroupByExpressions ExpressionList GROUPING SETS ( GroupingSet , ) WITH ROLLUP
         ::= 'GROUP' 'BY' ( 'GROUPING' 'SETS' '(' GroupingSet ( ',' GroupingSet )* ')' | ( LegacyMySqlGroupByExpressions | ExpressionList ) ( 'GROUPING' 'SETS' '(' GroupingSet ( ',' GroupingSet )* ')' )? ( 'WITH' 'ROLLUP' )? )

LegacyMySqlGroupByExpressions

LegacyMySqlGroupByExpression ,
Referenced by:

LegacyMySqlGroupByExpression

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

GroupingSet

ParenthesedExpressionList SimpleExpression
         ::= ParenthesedExpressionList
           | SimpleExpression
Referenced by:

Having

HAVING Expression
Having   ::= 'HAVING' Expression

Qualify

QUALIFY Expression
Qualify  ::= 'QUALIFY' Expression

OrderByElements

ORDER SIBLINGS BY OrderByElement ,
         ::= 'ORDER' 'SIBLINGS'? 'BY' OrderByElement ( ',' OrderByElement )*

OrderByElement

Expression COLLATE S_CHAR_LITERAL S_QUOTED_IDENTIFIER ASC DESC NULLS FIRST LAST WithFill WITH ROLLUP
         ::= Expression ( 'COLLATE' ( S_CHAR_LITERAL | S_QUOTED_IDENTIFIER ) )? ( 'ASC' | 'DESC' )? ( 'NULLS' ( 'FIRST' | 'LAST' )? )? WithFill? ( 'WITH' 'ROLLUP' )?
Referenced by:

WithFill

WITH FILL FROM Expression TO Expression STEP Expression STALENESS Expression
WithFill ::= 'WITH' 'FILL' ( 'FROM' Expression )? ( 'TO' Expression )? ( 'STEP' Expression )? ( 'STALENESS' Expression )?
Referenced by:

InterpolateClause

INTERPOLATE ( InterpolateElement , )
         ::= 'INTERPOLATE' ( '(' ( InterpolateElement ( ',' InterpolateElement )* )? ')' )?

InterpolateElement

Column AS Expression
         ::= Column ( 'AS' Expression )?
Referenced by:

OptionHintParameter

UserVariable UNKNOWN Expression
         ::= UserVariable 'UNKNOWN'
           | Expression
Referenced by:

OptionClause

OPTION ( OptionHint , )
         ::= 'OPTION' '(' OptionHint ( ',' OptionHint )* ')'

OptionHint

OptionHintName = Expression ( OptionHintParameter , )
         ::= OptionHintName ( '='? Expression | '(' OptionHintParameter ( ',' OptionHintParameter )* ')' )?
Referenced by:

OptionHintName

S_IDENTIFIER NonReservedWord JOIN FOR ORDER UNION EXCEPT INTERSECT USE OPTIMIZE FORCE UNKNOWN
         ::= ( S_IDENTIFIER | NonReservedWord | 'JOIN' | 'FOR' | 'ORDER' | 'UNION' | 'EXCEPT' | 'INTERSECT' | 'USE' | 'OPTIMIZE' | 'FORCE' | 'UNKNOWN' )+
Referenced by:

JdbcParameter

? S_PARAMETER S_LONG
         ::= ( '?' | S_PARAMETER ) S_LONG?

LimitWithOffset

LIMIT ParenthesedSelect Expression , Expression
         ::= 'LIMIT' ( ParenthesedSelect | Expression ) ( ',' Expression )?

PlainLimit

LIMIT ParenthesedSelect Expression
         ::= 'LIMIT' ( ParenthesedSelect | Expression )

Offset

OFFSET Expression ROWS ROW
Offset   ::= 'OFFSET' Expression ( 'ROWS' | 'ROW' )?

Fetch

FETCH FIRST NEXT Expression PERCENT ROWS ROW ONLY WITH TIES
Fetch    ::= 'FETCH' ( 'FIRST' | 'NEXT' ) ( Expression 'PERCENT'? )? ( 'ROWS' | 'ROW' ) ( 'ONLY' | 'WITH TIES' )

WithIsolation

WITH K_ISOLATION
         ::= 'WITH' K_ISOLATION

OptimizeFor

OPTIMIZE FOR S_LONG ROWS
         ::= 'OPTIMIZE' 'FOR' S_LONG 'ROWS'
Referenced by:

Top

TOP S_LONG JdbcParameter : S_IDENTIFIER ( SimpleExpression ) PERCENT WITH TIES
Top      ::= 'TOP' ( S_LONG | JdbcParameter | ':' S_IDENTIFIER? | '(' SimpleExpression ')' ) 'PERCENT'? 'WITH TIES'?
Referenced by:

Skip

SKIP S_LONG S_IDENTIFIER JdbcParameter
Skip     ::= 'SKIP' ( S_LONG | S_IDENTIFIER | JdbcParameter )
Referenced by:

First

FIRST LIMIT S_LONG S_IDENTIFIER JdbcParameter
First    ::= ( 'FIRST' | 'LIMIT' ) ( S_LONG | S_IDENTIFIER | JdbcParameter )
Referenced by:

Expression

Condition
         ::= Condition
Referenced by:

XorExpression

AndChain OR XOR
         ::= AndChain ( ( 'OR' | 'XOR' ) AndChain )*

AndChain

Condition AND &&
AndChain ::= Condition ( ( 'AND' | '&&' ) Condition )*
Referenced by:

Condition

NOT ! ExistsExpression PRIOR SimpleExpression ( + ) RegularConditionRHS OverlapsCondition InExpression ExcludesExpression IncludesExpression Between MemberOfExpression IsNullExpression IsBooleanExpression IsUnknownExpression LikeExpression IsDistinctExpression SimilarToExpression

RegularConditionRHS

( + ) > < = OP_GREATERTHANEQUALS OP_MINORTHANEQUALS OP_NOTEQUALSSTANDARD OP_NOTEQUALSBANG ^= *= =* && &> <& @@ ~ ~* !~ !~* @> <@ ? ?| ?& || - -# <-> <#> <=> PRIOR ComparisonItem ( + )
         ::= ( '(' '+' ')' )? ( '>' | '<' | '=' | OP_GREATERTHANEQUALS | OP_MINORTHANEQUALS | OP_NOTEQUALSSTANDARD | OP_NOTEQUALSBANG | '^=' | '*=' | '=*' | '&&' | '&>' | '<&' | '@@' | '~' | '~*' | '!~' | '!~*' | '@>' | '<@' | '?' | '?|' | '?&' | '||' | '-' | '-#' | '<->' | '<#>' | '<=>' ) 'PRIOR'? ComparisonItem ( '(' '+' ')' )?
Referenced by:

OverlapsCondition

OVERLAPS ParenthesedExpressionList
         ::= 'OVERLAPS' ParenthesedExpressionList
Referenced by:

SQLCondition

ExistsExpression SimpleExpression OverlapsCondition InExpression ExcludesExpression IncludesExpression Between MemberOfExpression IsNullExpression IsBooleanExpression IsUnknownExpression LikeExpression IsDistinctExpression SimilarToExpression
         ::= ExistsExpression
Not referenced by any.

InExpression

( + ) GLOBAL NOT IN S_CHAR_LITERAL ParenthesedSelect PrimaryExpression
         ::= ( '(' '+' ')' )? 'GLOBAL'? 'NOT'? 'IN' ( S_CHAR_LITERAL | ParenthesedSelect | PrimaryExpression )
Referenced by:

IncludesExpression

INCLUDES ParenthesedExpressionList
         ::= 'INCLUDES' ParenthesedExpressionList
Referenced by:

ExcludesExpression

EXCLUDES ParenthesedExpressionList
         ::= 'EXCLUDES' ParenthesedExpressionList
Referenced by:

Between

NOT BETWEEN SYMMETRIC ASYMMETRIC ParenthesedSelect SimpleExpression RegularConditionRHS ( + ) AND ParenthesedSelect SimpleExpression RegularConditionRHS ( + )
Between  ::= 'NOT'? 'BETWEEN' ( 'SYMMETRIC' | 'ASYMMETRIC' )? ( ParenthesedSelect | SimpleExpression RegularConditionRHS? ( '(' '+' ')' )? ) 'AND' ( ParenthesedSelect | SimpleExpression RegularConditionRHS? ( '(' '+' ')' )? )
Referenced by:

LikeExpression

NOT LIKE ILIKE RLIKE REGEXP_LIKE REGEXP GLOB K_SIMILAR_TO MATCH_ANY MATCH_ALL MATCH_PHRASE MATCH_PHRASE_PREFIX MATCH_REGEXP BINARY SimpleExpression ( + ) ESCAPE S_CHAR_LITERAL Expression
         ::= 'NOT'? ( 'LIKE' | 'ILIKE' | 'RLIKE' | 'REGEXP_LIKE' | 'REGEXP' | 'GLOB' | 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
         ::= 'NOT'? 'SIMILAR' 'TO' SimpleExpression ( '(' '+' ')' )? ( 'ESCAPE' S_CHAR_LITERAL )?
Referenced by:

IsDistinctExpression

IS NOT DISTINCT FROM SimpleExpression
         ::= 'IS' 'NOT'? 'DISTINCT' 'FROM' SimpleExpression
Referenced by:

IsNullExpression

NOT ISNULL NOTNULL IS NOT NULL
         ::= 'NOT'? 'ISNULL'
           | 'NOTNULL'
           | 'IS' 'NOT'? 'NULL'
Referenced by:

IsBooleanExpression

IS NOT TRUE FALSE
         ::= 'IS' 'NOT'? ( 'TRUE' | 'FALSE' )
Referenced by:

IsUnknownExpression

IS NOT UNKNOWN
         ::= 'IS' 'NOT'? 'UNKNOWN'
Referenced by:

ExistsExpression

EXISTS SimpleExpression
         ::= 'EXISTS' SimpleExpression
Referenced by:

MemberOfExpression

MEMBER OF Expression
         ::= 'MEMBER' 'OF' Expression
Referenced by:

ExpressionList

ComplexExpressionList SimpleExpressionList ParenthesedExpressionList
         ::= ComplexExpressionList
           | SimpleExpressionList
           | ParenthesedExpressionList

ParenthesedExpressionList

( ComplexExpressionList SimpleExpressionList )
         ::= '(' ( ComplexExpressionList | SimpleExpressionList )? ')'

SimpleExpressionList

SimpleExpression , LambdaExpression SimpleExpression
         ::= SimpleExpression ( ',' ( LambdaExpression | SimpleExpression ) )*

ColumnList

Column ,
         ::= Column ( ',' Column )*

ParenthesedColumnList

( ColumnList )
         ::= '(' ColumnList ')'

ComplexExpressionList

OracleNamedFunctionParameter PostgresNamedFunctionParameter Expression , OracleNamedFunctionParameter PostgresNamedFunctionParameter LambdaExpression Expression

NamedExpressionListExprFirst

SimpleExpression FROM IN PLACING SimpleExpression FOR FROM SimpleExpression FOR SimpleExpression
         ::= SimpleExpression ( 'FROM' | 'IN' | 'PLACING' ) SimpleExpression ( ( 'FOR' | 'FROM' ) SimpleExpression ( 'FOR' SimpleExpression )? )?

ComparisonItem

AnyComparisonExpression RowConstructor SimpleExpression
         ::= AnyComparisonExpression
           | RowConstructor
           | SimpleExpression
Referenced by:

AnyComparisonExpression

ANY SOME ALL ParenthesedSelect
         ::= ( 'ANY' | 'SOME' | 'ALL' ) ParenthesedSelect
Referenced by:

SimpleExpression

UserVariable = := PrimaryExpression
         ::= ( UserVariable ( '=' | ':=' ) )? PrimaryExpression

CharacterSetIntroducedString

S_IDENTIFIER S_CHAR_LITERAL
         ::= S_IDENTIFIER S_CHAR_LITERAL
Referenced by:

MulChain

PrimaryExpression * / % ^ DIV
MulChain ::= PrimaryExpression ( ( '*' | '/' | '%' | '^' | 'DIV' ) PrimaryExpression )*
Referenced by:

AddChain

MulChain + - || & << >> | |
AddChain ::= MulChain ( ( '+' | '-' | '||' | '&' | '<<' | '>>' | '|' '|'? ) MulChain )*
Not referenced by any.

ArrayExpression

[ ArrayIndexExpression : SimpleExpression ]
         ::= ( '[' ArrayIndexExpression? ( ':' SimpleExpression? )? ']' )+

ArrayIndexExpression

OFFSET ( SimpleExpression ) SimpleExpression
         ::= 'OFFSET' '(' SimpleExpression ')'
           | SimpleExpression
Referenced by:

PrimaryExpression

NOT ! + - ~ ParenthesedExpressionList -> Expression . * NavigationStep NULL CaseWhenExpression CharacterPrimary MapExpression ImplicitCast JdbcParameter JdbcNamedParameter UserVariable NumericBind ExtractExpression XMLSerializeExpr JsonFunction JsonAggregateFunction FullTextSearch CastExpression RowPatternFunction Function AnalyticExpression DateUnitExpression IntervalExpression S_DOUBLE S_LONG S_HEX AllColumns AllTableColumns K_TIME_KEY_EXPR CURRENT DateTimeLiteralExpression StructType ARRAY < ColDataType > ArrayConstructor NextValExpression ConnectByRootOperator ConnectByPriorOperator KeyExpression ALL CharacterSetIntroducedString Column ( + ) TRUE FALSE S_CHAR_LITERAL {d {t {ts S_CHAR_LITERAL } Select ParenthesedSelect COLLATE S_CHAR_LITERAL S_QUOTED_IDENTIFIER S_IDENTIFIER IntervalExpressionWithoutInterval ArrayExpression NavigationStep :: ColDataType -> : ->> #> #>> Expression SimpleExpression JsonExpression AT K_DATETIMELITERAL ZONE PrimaryExpression
         ::= ( 'NOT' | '!' )? ( '+' | '-' | '~' )? ( 'NULL' | CaseWhenExpression | CharacterPrimary | MapExpression | ImplicitCast | JdbcParameter | JdbcNamedParameter | UserVariable | NumericBind | ExtractExpression | XMLSerializeExpr | JsonFunction | JsonAggregateFunction | FullTextSearch | CastExpression | RowPatternFunction | Function AnalyticExpression? | DateUnitExpression | IntervalExpression | S_DOUBLE | S_LONG | S_HEX | AllColumns | AllTableColumns | K_TIME_KEY_EXPR | 'CURRENT' | DateTimeLiteralExpression | StructType | ( 'ARRAY' ( '<' ColDataType '>' )? )? ArrayConstructor | NextValExpression | ConnectByRootOperator | ConnectByPriorOperator | KeyExpression | 'ALL' | CharacterSetIntroducedString | Column ( '(' '+' ')' )? | 'TRUE' | 'FALSE' | S_CHAR_LITERAL+ | ( '{d' | '{t' | '{ts' ) S_CHAR_LITERAL '}' | Select | ParenthesedSelect | ParenthesedExpressionList ( '->' Expression )? ( '.' '*' )? NavigationStep* ) ( 'COLLATE' ( S_CHAR_LITERAL | S_QUOTED_IDENTIFIER | S_IDENTIFIER ) )? IntervalExpressionWithoutInterval? ArrayExpression? NavigationStep* ( '::' ColDataType )* ( ( ( '->' | ':' | '->>' | '#>' | '#>>' ) ( Expression | SimpleExpression ) )+ JsonExpression )? ( 'AT' K_DATETIMELITERAL 'ZONE' PrimaryExpression )*

ConnectByRootOperator

CONNECT_BY_ROOT Expression
         ::= 'CONNECT_BY_ROOT' Expression
Referenced by:

ConnectByPriorOperator

PRIOR Expression
         ::= 'PRIOR' Expression

KeyExpression

KEY Expression
         ::= 'KEY' Expression
Referenced by:

NextValExpression

K_NEXTVAL RelObjectNames
         ::= K_NEXTVAL RelObjectNames
Referenced by:

JdbcNamedParameter

: & IdentifierChain
         ::= ( ':' | '&' ) IdentifierChain

OracleNamedFunctionParameter

RelObjectNameExt OUTER => Expression
         ::= ( RelObjectNameExt | 'OUTER' ) '=>' Expression
Referenced by:

PostgresNamedFunctionParameter

RelObjectNameExt OUTER := Expression
         ::= ( RelObjectNameExt | 'OUTER' ) ':=' Expression
Referenced by:

UserVariable

S_AT_IDENTIFIER IdentifierChain2
         ::= S_AT_IDENTIFIER IdentifierChain2

NumericBind

: S_LONG
         ::= ':' S_LONG
Referenced by:

DateTimeLiteralExpression

K_DATETIMELITERAL S_CHAR_LITERAL S_QUOTED_IDENTIFIER
Referenced by:

DateUnitExpression

K_DATE_LITERAL
         ::= K_DATE_LITERAL
Referenced by:

RangeExpression

: Expression
         ::= ':' Expression
Referenced by:

ArrayConstructor

[ Expression RangeExpression ArrayConstructor , ]
         ::= '[' ( ( Expression RangeExpression? | ArrayConstructor ) ( ',' ( Expression RangeExpression? | ArrayConstructor ) )* )? ']'

MapExpression

DATA_TYPE { MapKeyExpression : Expression , }
         ::= DATA_TYPE '{' ( MapKeyExpression ':' Expression ( ',' MapKeyExpression ':' Expression )* )? '}'
Referenced by:

MapKeyExpression

Expression
         ::= Expression
Referenced by:

StructParameters

RelObjectName ColDataType ,
         ::= RelObjectName? ColDataType ( ',' RelObjectName? ColDataType )*
Referenced by:

StructType

STRUCT < StructParameters > ( SelectItemsList ) { RelObjectNameExt S_CHAR_LITERAL : Expression , } :: STRUCT ( StructParameters )
         ::= 'STRUCT' ( '<' StructParameters '>' )? '(' SelectItemsList ')'
           | '{' ( RelObjectNameExt | S_CHAR_LITERAL ) ':' Expression ( ',' ( RelObjectNameExt | S_CHAR_LITERAL ) ':' Expression )* '}' ( '::' 'STRUCT' '(' StructParameters ')' )*
Referenced by:

JsonExpression

:: ColDataType -> : ->> #> #>> Expression SimpleExpression
         ::= ( ( '::' ColDataType )+ ( ( '->' | ':' | '->>' | '#>' | '#>>' ) ( Expression | SimpleExpression ) )* )*
Referenced by:

JsonKeyValuePair

KEY S_CHAR_LITERAL Column AllTableColumns AllColumns Expression VALUE : , Expression FORMAT JSON ENCODING JsonEncoding
         ::= ( 'KEY'? ( S_CHAR_LITERAL | Column ) | AllTableColumns | AllColumns | Expression ) ( ( 'VALUE' | ':' | ',' ) Expression )? ( 'FORMAT' 'JSON' ( 'ENCODING' JsonEncoding )? )?
Referenced by:

JsonObjectBody

( JsonKeyValuePair , NULL ABSENT ON NULL STRICT WITH WITHOUT UNIQUE KEYS RETURNING ColDataType FORMAT JSON ENCODING JsonEncoding )
         ::= '(' ( JsonKeyValuePair ( ',' JsonKeyValuePair )* )? ( ( 'NULL' | 'ABSENT' ) 'ON' 'NULL' )? 'STRICT'? ( ( 'WITH' | 'WITHOUT' ) 'UNIQUE' 'KEYS' )? ( 'RETURNING' ColDataType ( 'FORMAT' 'JSON' ( 'ENCODING' JsonEncoding )? )? )? ')'
Referenced by:

JsonArrayBody

( NULL ON NULL Expression FORMAT JSON ENCODING JsonEncoding , ABSENT ON NULL RETURNING ColDataType FORMAT JSON ENCODING JsonEncoding )
         ::= '(' ( 'NULL' 'ON' 'NULL' | Expression ( 'FORMAT' 'JSON' ( 'ENCODING' JsonEncoding )? )? ( ',' Expression ( 'FORMAT' 'JSON' ( 'ENCODING' JsonEncoding )? )? )* )* ( 'ABSENT' 'ON' 'NULL' )? ( 'RETURNING' ColDataType ( 'FORMAT' 'JSON' ( 'ENCODING' JsonEncoding )? )? )? ')'
Referenced by:

JsonKeyword

S_IDENTIFIER
         ::= S_IDENTIFIER

JsonEncoding

S_IDENTIFIER
         ::= S_IDENTIFIER

JsonValueOrQueryInputExpression

Expression FORMAT JSON ENCODING JsonEncoding
         ::= Expression ( 'FORMAT' 'JSON' ( 'ENCODING' JsonEncoding )? )?

JsonValueOnResponseBehavior

ERROR NULL EMPTY DEFAULT Expression
         ::= 'ERROR'
           | 'NULL'
           | 'EMPTY'
           | 'DEFAULT' Expression
Referenced by:

JsonQueryOnResponseBehavior

ERROR NULL TRUE FALSE EMPTY ARRAY JsonKeyword
         ::= 'ERROR'
           | 'NULL'
           | 'TRUE'
           | 'FALSE'
           | 'EMPTY' ( 'ARRAY' | JsonKeyword )?

JsonExistsOnResponseBehavior

TRUE FALSE UNKNOWN ERROR
         ::= 'TRUE'
           | 'FALSE'
           | 'UNKNOWN'
           | 'ERROR'
Referenced by:

JsonExistsBody

( JsonValueOrQueryInputExpression , Expression JsonKeyword Expression , JsonExistsOnResponseBehavior ON ERROR )
         ::= '(' JsonValueOrQueryInputExpression ',' Expression ( JsonKeyword Expression ( ',' Expression )* )? ( JsonExistsOnResponseBehavior 'ON' 'ERROR' )? ')'
Referenced by:

JsonValueBody

( JsonValueOrQueryInputExpression , Expression JsonKeyword Expression , RETURNING ColDataType JsonValueOnResponseBehavior ON EMPTY JsonValueOnResponseBehavior ON ERROR )
         ::= '(' JsonValueOrQueryInputExpression ',' Expression ( JsonKeyword Expression ( ',' Expression )* )? ( 'RETURNING' ColDataType )? ( JsonValueOnResponseBehavior 'ON' 'EMPTY' )? ( JsonValueOnResponseBehavior 'ON' 'ERROR' )? ')'
Referenced by:

JsonQueryBody

( JsonValueOrQueryInputExpression , Expression JsonKeyword Expression , RETURNING ColDataType FORMAT JSON ENCODING JsonEncoding WITHOUT WITH S_IDENTIFIER ARRAY JsonKeyword KEEP JsonKeyword JsonKeyword ON JsonKeyword STRING JsonQueryOnResponseBehavior ON EMPTY JsonQueryOnResponseBehavior ON ERROR Expression , )
         ::= '(' JsonValueOrQueryInputExpression ',' Expression ( JsonKeyword Expression ( ',' Expression )* )? ( 'RETURNING' ColDataType ( 'FORMAT' 'JSON' ( 'ENCODING' JsonEncoding )? )? )? ( ( 'WITHOUT' | 'WITH' S_IDENTIFIER? ) 'ARRAY'? JsonKeyword )? ( ( 'KEEP' | JsonKeyword ) JsonKeyword ( 'ON' JsonKeyword 'STRING' )? )? ( JsonQueryOnResponseBehavior 'ON' 'EMPTY' )? ( JsonQueryOnResponseBehavior 'ON' 'ERROR' )? ( ',' Expression ( 'RETURNING' ColDataType ( 'FORMAT' 'JSON' ( 'ENCODING' JsonEncoding )? )? )? ( ( 'WITHOUT' | 'WITH' S_IDENTIFIER? ) 'ARRAY'? JsonKeyword )? ( ( 'KEEP' | JsonKeyword ) JsonKeyword ( 'ON' JsonKeyword 'STRING' )? )? ( JsonQueryOnResponseBehavior 'ON' 'EMPTY' )? ( JsonQueryOnResponseBehavior 'ON' 'ERROR' )? )* ')'
Referenced by:

JsonFunction

JSON_OBJECT JsonObjectBody JSON_ARRAY JsonArrayBody JsonKeyword JsonValueBody JsonQueryBody JsonExistsBody
         ::= 'JSON_OBJECT' JsonObjectBody
           | 'JSON_ARRAY' JsonArrayBody
           | JsonKeyword ( JsonValueBody | JsonQueryBody | JsonExistsBody )
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 )
         ::= ( '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 Expression IntervalQualifier S_IDENTIFIER
         ::= 'INTERVAL' ( '-'? ( S_LONG | S_DOUBLE ) | S_CHAR_LITERAL | Expression ) ( IntervalQualifier | S_IDENTIFIER )?
Referenced by:

IntervalExpressionWithoutInterval

IntervalQualifier
         ::= IntervalQualifier
Referenced by:

IntervalQualifier

K_DATE_LITERAL ( S_LONG , S_LONG ) TO K_DATE_LITERAL ( S_LONG )
         ::= K_DATE_LITERAL ( '(' S_LONG ( ',' S_LONG )? ')' )? ( 'TO' K_DATE_LITERAL ( '(' S_LONG ')' )? )?

KeepExpression

KEEP ( S_IDENTIFIER FIRST LAST OrderByElements )
         ::= 'KEEP' '(' S_IDENTIFIER ( 'FIRST' | 'LAST' ) OrderByElements ')'
Referenced by:

windowFun

OVER WITHIN GROUP RelObjectName windowDefinition OVER ( PARTITION BY ComplexExpressionList ( ComplexExpressionList ) )
         ::= ( 'OVER' | 'WITHIN' 'GROUP' ) ( RelObjectName | windowDefinition ( 'OVER' '(' ( 'PARTITION' 'BY' ( ComplexExpressionList | '(' ComplexExpressionList ')' ) )? ')' )? )
Referenced by:

windowDefinition

( PARTITION BY ComplexExpressionList ( ComplexExpressionList ) OrderByElements WindowElement )
         ::= '(' ( 'PARTITION' 'BY' ( ComplexExpressionList | '(' ComplexExpressionList ')' ) )? OrderByElements? WindowElement? ')'
Referenced by:

AnalyticExpression

FILTER ( WHERE Expression ) windowFun windowFun
         ::= 'FILTER' '(' 'WHERE' Expression ')' windowFun?
           | windowFun
Referenced by:

WindowElement

ROWS RANGE GROUPS BETWEEN WindowOffset AND WindowOffset FrameExclusion
         ::= ( 'ROWS' | 'RANGE' | 'GROUPS' ) ( 'BETWEEN' WindowOffset 'AND' )? WindowOffset FrameExclusion?

FrameExclusion

EXCLUDE CURRENT ROW GROUP NO S_IDENTIFIER
         ::= 'EXCLUDE' ( 'CURRENT' 'ROW' | 'GROUP' | 'NO'? S_IDENTIFIER )
Referenced by:

WindowOffset

UNBOUNDED SimpleExpression PRECEDING FOLLOWING CURRENT ROW
         ::= ( 'UNBOUNDED' | SimpleExpression ) ( 'PRECEDING' | 'FOLLOWING' )
           | 'CURRENT' 'ROW'
Referenced by:

ExtractExpression

EXTRACT ( RelObjectName S_CHAR_LITERAL FROM SimpleExpression )
         ::= 'EXTRACT' '(' ( RelObjectName | S_CHAR_LITERAL ) 'FROM' SimpleExpression ')'
Referenced by:

ImplicitCast

DataType S_CHAR_LITERAL S_LONG S_DOUBLE
         ::= DataType ( S_CHAR_LITERAL | S_LONG | S_DOUBLE )
Referenced by:

CastExpression

CAST SAFE_CAST TRY_CAST INTERPRET ( SimpleExpression AS ROW ( ColumnDefinition , ) ColDataType ARRAY FORMAT S_CHAR_LITERAL )
         ::= ( 'CAST' | 'SAFE_CAST' | 'TRY_CAST' | 'INTERPRET' ) '(' SimpleExpression 'AS' ( 'ROW' '(' ColumnDefinition ( ',' ColumnDefinition )* ')' | ColDataType 'ARRAY'? ) ( 'FORMAT' S_CHAR_LITERAL )? ')'
Referenced by:

CaseWhenExpression

CASE Expression WhenThenSearchCondition ELSE Expression SimpleExpression END
         ::= 'CASE' Expression? WhenThenSearchCondition+ ( 'ELSE' ( Expression | SimpleExpression ) )? 'END'
Referenced by:

WhenThenSearchCondition

WHEN Expression THEN Expression SimpleExpression
         ::= 'WHEN' Expression 'THEN' ( Expression | SimpleExpression )
Referenced by:

RowConstructor

ROW ParenthesedExpressionList
         ::= 'ROW' ParenthesedExpressionList
Referenced by:

VariableExpression

UserVariable = SimpleExpression
         ::= UserVariable '=' SimpleExpression
Not referenced by any.

Execute

EXEC EXECUTE CALL ColumnIdentifier ExecuteArguments
Execute  ::= ( 'EXEC' | 'EXECUTE' | 'CALL' ) ColumnIdentifier ExecuteArguments?
Referenced by:

ExecuteArguments

ExpressionList ExecuteArgument ,
         ::= ExpressionList
           | ExecuteArgument ( ',' ExecuteArgument )*
Referenced by:

ExecuteArgument

Expression OUTPUT AccessKeyword
         ::= Expression ( 'OUTPUT' | AccessKeyword )?
Referenced by:

FullTextSearch

MATCH ( ColumnList ) AGAINST ( SimpleExpression IN NATURAL LANGUAGE MODE IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION IN BOOLEAN MODE WITH QUERY EXPANSION )
         ::= 'MATCH' '(' ColumnList ')' 'AGAINST' '(' SimpleExpression ( 'IN NATURAL LANGUAGE MODE' | 'IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION' | 'IN BOOLEAN MODE' | 'WITH QUERY EXPANSION' )? ')'
Referenced by:

LambdaExpression

ParenthesedColumnList RelObjectName -> Expression
         ::= ( ParenthesedColumnList | RelObjectName ) '->' Expression

RowPatternFunction

ContextualKeyword FINAL Function
         ::= ( ContextualKeyword | 'FINAL' ) Function
Referenced by:

Function

{ FN InternalFunction } SpecialStringFunctionWithNamedParameters InternalFunction
Function ::= '{' 'FN' InternalFunction '}'
           | InternalFunction

SpecialStringFunctionWithNamedParameters

K_STRING_FUNCTION_NAME ( NamedExpressionListExprFirst ExpressionList )
Referenced by:

InternalFunction

APPROXIMATE RelObjectNames ( DISTINCT ALL UNIQUE FunctionArgumentList Select HAVING MIN MAX Expression IGNORE RESPECT NULLS OrderByElements PlainLimit ) ( ExpressionList ) S_DOUBLE . Function Column IGNORE RESPECT NULLS KeepExpression
         ::= 'APPROXIMATE'? RelObjectNames '(' ( ( 'DISTINCT' | 'ALL' | 'UNIQUE' )? ( FunctionArgumentList | Select ) )? ( 'HAVING' ( 'MIN' | 'MAX' ) Expression )? ( ( 'IGNORE' | 'RESPECT' ) 'NULLS' )? OrderByElements? PlainLimit? ')' ( '(' ExpressionList ')' )? ( S_DOUBLE | '.' ( Function | Column ) )? ( ( 'IGNORE' | 'RESPECT' ) 'NULLS' )? KeepExpression?
Referenced by:

FunctionArgumentList

TABLE ExpressionList OrderByElements ON OVERFLOW TRUNCATE ERROR S_CHAR_LITERAL WITH WITHOUT COUNT
         ::= 'TABLE'? ExpressionList OrderByElements? ( 'ON' 'OVERFLOW' ( 'TRUNCATE' | 'ERROR' ) ( S_CHAR_LITERAL ( ( 'WITH' | 'WITHOUT' ) 'COUNT' )? )? )?
Referenced by:

XmlForestArguments

XmlForestArgument ,
         ::= XmlForestArgument ( ',' XmlForestArgument )*
Not referenced by any.

XmlForestArgument

Expression AS RelObjectName
         ::= Expression ( 'AS' RelObjectName )?
Referenced by:

XMLSerializeExpr

XMLSERIALIZE ( S_IDENTIFIER Expression AS ColDataType ENCODING S_CHAR_LITERAL VERSION S_CHAR_LITERAL NO S_IDENTIFIER S_IDENTIFIER SIZE = S_LONG SHOW S_IDENTIFIER DEFAULTS XMLAGG ( XMLTEXT ( SimpleExpression ) OrderByElements ) AS ColDataType )
         ::= 'XMLSERIALIZE' '(' ( S_IDENTIFIER Expression ( 'AS' ColDataType )? ( 'ENCODING' S_CHAR_LITERAL )? ( 'VERSION' S_CHAR_LITERAL )? ( 'NO' S_IDENTIFIER | S_IDENTIFIER ( 'SIZE' '=' S_LONG )? )? ( ( 'SHOW' | S_IDENTIFIER ) 'DEFAULTS' )? | 'XMLAGG' '(' 'XMLTEXT' '(' SimpleExpression ')' OrderByElements? ')' 'AS' ColDataType ) ')'
Referenced by:

JsonTablePassingClause

Expression AS RelObjectName
         ::= Expression 'AS' RelObjectName
Referenced by:

JsonTableOnEmptyBehavior

ERROR NULL TRUE FALSE DEFAULT Expression S_IDENTIFIER JsonKeyword ARRAY
         ::= 'ERROR'
           | 'NULL'
           | 'TRUE'
           | 'FALSE'
           | 'DEFAULT' Expression
           | S_IDENTIFIER ( JsonKeyword | 'ARRAY' )?

JsonTableWrapperClause

WITHOUT WITH S_IDENTIFIER ARRAY JsonKeyword
         ::= ( 'WITHOUT' | 'WITH' S_IDENTIFIER? ) 'ARRAY'? JsonKeyword

JsonTableQuotesClause

KEEP JsonKeyword JsonKeyword ON JsonKeyword STRING
         ::= ( 'KEEP' | JsonKeyword ) JsonKeyword ( 'ON' JsonKeyword 'STRING' )?

JsonTableColumnDefinition

JsonKeyword PATH Expression AS RelObjectName JsonTableColumnsClause RelObjectName FOR ORDINALITY ColDataType FORMAT JSON ENCODING JsonEncoding JsonKeyword JsonKeyword EXISTS JsonTableWrapperClause PATH Expression JsonTableWrapperClause JsonTableQuotesClause JsonTableOnEmptyBehavior ON EMPTY JsonQueryOnResponseBehavior ON ERROR JsonTableOnEmptyBehavior ON EMPTY
         ::= JsonKeyword 'PATH'? Expression ( 'AS' RelObjectName )? JsonTableColumnsClause
           | RelObjectName ( 'FOR' 'ORDINALITY' | ColDataType? ( 'FORMAT' 'JSON' ( 'ENCODING' JsonEncoding )? )? ( JsonKeyword JsonKeyword )? 'EXISTS'? JsonTableWrapperClause? ( 'PATH' Expression )? JsonTableWrapperClause? JsonTableQuotesClause? ( JsonTableOnEmptyBehavior 'ON' 'EMPTY' )? ( JsonQueryOnResponseBehavior 'ON' 'ERROR' )? ( JsonTableOnEmptyBehavior 'ON' 'EMPTY' )? )
Referenced by:

JsonTableColumnsClause

COLUMNS ( JsonTableColumnDefinition , )
         ::= 'COLUMNS' '(' ( JsonTableColumnDefinition ( ',' JsonTableColumnDefinition )* )? ')'

JsonTablePlanTerm

( JsonTablePlanExpression ) RelObjectName Expression
         ::= '(' JsonTablePlanExpression ')'
           | RelObjectName
           | Expression
Referenced by:

JsonTablePlanExpression

JsonTablePlanTerm , INNER OUTER CROSS UNION
         ::= JsonTablePlanTerm ( ( ',' | 'INNER' | 'OUTER' | 'CROSS' | 'UNION' ) JsonTablePlanTerm )*

JsonTablePlanClause

PLAN DEFAULT ( JsonTablePlanExpression )
         ::= 'PLAN' 'DEFAULT'? '(' JsonTablePlanExpression ')'
Referenced by:

JsonTableOnErrorClause

ERROR EMPTY TRUE FALSE NULL ON ERROR
         ::= ( 'ERROR' | 'EMPTY' | 'TRUE' | 'FALSE' | 'NULL' ) 'ON' 'ERROR'
Referenced by:

JsonTableOnEmptyClause

ERROR EMPTY TRUE FALSE NULL ON EMPTY
         ::= ( 'ERROR' | 'EMPTY' | 'TRUE' | 'FALSE' | 'NULL' ) 'ON' 'EMPTY'
Referenced by:

JsonTableParsingTypeClause

TYPE ( STRICT JsonKeyword )
         ::= 'TYPE' '(' ( 'STRICT' | JsonKeyword ) ')'
Referenced by:

JsonTableBody

( Expression FORMAT JSON , Expression AS RelObjectName JsonKeyword JsonTablePassingClause , JsonTableOnErrorClause JsonTableParsingTypeClause JsonTableOnEmptyClause JsonTableColumnsClause JsonTablePlanClause JsonTableOnErrorClause )
Referenced by:

XmlTablePassingClause

Expression AS RelObjectName
         ::= Expression ( 'AS' RelObjectName )?
Referenced by:

XmlTableColumnDefinition

RelObjectName FOR ORDINALITY ColDataType PATH Expression DEFAULT Expression
         ::= RelObjectName ( 'FOR' 'ORDINALITY' | ColDataType ( 'PATH' Expression )? ( 'DEFAULT' Expression )? )
Referenced by:

XmlTableBody

( Expression S_IDENTIFIER XmlTablePassingClause , COLUMNS XmlTableColumnDefinition , )
Referenced by:

TableFunction

LATERAL ROWS FROM RowsFromFunctionList JsonKeyword JsonTableBody S_IDENTIFIER XmlTableBody Function WITH OFFSET ORDINALITY
         ::= 'LATERAL'? ( 'ROWS' 'FROM' RowsFromFunctionList | JsonKeyword JsonTableBody | S_IDENTIFIER XmlTableBody | Function ) ( 'WITH' ( 'OFFSET' | 'ORDINALITY' ) )?
Referenced by:

RowsFromFunctionList

( Function , )
         ::= '(' Function ( ',' Function )* ')'
Referenced by:

ColumnNamesWithParamsList

( RelObjectName CreateParameter , )
         ::= '(' RelObjectName CreateParameter? ( ',' RelObjectName CreateParameter? )* ')'
Referenced by:

IndexColumnWithParams

Function RelObjectName ( Expression ) CreateParameter COLLATE IndexKeyAttributeName IndexKeyAttributeName PostgreSqlIndexOptions ASC DESC NULLS FIRST LAST CreateParameter
         ::= ( Function | RelObjectName | '(' Expression ')' ) CreateParameter? ( 'COLLATE' IndexKeyAttributeName )? ( IndexKeyAttributeName PostgreSqlIndexOptions? )? ( 'ASC' | 'DESC' )? ( 'NULLS' ( 'FIRST' | 'LAST' ) )? CreateParameter*

IndexKeyAttributeName

RelObjectName . RelObjectNameExt
         ::= RelObjectName ( '.' RelObjectNameExt )*
Referenced by:

PostgreSqlIndexOption

RelObjectName = Expression
         ::= RelObjectName '='? Expression
Referenced by:

PostgreSqlIndexOptions

( PostgreSqlIndexOption , )
         ::= '(' PostgreSqlIndexOption ( ',' PostgreSqlIndexOption )* ')'

IndexColumnsWithParamsList

( IndexColumnWithParams , )
         ::= '(' IndexColumnWithParams ( ',' IndexColumnWithParams )* ')'

Index

RelObjectNames
Referenced by:

CreateIndexModifiers

UNIQUE SqlServerIndexClustering S_IDENTIFIER CreateParameter
         ::= ( 'UNIQUE'? ( SqlServerIndexClustering | S_IDENTIFIER )? | CreateParameter )?
Referenced by:

CreateIndex

CreateIndexModifiers INDEX CONCURRENTLY IF NOT EXISTS RelObjectNames ON ONLY Table UsingIndexType UsingIndexType ON ONLY Table IndexColumnsWithParamsList INCLUDE ColumnsNamesList NULLS NOT DISTINCT WITH PostgreSqlIndexOptions TABLESPACE RelObjectName WHERE Expression CreateIndexTailOption
         ::= CreateIndexModifiers 'INDEX' 'CONCURRENTLY'? ( 'IF' 'NOT' 'EXISTS' )? RelObjectNames? ( 'ON' 'ONLY'? Table UsingIndexType? | UsingIndexType? 'ON' 'ONLY'? Table ) IndexColumnsWithParamsList ( 'INCLUDE' ColumnsNamesList )? ( 'NULLS' 'NOT'? 'DISTINCT' )? ( 'WITH' PostgreSqlIndexOptions )? ( 'TABLESPACE' RelObjectName )? ( 'WHERE' Expression )? CreateIndexTailOption*
Referenced by:

CreateIndexTailOption

IndexAlgorithmOrLockOption CreateParameter
         ::= IndexAlgorithmOrLockOption
           | CreateParameter
Referenced by:

IndexAlgorithmOrLockOption

ALGORITHM LOCK = DEFAULT NONE EXCLUSIVE COPY S_IDENTIFIER
         ::= ( 'ALGORITHM' | 'LOCK' ) '='? ( 'DEFAULT' | 'NONE' | 'EXCLUSIVE' | 'COPY' | S_IDENTIFIER )

ColumnDefinitionParameter

CreateParameter DEFERRABLE DISABLE ENABLE NOVALIDATE VALIDATE
         ::= CreateParameter
           | 'DEFERRABLE'
           | 'DISABLE'
           | 'ENABLE'
           | 'NOVALIDATE'
           | 'VALIDATE'
Referenced by:

ColumnDefinition

RelObjectName ColDataType ColumnDefinitionOption

ColumnDefinitionOption

IdentityDefinition GeneratedColumnDefinition NOT NULL VISIBLE INVISIBLE AUTO_INCREMENT COLLATE S_CHAR_LITERAL RelObjectNames COMMENT S_CHAR_LITERAL ON UPDATE Expression PRIMARY KEY ColumnUniqueConstraint S_IDENTIFIER DEFAULT VALUE ForeignKeyReferenceSpec DROP DEFAULT DEFAULT ON NULL Expression ColumnDefinitionParameter
         ::= IdentityDefinition
           | GeneratedColumnDefinition
           | 'NOT'? 'NULL'
           | 'VISIBLE'
           | 'INVISIBLE'
           | 'AUTO_INCREMENT'
           | 'COLLATE' ( S_CHAR_LITERAL | RelObjectNames )
           | 'COMMENT' S_CHAR_LITERAL
           | 'ON' 'UPDATE' Expression
           | 'PRIMARY' 'KEY'
           | ColumnUniqueConstraint
           | S_IDENTIFIER 'DEFAULT' 'VALUE'
           | ForeignKeyReferenceSpec
           | 'DROP' 'DEFAULT'
           | 'DEFAULT' ( 'ON' 'NULL' | Expression )?
           | ColumnDefinitionParameter

GeneratedColumnDefinition

ContextualKeyword ALWAYS AS ( Expression ) STORED ContextualKeyword
         ::= ( ContextualKeyword 'ALWAYS' )? 'AS' '(' Expression ')' ( 'STORED' | ContextualKeyword )?
Referenced by:

ColumnUniqueConstraint

UNIQUE NULLS NOT DISTINCT
         ::= 'UNIQUE' ( 'NULLS' 'NOT'? 'DISTINCT' )?
Referenced by:

IdentityDefinition

S_IDENTIFIER ALWAYS BY DEFAULT AS IDENTITY ( SequenceParameters )
         ::= S_IDENTIFIER ( 'ALWAYS' | 'BY' 'DEFAULT' ) 'AS' 'IDENTITY' ( '(' SequenceParameters ')' )?

MySqlAccountNamePart

S_CHAR_LITERAL RelObjectName
         ::= S_CHAR_LITERAL
           | RelObjectName

MySqlUserAuthentication

IDENTIFIED BY S_CHAR_LITERAL RANDOM PASSWORD WITH RelObjectName BY S_CHAR_LITERAL RANDOM PASSWORD AS S_CHAR_LITERAL
         ::= 'IDENTIFIED' ( 'BY' ( S_CHAR_LITERAL | 'RANDOM' 'PASSWORD' ) | 'WITH' RelObjectName ( 'BY' ( S_CHAR_LITERAL | 'RANDOM' 'PASSWORD' ) | 'AS' S_CHAR_LITERAL )? )
Referenced by:

MySqlUserAccount

MySqlAccountNamePart @ MySqlAccountNamePart MySqlUserAuthentication
Referenced by:

CreateUser

USER IF NOT EXISTS MySqlUserAccount ,
         ::= 'USER' ( 'IF' 'NOT' 'EXISTS' )? MySqlUserAccount ( ',' MySqlUserAccount )*
Referenced by:

MySqlEventSchedule

ON SCHEDULE AT Expression EVERY MySqlEventIntervalValue K_DATE_LITERAL RelObjectName STARTS Expression ENDS Expression
         ::= 'ON' 'SCHEDULE' ( 'AT' Expression | 'EVERY' MySqlEventIntervalValue ( K_DATE_LITERAL | RelObjectName ) ( 'STARTS' Expression )? ( 'ENDS' Expression )? )
Referenced by:

MySqlEventIntervalValue

S_LONG S_DOUBLE S_CHAR_LITERAL
         ::= S_LONG
           | S_DOUBLE
           | S_CHAR_LITERAL
Referenced by:

MySqlEventCompletion

ON COMPLETION NOT S_IDENTIFIER
         ::= 'ON' 'COMPLETION' 'NOT'? S_IDENTIFIER
Referenced by:

MySqlEventStatus

ENABLE DISABLE ON SLAVE
         ::= 'ENABLE'
           | 'DISABLE' ( 'ON' 'SLAVE' )?
Referenced by:

CreateEvent

EVENT IF NOT EXISTS Table MySqlEventSchedule MySqlEventCompletion MySqlEventStatus COMMENT S_CHAR_LITERAL DO SingleStatement
         ::= 'EVENT' ( 'IF' 'NOT' 'EXISTS' )? Table MySqlEventSchedule MySqlEventCompletion? MySqlEventStatus? ( 'COMMENT' S_CHAR_LITERAL )? 'DO' SingleStatement
Referenced by:

AlterEvent

EVENT Table MySqlEventSchedule MySqlEventCompletion RENAME TO Table MySqlEventStatus COMMENT S_CHAR_LITERAL DO SingleStatement
         ::= 'EVENT' Table MySqlEventSchedule? MySqlEventCompletion? ( 'RENAME' 'TO' Table )? MySqlEventStatus? ( 'COMMENT' S_CHAR_LITERAL )? ( 'DO' SingleStatement )?
Referenced by:

MySqlTriggerDefiner

S_IDENTIFIER = MySqlAccountNamePart @ MySqlAccountNamePart
         ::= S_IDENTIFIER '=' MySqlAccountNamePart ( '@' MySqlAccountNamePart )?
Referenced by:

MySqlTriggerTiming

BEFORE S_IDENTIFIER
         ::= 'BEFORE'
           | S_IDENTIFIER

MySqlTriggerOrder

S_IDENTIFIER
         ::= S_IDENTIFIER
Referenced by:

CreateTrigger

MySqlTriggerDefiner TRIGGER Table MySqlTriggerTiming INSERT UPDATE DELETE ON Table FOR S_IDENTIFIER ROW MySqlTriggerOrder Table SingleStatement Block
         ::= MySqlTriggerDefiner? 'TRIGGER' Table MySqlTriggerTiming ( 'INSERT' | 'UPDATE' | 'DELETE' ) 'ON' Table 'FOR' S_IDENTIFIER 'ROW' ( MySqlTriggerOrder Table )? ( SingleStatement | Block )
Referenced by:

CreateSchema

SCHEMA IF NOT EXISTS S_IDENTIFIER S_QUOTED_IDENTIFIER . S_IDENTIFIER S_QUOTED_IDENTIFIER MySqlDatabaseOption AUTHORIZATION S_IDENTIFIER S_QUOTED_IDENTIFIER PathSpecification CREATE CreateTable CreateView
         ::= 'SCHEMA' ( 'IF' 'NOT' 'EXISTS' )? ( ( S_IDENTIFIER | S_QUOTED_IDENTIFIER ) ( '.' ( S_IDENTIFIER | S_QUOTED_IDENTIFIER ) )? )? MySqlDatabaseOption* ( 'AUTHORIZATION' ( S_IDENTIFIER | S_QUOTED_IDENTIFIER ) )? PathSpecification? ( 'CREATE' CreateTable | CreateView )*
Referenced by:

MySqlDatabaseOption

DEFAULT CHARACTER SET COLLATE ENCRYPTION = RelObjectName S_CHAR_LITERAL
         ::= 'DEFAULT'? ( 'CHARACTER' 'SET' | 'COLLATE' | 'ENCRYPTION' ) '='? ( RelObjectName | S_CHAR_LITERAL )

PathSpecification

PATH S_IDENTIFIER S_QUOTED_IDENTIFIER ,
         ::= 'PATH' ( S_IDENTIFIER | S_QUOTED_IDENTIFIER ) ( ',' ( S_IDENTIFIER | S_QUOTED_IDENTIFIER ) )*
Referenced by:

CreateDatabase

DATABASE IF NOT EXISTS RelObjectName MySqlDatabaseOption captureRest
         ::= 'DATABASE' ( 'IF' 'NOT' 'EXISTS' )? RelObjectName MySqlDatabaseOption* captureRest?
Referenced by:

SqlServerIndexClustering

S_IDENTIFIER
         ::= S_IDENTIFIER?

TableIndexSpec

PRIMARY KEY SqlServerIndexClustering FULLTEXT SPATIAL INDEX KEY RelObjectName UNIQUE NULLS NOT DISTINCT KEY INDEX SqlServerIndexClustering INDEX KEY RelObjectName UsingIndexType IndexColumnsWithParamsList TableIndexOptions PostgreSqlConstraintOptions
         ::= ( ( 'PRIMARY' 'KEY' SqlServerIndexClustering | ( 'FULLTEXT' | 'SPATIAL' ) ( 'INDEX' | 'KEY' )? ) RelObjectName? | ( 'UNIQUE' ( 'NULLS' 'NOT'? 'DISTINCT' )? ( 'KEY' | 'INDEX' )? SqlServerIndexClustering | 'INDEX' | 'KEY' ) RelObjectName? UsingIndexType? ) IndexColumnsWithParamsList TableIndexOptions PostgreSqlConstraintOptions

TableIndexOptions

CreateParameter IndexOptionList
         ::= CreateParameter*
           | IndexOptionList
Referenced by:

PostgreSqlConstraintOptions

INCLUDE ColumnsNamesList WITH PostgreSqlIndexOptions USING INDEX TABLESPACE RelObjectName
         ::= ( 'INCLUDE' ColumnsNamesList )? ( 'WITH' PostgreSqlIndexOptions )? ( 'USING' 'INDEX' 'TABLESPACE' RelObjectName )?

PostgreSqlConstraintAttributes

NOT DEFERRABLE S_IDENTIFIER S_IDENTIFIER NOT S_IDENTIFIER
         ::= ( 'NOT'? 'DEFERRABLE' )? ( S_IDENTIFIER S_IDENTIFIER )? ( 'NOT' S_IDENTIFIER )?
Referenced by:

CreateTableConstraint

TableConstraint
         ::= TableConstraint

TableConstraint

CONSTRAINT RelObjectName TableIndexSpec ForeignKeySpec CheckConstraintSpec PostgreSqlExcludeConstraint PostgreSqlConstraintAttributes

PostgreSqlExcludeConstraint

EXCLUDE USING RelObjectName ( PostgreSqlExcludeElement , ) PostgreSqlConstraintOptions WHERE ( Expression )
         ::= 'EXCLUDE' ( 'USING' RelObjectName )? ( '(' PostgreSqlExcludeElement ( ',' PostgreSqlExcludeElement )* ')' )? PostgreSqlConstraintOptions ( 'WHERE' '(' Expression ')' )?
Referenced by:

PostgreSqlExcludeElement

IndexColumnWithParams WITH = OP_NOTEQUALSSTANDARD OP_NOTEQUALSBANG < > OP_MINORTHANEQUALS OP_GREATERTHANEQUALS && @> <@
         ::= IndexColumnWithParams 'WITH' ( '=' | OP_NOTEQUALSSTANDARD | OP_NOTEQUALSBANG | '<' | '>' | OP_MINORTHANEQUALS | OP_GREATERTHANEQUALS | '&&' | '@>' | '<@' )

CreateTable

UNLOGGED GLOBAL CreateParameter TABLE IF NOT EXISTS Table CLONE Table TimeTravelAfterAlias OF ColDataType PARTITION OF Table ( RelObjectName , CreateTableElement , , ) PostgreSqlPartitionBound MySqlTableOption CreateParameter CreateTablePartitioning RowMovement AS Select LIKE ( Table ) Table , SpannerInterleaveIn
         ::= 'UNLOGGED'? 'GLOBAL'? CreateParameter* 'TABLE' ( 'IF' 'NOT' 'EXISTS' )? Table ( 'CLONE' Table TimeTravelAfterAlias? )? ( 'OF' ColDataType )? ( 'PARTITION' 'OF' Table )? ( '(' ( RelObjectName ( ',' RelObjectName )* | CreateTableElement ( ',' CreateTableElement )* ','? ) ')' )? PostgreSqlPartitionBound? ( MySqlTableOption | CreateParameter )* CreateTablePartitioning? RowMovement? ( 'AS' Select )? ( 'LIKE' ( '(' Table ')' | Table ) )? ( ',' SpannerInterleaveIn )?
Referenced by:

CreateTableElement

LikeClause CreateTableConstraint CreateTableColumnDefinition
         ::= LikeClause
           | CreateTableConstraint
           | CreateTableColumnDefinition
Referenced by:

CreateTableColumnDefinition

RelObjectName WITH S_IDENTIFIER ColumnDefinitionOption
         ::= RelObjectName ( 'WITH' S_IDENTIFIER )? ColumnDefinitionOption*
Referenced by:

MySqlTableOption

ENGINE DEFAULT CHARACTER CHAR SET S_IDENTIFIER COLLATE COMMENT AUTO_INCREMENT = MySqlTableOptionValue
         ::= ( 'ENGINE' | 'DEFAULT'? ( ( 'CHARACTER' | 'CHAR' ) 'SET' | S_IDENTIFIER | 'COLLATE' ) | 'COMMENT' | 'AUTO_INCREMENT' ) '='? MySqlTableOptionValue
Referenced by:

MySqlTableOptionValue

RelObjectName CSV BINARY S_CHAR_LITERAL S_LONG S_DOUBLE
         ::= RelObjectName
           | 'CSV'
           | 'BINARY'
           | S_CHAR_LITERAL
           | S_LONG
           | S_DOUBLE
Referenced by:

SpannerInterleaveIn

INTERLEAVE IN PARENT Table ON DELETE NO ACTION CASCADE
         ::= 'INTERLEAVE' 'IN' 'PARENT' Table ( 'ON' 'DELETE' ( 'NO' 'ACTION' | 'CASCADE' ) )?
Referenced by:

DataType

K_DATETIMELITERAL DT_ZONE DATA_TYPE SIGNED UNSIGNED CHARACTER BIT BYTES BINARY BOOLEAN CHAR JSON STRING DATA_TYPE CHARACTER BIT BYTES BINARY BOOLEAN CHAR JSON STRING ( S_LONG MAX BYTE CHAR , S_LONG ) K_TEXT_LITERAL ARRAY < ColDataType >
           | 'ARRAY' '<' ColDataType '>'
           | ( K_DATETIMELITERAL | DT_ZONE | DATA_TYPE | 'SIGNED' | 'UNSIGNED' | 'CHARACTER' | 'BIT' | 'BYTES' | 'BINARY' | 'BOOLEAN' | 'CHAR' | 'JSON' | 'STRING' ) ( DATA_TYPE | 'CHARACTER' | 'BIT' | 'BYTES' | 'BINARY' | 'BOOLEAN' | 'CHAR' | 'JSON' | 'STRING' )* ( '(' ( S_LONG | 'MAX' ) ( 'BYTE' | 'CHAR' )? ( ',' S_LONG )? ')' )?
Referenced by:

LargeObjectTypeName

S_IDENTIFIER CHARACTER CHAR BINARY DATA_TYPE S_IDENTIFIER S_IDENTIFIER
         ::= S_IDENTIFIER? ( 'CHARACTER' | 'CHAR' | 'BINARY' | DATA_TYPE ) S_IDENTIFIER S_IDENTIFIER
Referenced by:

ColDataType

LargeObjectTypeName XML S_QUOTED_IDENTIFIER XmlTypeModifier STRUCT ( RelObjectNameExt ColDataType , ) S_IDENTIFIER DATA_TYPE CHARACTER CHAR DATA_TYPE DataType S_IDENTIFIER S_QUOTED_IDENTIFIER K_DATETIMELITERAL K_DATE_LITERAL XML INTERVAL DT_ZONE CHAR SET BINARY JSON STRING PUBLIC DATA NAME IntervalQualifier . ColDataType ( ColDataType S_LONG MAX BYTE CHAR S_CHAR_LITERAL S_IDENTIFIER DATA_TYPE CHAR , ) MySqlTypeModifier [ S_LONG ] CHARACTER SET S_IDENTIFIER BINARY
         ::= ( LargeObjectTypeName | ( 'XML' | S_QUOTED_IDENTIFIER ) XmlTypeModifier | 'STRUCT' '(' RelObjectNameExt ColDataType ( ',' RelObjectNameExt ColDataType )* ')' | S_IDENTIFIER ( DATA_TYPE | 'CHARACTER' | 'CHAR' ) DATA_TYPE? | DataType | ( S_IDENTIFIER | S_QUOTED_IDENTIFIER | K_DATETIMELITERAL | K_DATE_LITERAL | 'XML' | 'INTERVAL' | DT_ZONE | 'CHAR' | 'SET' | 'BINARY' | 'JSON' | 'STRING' | 'PUBLIC' | 'DATA' | 'NAME' ) IntervalQualifier? ( '.' ColDataType )? ) ( '(' ( ( ColDataType | ( S_LONG | 'MAX' ) ( 'BYTE' | 'CHAR' )? | S_CHAR_LITERAL | S_IDENTIFIER | DATA_TYPE | 'CHAR' ) ','? )* ')' )? MySqlTypeModifier* ( '[' S_LONG? ']' )* ( 'CHARACTER' 'SET' ( S_IDENTIFIER | 'BINARY' ) )?

XmlTypeModifier

( S_IDENTIFIER RelObjectName . RelObjectNameExt )
         ::= '(' S_IDENTIFIER? RelObjectName ( '.' RelObjectNameExt )? ')'
Referenced by:

MySqlTypeModifier

SIGNED UNSIGNED ZEROFILL
         ::= 'SIGNED'
           | 'UNSIGNED'
           | 'ZEROFILL'
Referenced by:

Analyze

ANALYZE NO_WRITE_TO_BINLOG LOCAL TABLE Table , UPDATE DROP HISTOGRAM ON Column , WITH S_LONG BUCKETS
Analyze  ::= 'ANALYZE' ( 'NO_WRITE_TO_BINLOG' | 'LOCAL' )? 'TABLE'? Table ( ',' Table )* ( ( 'UPDATE' | 'DROP' ) 'HISTOGRAM' 'ON' Column ( ',' Column )* ( 'WITH' S_LONG 'BUCKETS' )? )?
Referenced by:

ColumnWithCommentList

( Column , )
         ::= '(' Column ( ',' Column )* ')'
Referenced by:

CreateView

NO FORCE SECURE TEMP TEMPORARY VOLATILE RECURSIVE MATERIALIZED VIEW IF NOT EXISTS Table S_IDENTIFIER YES NO AUTO REFRESH YES NO IF NOT EXISTS ColumnWithCommentList CreateViewTailComment USING RelObjectName WITH PostgreSqlIndexOptions ( PostgreSqlViewOption , ) TABLESPACE RelObjectName AS Select WITH READ ONLY LOCAL S_IDENTIFIER CHECK OPTION NO DATA
         ::= ( 'NO'? 'FORCE' )? 'SECURE'? ( 'TEMP' | 'TEMPORARY' | 'VOLATILE' )? 'RECURSIVE'? 'MATERIALIZED'? 'VIEW' ( 'IF' 'NOT' 'EXISTS' )? Table ( S_IDENTIFIER ( 'YES' | 'NO' ) )? ( 'AUTO' 'REFRESH' ( 'YES' | 'NO' ) )? ( 'IF' 'NOT' 'EXISTS' )? ColumnWithCommentList? CreateViewTailComment? ( 'USING' RelObjectName )? ( 'WITH' ( PostgreSqlIndexOptions | '(' PostgreSqlViewOption ( ',' PostgreSqlViewOption )* ')' ) )? ( 'TABLESPACE' RelObjectName )? 'AS' Select ( 'WITH' ( 'READ' 'ONLY' | ( 'LOCAL' | S_IDENTIFIER )? 'CHECK' 'OPTION' | 'NO'? 'DATA' ) )?
Referenced by:

PostgreSqlViewOption

RelObjectName = PrimaryExpression
         ::= RelObjectName ( '=' PrimaryExpression )?
Referenced by:

CreateViewTailComment

COMMENT = S_CHAR_LITERAL
         ::= 'COMMENT' '='? S_CHAR_LITERAL
Referenced by:

Action

CASCADE RESTRICT NO ACTION SET NULL DEFAULT
Action   ::= 'CASCADE'
           | 'RESTRICT'
           | 'NO' 'ACTION'
           | 'SET' ( 'NULL' | 'DEFAULT' )
Referenced by:

ReferentialActions

ON DELETE UPDATE Action ON DELETE UPDATE Action
         ::= ( 'ON' ( 'DELETE' | 'UPDATE' ) Action )? ( 'ON' ( 'DELETE' | 'UPDATE' ) Action )?
Referenced by:

ForeignKeyReferenceSpec

REFERENCES Table ColumnsNamesList MATCH FULL S_IDENTIFIER ReferentialActions
         ::= 'REFERENCES' Table ColumnsNamesList? ( 'MATCH' ( 'FULL' | S_IDENTIFIER ) )? ReferentialActions

CheckConstraintSpec

CHECK ( Expression ) NOT ENFORCED
         ::= 'CHECK' ( '(' Expression ')' )* ( 'NOT'? 'ENFORCED' )?

ForeignKeySpec

FOREIGN KEY RelObjectName ColumnNamesWithParamsList ForeignKeyReferenceSpec
         ::= 'FOREIGN' 'KEY' RelObjectName? ColumnNamesWithParamsList ForeignKeyReferenceSpec

AlterExpressionUsingIndex

USING INDEX RelObjectName TABLESPACE RelObjectName
         ::= 'USING' 'INDEX'? ( RelObjectName? 'TABLESPACE' )? RelObjectName

AlterExpressionConstraintTail

AlterExpressionConstraintState AlterExpressionUsingIndex IndexWithComment

AlterView

VIEW Table ColumnsNamesList AS Select
         ::= 'VIEW' Table ColumnsNamesList? 'AS' Select
Referenced by:

CreateParameter

K_NEXTVAL ( S_CHAR_LITERAL :: ColDataType ) S_IDENTIFIER S_QUOTED_IDENTIFIER NAME VERSION . S_IDENTIFIER S_QUOTED_IDENTIFIER NAME USING INDEX TABLESPACE RelObjectName S_CHAR_LITERAL 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 ORDER K_TIME_KEY_EXPR RAW HASH FIRST LAST SIGNED UNSIGNED ENGINE IDENTITY MATERIALIZED SAMPLE ALWAYS VISIBLE INVISIBLE KEY_BLOCK_SIZE ALGORITHM LOCK NONE PARSER FULLTEXT SPATIAL DIRECTORY LINEAR LIST MAX_ROWS MIN_ROWS PARTITIONS STORAGE SUBPARTITION SUBPARTITIONS = DEFAULT AS CHECK ( Expression ) + - S_LONG S_DOUBLE AList CHARACTER SET ARRAY ArrayConstructor :: ColDataType
         ::= K_NEXTVAL '(' S_CHAR_LITERAL '::' ColDataType ')'
           | ( S_IDENTIFIER | S_QUOTED_IDENTIFIER | 'NAME' | 'VERSION' ) ( '.' ( S_IDENTIFIER | S_QUOTED_IDENTIFIER | 'NAME' ) )?
           | ( 'USING' 'INDEX' )? 'TABLESPACE' RelObjectName
           | S_CHAR_LITERAL
           | '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'
           | 'ORDER'
           | K_TIME_KEY_EXPR
           | 'RAW'
           | 'HASH'
           | 'FIRST'
           | 'LAST'
           | 'SIGNED'
           | 'UNSIGNED'
           | 'ENGINE'
           | 'IDENTITY'
           | 'MATERIALIZED'
           | 'SAMPLE'
           | 'ALWAYS'
           | 'VISIBLE'
           | 'INVISIBLE'
           | 'KEY_BLOCK_SIZE'
           | 'ALGORITHM'
           | 'LOCK'
           | 'NONE'
           | 'PARSER'
           | 'FULLTEXT'
           | 'SPATIAL'
           | 'DIRECTORY'
           | 'LINEAR'
           | 'LIST'
           | 'MAX_ROWS'
           | 'MIN_ROWS'
           | 'PARTITIONS'
           | 'STORAGE'
           | 'SUBPARTITION'
           | 'SUBPARTITIONS'
           | '='
           | ( 'DEFAULT' | 'AS' | 'CHECK' ) ( '(' Expression ')' )?
           | ( '+' | '-' )? S_LONG
           | S_DOUBLE
           | AList
           | 'CHARACTER' 'SET'
           | 'ARRAY' ArrayConstructor
           | '::' ColDataType

RowMovement

ENABLE DISABLE ROW MOVEMENT
         ::= ( 'ENABLE' | 'DISABLE' ) 'ROW' 'MOVEMENT'
Referenced by:

AList

( S_LONG S_DOUBLE S_CHAR_LITERAL TRUE FALSE RelObjectName , = )
AList    ::= '(' ( ( S_LONG | S_DOUBLE | S_CHAR_LITERAL | 'TRUE' | 'FALSE' | RelObjectName ) ( ',' | '=' )? )* ')'
Referenced by:

ColumnsNamesListItem

RelObjectName ( S_LONG ) ASC DESC
         ::= RelObjectName ( '(' S_LONG ')' )? ( 'ASC' | 'DESC' )?

ColumnsNamesList

( ColumnsNamesListItem , )
         ::= '(' ColumnsNamesListItem ( ',' ColumnsNamesListItem )* ')'

FuncArgsListItem

RelObjectName RelObjectName ( S_LONG )
         ::= RelObjectName RelObjectName? ( '(' S_LONG ')' )?
Referenced by:

FuncArgsList

( FuncArgsListItem , )
         ::= '(' ( FuncArgsListItem ( ',' FuncArgsListItem )* )? ')'
Referenced by:

DropObjectName

RelObjectNames TimeTravelBeforeAlias S_CHAR_LITERAL
         ::= RelObjectNames TimeTravelBeforeAlias?
           | S_CHAR_LITERAL
Referenced by:

Drop

DROP MATERIALIZED S_IDENTIFIER TEMPORARY TABLE INDEX VIEW DATABASE PROCEDURE SCHEMA SEQUENCE TRIGGER FUNCTION IF EXISTS DropObjectName , FuncArgsList IndexAlgorithmOrLockOption S_IDENTIFIER CASCADE RESTRICT ALGORITHM NONE = ON DropObjectName LOCK
Drop     ::= 'DROP' 'MATERIALIZED'? ( S_IDENTIFIER | 'TEMPORARY'? 'TABLE' | 'INDEX' | 'VIEW' | 'DATABASE' | 'PROCEDURE' | 'SCHEMA' | 'SEQUENCE' | 'TRIGGER' | 'FUNCTION' ) ( 'IF' 'EXISTS' )? DropObjectName ( ',' DropObjectName )* FuncArgsList? ( IndexAlgorithmOrLockOption | S_IDENTIFIER | 'CASCADE' | 'RESTRICT' | 'ALGORITHM' | 'NONE' | '=' | 'ON' DropObjectName | 'LOCK' )*
Referenced by:

Truncate

TRUNCATE TABLE ONLY Table , CASCADE
Truncate ::= 'TRUNCATE' 'TABLE'? 'ONLY'? Table ( ',' Table )* 'CASCADE'?
Referenced by:

AlterExpressionColumnChanges

AlterExpressionColumnDropDefault AlterExpressionColumnSetDefault AlterExpressionColumnSetNotNull AlterExpressionColumnSetVisibility ( AlterExpressionColumnDataType , )
         ::= AlterExpressionColumnDropDefault
           | AlterExpressionColumnSetDefault
           | AlterExpressionColumnSetNotNull
           | AlterExpressionColumnSetVisibility
           | '(' AlterExpressionColumnDataType ( ',' AlterExpressionColumnDataType )* ')'

AlterExpressionColumnDataType

RelObjectName TYPE ColDataType ColumnDefinitionOption USING Expression ColumnIdentityAlteration
         ::= RelObjectName ( ColumnIdentityAlteration+ | 'TYPE'? ColDataType? ColumnDefinitionOption* ( 'USING' Expression )? )

ColumnIdentityAlteration

ADD IdentityDefinition SET S_IDENTIFIER ALWAYS BY DEFAULT SequenceParameter RESTART WITH SequenceParameterValue DROP IDENTITY IF EXISTS
         ::= 'ADD' IdentityDefinition
           | 'SET' ( S_IDENTIFIER ( 'ALWAYS' | 'BY' 'DEFAULT' ) | SequenceParameter )
           | 'RESTART' ( 'WITH' SequenceParameterValue )?
           | 'DROP' 'IDENTITY' ( 'IF' 'EXISTS' )?

AlterExpressionColumnDropNotNull

RelObjectName DROP NOT NULL
         ::= RelObjectName 'DROP' 'NOT'? 'NULL'

AlterExpressionColumnSetNotNull

RelObjectName SET NOT NULL
         ::= RelObjectName 'SET' 'NOT' 'NULL'

AlterExpressionColumnDropDefault

RelObjectName DROP DEFAULT
         ::= RelObjectName 'DROP' 'DEFAULT'

AlterExpressionColumnSetDefault

RelObjectName SET DEFAULT Expression
         ::= RelObjectName 'SET' 'DEFAULT' Expression

AlterExpressionColumnSetVisibility

RelObjectName SET VISIBLE INVISIBLE
         ::= RelObjectName 'SET' ( 'VISIBLE' | 'INVISIBLE' )

AlterExpressionConstraintState

NOT DEFERRABLE VALIDATE NOVALIDATE ENABLE DISABLE
         ::= ( 'NOT'? 'DEFERRABLE' | 'VALIDATE' | 'NOVALIDATE' | 'ENABLE' | 'DISABLE' )*

IndexWithComment

COMMENT S_CHAR_LITERAL
         ::= 'COMMENT' S_CHAR_LITERAL

IndexOptionList

IndexOption
         ::= IndexOption*

UsingIndexType

USING RelObjectName
         ::= 'USING' RelObjectName

IndexOption

KEY_BLOCK_SIZE = S_LONG WITH PARSER S_IDENTIFIER COMMENT S_CHAR_LITERAL VISIBLE INVISIBLE UsingIndexType
         ::= 'KEY_BLOCK_SIZE' '='? S_LONG
           | 'WITH' 'PARSER' S_IDENTIFIER
           | 'COMMENT' S_CHAR_LITERAL
           | 'VISIBLE'
           | 'INVISIBLE'
           | UsingIndexType
Referenced by:

CreateTablePartitioning

PARTITION BY HashOrKeyPartitioning RANGE LIST ( SimpleExpressionList COLUMNS ( ColumnList ) SimpleExpression PARTITIONS S_LONG SUBPARTITION BY HashOrKeyPartitioning SUBPARTITIONS S_LONG PartitionDefinitions CreateParameter
         ::= 'PARTITION' 'BY' ( HashOrKeyPartitioning | ( 'RANGE' | 'LIST' ) ( '(' SimpleExpressionList | 'COLUMNS' '(' ColumnList ) ')' | SimpleExpression ) ( 'PARTITIONS' S_LONG )? ( 'SUBPARTITION' 'BY' HashOrKeyPartitioning ( 'SUBPARTITIONS' S_LONG )? )? PartitionDefinitions? CreateParameter*

PostgreSqlPartitionBound

DEFAULT FOR VALUES FROM ( SimpleExpressionList ) TO IN ( SimpleExpressionList WITH ( MODULUS Expression , REMAINDER Expression )
         ::= 'DEFAULT'
           | 'FOR' 'VALUES' ( ( 'FROM' '(' SimpleExpressionList ')' 'TO' | 'IN' ) '(' SimpleExpressionList | 'WITH' '(' 'MODULUS' Expression ',' 'REMAINDER' Expression ) ')'

HashOrKeyPartitioning

LINEAR HASH ( SimpleExpressionList KEY ALGORITHM = S_LONG ( ColumnList )
         ::= 'LINEAR'? ( 'HASH' '(' SimpleExpressionList | 'KEY' ( 'ALGORITHM' '='? S_LONG )? '(' ColumnList? ) ')'
Referenced by:

PartitionValues

MAXVALUE Expression ,
         ::= ( 'MAXVALUE' | Expression ) ( ',' ( 'MAXVALUE' | Expression ) )*
Referenced by:

PartitionDefinition

PARTITION RelObjectName VALUES LESS THAN MAXVALUE ( PartitionValues ) IN ( PartitionValues ) PartitionDefinitionOption SubpartitionDefinitions
         ::= 'PARTITION' RelObjectName ( 'VALUES' ( 'LESS' 'THAN' ( 'MAXVALUE' | '(' PartitionValues ')' ) | 'IN' '(' PartitionValues ')' ) )? PartitionDefinitionOption* SubpartitionDefinitions?
Referenced by:

PartitionDefinitions

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

SubpartitionDefinition

SUBPARTITION RelObjectName PartitionDefinitionOption
         ::= 'SUBPARTITION' RelObjectName PartitionDefinitionOption*
Referenced by:

SubpartitionDefinitions

( SubpartitionDefinition , )
         ::= '(' SubpartitionDefinition ( ',' SubpartitionDefinition )* ')'
Referenced by:

PartitionDefinitionOption

STORAGE ENGINE TABLESPACE = RelObjectName COMMENT DATA INDEX DIRECTORY = S_CHAR_LITERAL MAX_ROWS MIN_ROWS = S_LONG
         ::= ( 'STORAGE'? 'ENGINE' | 'TABLESPACE' ) '='? RelObjectName
           | ( 'COMMENT' | ( 'DATA' | 'INDEX' ) 'DIRECTORY' ) '='? S_CHAR_LITERAL
           | ( 'MAX_ROWS' | 'MIN_ROWS' ) '='? S_LONG

PartitionNamesList

RelObjectName ,
         ::= RelObjectName ( ',' RelObjectName )*

AlterExpressionDiscardOrImport

DISCARD IMPORT PARTITION PartitionNamesList TABLESPACE
         ::= ( 'DISCARD' | 'IMPORT' ) ( 'PARTITION' PartitionNamesList )? 'TABLESPACE'
Referenced by:

DefaultConstraintSpec

CONSTRAINT RelObjectName DEFAULT Expression FOR RelObjectName WITH VALUES
         ::= ( 'CONSTRAINT' RelObjectName )? 'DEFAULT' Expression 'FOR' RelObjectName ( 'WITH' 'VALUES' )?

InformixConstraint

CONSTRAINT PRIMARY KEY UNIQUE ColumnsNamesList ForeignKeySpec CheckConstraintSpec CONSTRAINT RelObjectName
         ::= 'CONSTRAINT' ( ( 'PRIMARY' 'KEY' | 'UNIQUE' ) ColumnsNamesList | ForeignKeySpec | CheckConstraintSpec ) ( 'CONSTRAINT' RelObjectName )?

AlterExpressionAddConstraint

CONSTRAINT UNIQUE KEY INDEX RelObjectName ColumnsNamesList RelObjectName ForeignKeySpec KEY ColumnsNamesList AlterExpressionConstraintState PRIMARY KEY UNIQUE KEY INDEX SqlServerIndexClustering ColumnsNamesList AlterExpressionConstraintTail NOT ENFORCED CheckConstraintSpec
         ::= 'CONSTRAINT' ( 'UNIQUE' ( 'KEY' | 'INDEX' )? RelObjectName ColumnsNamesList | RelObjectName ( ( ForeignKeySpec | 'KEY' ColumnsNamesList ) AlterExpressionConstraintState | ( 'PRIMARY' 'KEY' | 'UNIQUE' ( 'KEY' | 'INDEX' )? ) SqlServerIndexClustering ColumnsNamesList AlterExpressionConstraintTail | 'NOT'? 'ENFORCED' | CheckConstraintSpec ) )

AlterExpressionDrop

DROP PARTITION PartitionNamesList ColumnsNamesList COLUMN IF EXISTS KeywordOrIdentifier 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
         ::= 'DROP' ( 'PARTITION' PartitionNamesList | ( ColumnsNamesList | 'COLUMN'? ( 'IF' 'EXISTS' )? KeywordOrIdentifier ) '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' )? )
Referenced by:

AlterExpressionPartitionOp

TRUNCATE ANALYZE CHECK OPTIMIZE REBUILD REPAIR PARTITION PartitionNamesList COALESCE PARTITION S_LONG REORGANIZE PARTITION PartitionNamesList INTO PartitionDefinitions EXCHANGE PARTITION PartitionNamesList WITH TABLE Table WITH WITHOUT VALIDATION REMOVE PARTITIONING CreateTablePartitioning
         ::= ( 'TRUNCATE' | 'ANALYZE' | 'CHECK' | 'OPTIMIZE' | 'REBUILD' | 'REPAIR' ) 'PARTITION' PartitionNamesList
           | 'COALESCE' 'PARTITION' S_LONG
           | 'REORGANIZE' 'PARTITION' PartitionNamesList 'INTO' PartitionDefinitions
           | 'EXCHANGE' 'PARTITION' PartitionNamesList 'WITH' 'TABLE' Table ( ( 'WITH' | 'WITHOUT' ) 'VALIDATION' )?
           | 'REMOVE' 'PARTITIONING'
           | CreateTablePartitioning
Referenced by:

AlterExpressionAddAlterModify

ADD ALTER MODIFY DefaultConstraintSpec INDEX RelObjectName IndexOptionList InformixConstraint TableConstraint TableIndexSpec AlterExpressionConstraintState AlterExpressionUsingIndex RelObjectName COMMENT S_CHAR_LITERAL PARTITION PartitionDefinitions COLUMN COLUMNS IF NOT EXISTS AlterExpressionColumnChanges AlterExpressionColumnDropNotNull AlterExpressionColumnDataType AlterExpressionColumnChanges ForeignKeySpec CHECK RelObjectName NOT ENFORCED AlterExpressionAddConstraint
Referenced by:

CockroachPrimaryKeyColumn

Function RelObjectName ( Expression ) S_IDENTIFIER S_QUOTED_IDENTIFIER ASC DESC NULLS FIRST LAST
         ::= ( Function | RelObjectName | '(' Expression ')' ) ( S_IDENTIFIER | S_QUOTED_IDENTIFIER )? ( 'ASC' | 'DESC' )? ( 'NULLS' ( 'FIRST' | 'LAST' ) )?
Referenced by:

CockroachAlterPrimaryKey

ALTER PRIMARY KEY USING COLUMNS ( CockroachPrimaryKeyColumn , ) USING HASH WITH S_IDENTIFIER = Expression WITH PostgreSqlIndexOptions
         ::= 'ALTER' 'PRIMARY' 'KEY' 'USING' 'COLUMNS' '(' CockroachPrimaryKeyColumn ( ',' CockroachPrimaryKeyColumn )* ')' ( 'USING' 'HASH' ( 'WITH' S_IDENTIFIER '=' Expression )? )? ( 'WITH' PostgreSqlIndexOptions )?
Referenced by:

AlterExpressionRenameOp

RENAME INDEX KEY CONSTRAINT S_IDENTIFIER S_QUOTED_IDENTIFIER TO S_IDENTIFIER S_QUOTED_IDENTIFIER COLUMN KeywordOrIdentifier TO AS KeywordOrIdentifier
         ::= 'RENAME' ( ( 'INDEX' | 'KEY' | 'CONSTRAINT' ) ( S_IDENTIFIER | S_QUOTED_IDENTIFIER ) 'TO' ( S_IDENTIFIER | S_QUOTED_IDENTIFIER ) | ( ( 'COLUMN'? KeywordOrIdentifier )? 'TO' | 'AS' )? KeywordOrIdentifier )
Referenced by:

AlterExpressionPostgreSqlPartitionOp

ATTACH PARTITION Table PostgreSqlPartitionBound DETACH PARTITION Table CONCURRENTLY FINALIZE
         ::= 'ATTACH' 'PARTITION' Table PostgreSqlPartitionBound
           | 'DETACH' 'PARTITION' Table ( 'CONCURRENTLY' | 'FINALIZE' )?
Referenced by:

AlterExpression

CockroachAlterPrimaryKey AlterExpressionAddAlterModify CHANGE COLUMN KeywordOrIdentifier AlterExpressionColumnDataType AlterExpressionDrop FORCE ROW LEVEL SECURITY NO FORCE ROW LEVEL SECURITY ALGORITHM LOCK ENGINE = RelObjectName KEY_BLOCK_SIZE AUTO_INCREMENT = S_LONG AlterExpressionRenameOp CONVERT TO CHARACTER SET S_IDENTIFIER COLLATE DEFAULT CHARACTER SET = S_IDENTIFIER COLLATE COLLATE = S_IDENTIFIER COMMENT ENCRYPTION = S_CHAR_LITERAL AlterExpressionDiscardOrImport AlterExpressionPostgreSqlPartitionOp DISABLE ENABLE ROW LEVEL SECURITY KEYS AlterExpressionPartitionOp captureRest
         ::= CockroachAlterPrimaryKey
           | AlterExpressionAddAlterModify
           | 'CHANGE' 'COLUMN'? KeywordOrIdentifier AlterExpressionColumnDataType
           | AlterExpressionDrop
           | 'FORCE' ( 'ROW' 'LEVEL' 'SECURITY' )?
           | 'NO' 'FORCE' 'ROW' 'LEVEL' 'SECURITY'
           | ( 'ALGORITHM' | 'LOCK' | 'ENGINE' ) '='? RelObjectName
           | ( 'KEY_BLOCK_SIZE' | 'AUTO_INCREMENT' ) '='? S_LONG
           | AlterExpressionRenameOp
           | ( 'CONVERT' 'TO' 'CHARACTER' 'SET' ( S_IDENTIFIER 'COLLATE' )? | 'DEFAULT'? ( 'CHARACTER' 'SET' ( '='? S_IDENTIFIER 'COLLATE' )? | 'COLLATE' ) '='? ) S_IDENTIFIER
           | ( 'COMMENT' | 'ENCRYPTION' ) '='? S_CHAR_LITERAL
           | AlterExpressionDiscardOrImport
           | AlterExpressionPostgreSqlPartitionOp
           | ( 'DISABLE' | 'ENABLE' ) ( 'ROW' 'LEVEL' 'SECURITY' | 'KEYS' )
           | AlterExpressionPartitionOp
           | captureRest
Referenced by:

Alter

ALTER AlterRole AlterDefaultPrivileges AlterType AlterDomain AlterExtension AlterPublication AlterSubscription AlterEvent AlterTable AlterSession AlterView AlterSystemStatement AlterSequence captureRest REPLACE AlterView captureRest
           | 'REPLACE' ( AlterView | captureRest )
Referenced by:

AlterTable

TABLE ONLY IF EXISTS Table AlterExpression ,
         ::= 'TABLE' 'ONLY'? ( 'IF' 'EXISTS' )? Table AlterExpression ( ',' AlterExpression )*
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
         ::= '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 ContextualKeyword ContextualKeyword RESTRICTED SESSION FLUSH DISCONNECT KILL SESSION SWITCH SUSPEND RESUME QUIESCE RESTRICTED UNQIESCE SHUTDOWN REGISTER SET RESET captureRest
         ::= 'SYSTEM' ( 'ARCHIVE' 'LOG' | 'CHECKPOINT' | 'DUMP' 'ACTIVE' 'SESSION' 'HISTORY' | ( 'ENABLE' | 'DISABLE' ) ( ContextualKeyword ContextualKeyword | 'RESTRICTED' 'SESSION' ) | 'FLUSH' | ( 'DISCONNECT' | 'KILL' ) 'SESSION' | 'SWITCH' | 'SUSPEND' | 'RESUME' | 'QUIESCE' 'RESTRICTED' | 'UNQIESCE' | 'SHUTDOWN' | 'REGISTER' | 'SET' | 'RESET' ) captureRest
Referenced by:

Wait

WAIT S_LONG
Wait     ::= 'WAIT' S_LONG
Referenced by:

SavepointStatement

SAVEPOINT S_IDENTIFIER
         ::= 'SAVEPOINT' S_IDENTIFIER
Referenced by:

RollbackStatement

ROLLBACK WORK TO SAVEPOINT S_IDENTIFIER FORCE S_CHAR_LITERAL
         ::= 'ROLLBACK' 'WORK'? ( 'TO' 'SAVEPOINT'? S_IDENTIFIER | 'FORCE' S_CHAR_LITERAL )?
Referenced by:

Comment

COMMENT ON TABLE VIEW Table COLUMN Column CommentTarget IS S_CHAR_LITERAL NULL
Comment  ::= 'COMMENT' 'ON' ( ( 'TABLE' | 'VIEW' ) Table | 'COLUMN' Column | CommentTarget ) 'IS' ( S_CHAR_LITERAL | 'NULL' )
Referenced by:

CommentObjectName

RelObjectNames
         ::= RelObjectNames
Referenced by:

CommentTarget

FUNCTION RoutineReference CONSTRAINT RelObjectName ON DOMAIN INDEX SCHEMA SEQUENCE MATERIALIZED VIEW DOMAIN TYPE CommentObjectName
         ::= 'FUNCTION' RoutineReference
           | ( 'CONSTRAINT' RelObjectName 'ON' 'DOMAIN'? | 'INDEX' | 'SCHEMA' | 'SEQUENCE' | 'MATERIALIZED' 'VIEW' | 'DOMAIN' | 'TYPE' ) CommentObjectName
Referenced by:

ContextualKeyword

S_IDENTIFIER
         ::= S_IDENTIFIER

AccessKeyword

S_IDENTIFIER DATA_TYPE
         ::= S_IDENTIFIER
           | DATA_TYPE

AccessQualifiedName

RelObjectName . RelObjectNameExt
         ::= RelObjectName ( '.' RelObjectNameExt )*

AccessNames

RelObjectName ,
         ::= RelObjectName ( ',' RelObjectName )*

RoleOption

AccessKeyword LIMIT + - S_LONG AccessKeyword S_CHAR_LITERAL AccessKeyword PASSWORD S_CHAR_LITERAL NULL IN AccessKeyword GROUP S_IDENTIFIER USER AccessNames S_IDENTIFIER
         ::= AccessKeyword ( ( 'LIMIT' ( '+' | '-' )? )? S_LONG | AccessKeyword S_CHAR_LITERAL )
           | AccessKeyword? 'PASSWORD' ( S_CHAR_LITERAL | 'NULL' )
           | ( 'IN' ( AccessKeyword | 'GROUP' ) | S_IDENTIFIER | 'USER' ) AccessNames
           | S_IDENTIFIER
Referenced by:

CreateRole

S_IDENTIFIER USER GROUP RelObjectName WITH RoleOption
         ::= ( S_IDENTIFIER | 'USER' | 'GROUP' ) RelObjectName 'WITH'? RoleOption*
Referenced by:

AlterRole

S_IDENTIFIER USER GROUP ALL RelObjectName IN DATABASE RelObjectName RENAME TO RelObjectName ADD DROP USER AccessNames SET AccessQualifiedName FROM CURRENT TO = DEFAULT AccessSettingValue , RESET ALL AccessQualifiedName WITH RoleOption
         ::= ( S_IDENTIFIER | 'USER' | 'GROUP' ) ( 'ALL' | RelObjectName ) ( 'IN' 'DATABASE' RelObjectName )? ( 'RENAME' 'TO' RelObjectName | ( 'ADD' | 'DROP' ) 'USER' AccessNames | 'SET' AccessQualifiedName ( 'FROM' 'CURRENT' | ( 'TO' | '=' ) ( 'DEFAULT' | AccessSettingValue ( ',' AccessSettingValue )* ) ) | 'RESET' ( 'ALL' | AccessQualifiedName ) | 'WITH'? RoleOption+ )
Referenced by:

AccessSettingValue

ON PrimaryExpression
         ::= 'ON'
           | PrimaryExpression
Referenced by:

AccessPrivilege

K_SELECT ALL S_IDENTIFIER INSERT UPDATE DELETE TRUNCATE REFERENCES TRIGGER CREATE CONNECT TEMPORARY TEMP EXECUTE SET ALTER DROP SYSTEM AccessKeyword ( RelObjectName , )
         ::= ( K_SELECT | 'ALL' | S_IDENTIFIER | 'INSERT' | 'UPDATE' | 'DELETE' | 'TRUNCATE' | 'REFERENCES' | 'TRIGGER' | 'CREATE' | 'CONNECT' | 'TEMPORARY' | 'TEMP' | 'EXECUTE' | 'SET' | 'ALTER' | 'DROP' ) 'SYSTEM'? AccessKeyword? ( '(' RelObjectName ( ',' RelObjectName )* ')' )?
Referenced by:

AccessObjectKind

FOREIGN DATA AccessKeyword AccessKeyword S_IDENTIFIER TABLE TABLES SEQUENCE DATABASE DOMAIN FUNCTION PROCEDURE SCHEMA TABLESPACE TYPE
         ::= 'FOREIGN' 'DATA'? AccessKeyword
           | AccessKeyword? S_IDENTIFIER
           | 'TABLE'
           | 'TABLES'
           | 'SEQUENCE'
           | 'DATABASE'
           | 'DOMAIN'
           | 'FUNCTION'
           | 'PROCEDURE'
           | 'SCHEMA'
           | 'TABLESPACE'
           | 'TYPE'
Referenced by:

AccessRoutineArgument

RoutineArgument
         ::= RoutineArgument
Referenced by:

AccessRoutine

AccessQualifiedName ( AccessRoutineArgument , )
         ::= AccessQualifiedName ( '(' ( AccessRoutineArgument ( ',' AccessRoutineArgument )* )? ')' )?
Referenced by:

AccessTarget

AccessObjectKind AccessRoutine , S_LONG , ALL AccessObjectKind IN SCHEMA AccessObjectKind RelObjectNames ,
         ::= AccessObjectKind ( AccessRoutine ( ',' AccessRoutine )* | S_LONG ( ',' S_LONG )* )?
           | ( 'ALL' AccessObjectKind 'IN' 'SCHEMA' | AccessObjectKind )? RelObjectNames ( ',' RelObjectNames )*
Referenced by:

AccessGrantee

GROUP RelObjectName
         ::= 'GROUP'? RelObjectName
Referenced by:

AccessGrantees

AccessGrantee ,
         ::= AccessGrantee ( ',' AccessGrantee )*
Referenced by:

AccessClause

AccessPrivilege , ON AccessTarget AccessNames TO FROM AccessGrantees
         ::= ( AccessPrivilege ( ',' AccessPrivilege )* 'ON' AccessTarget | AccessNames ) ( 'TO' | 'FROM' ) AccessGrantees
Referenced by:

Grant

AccessGrant
Grant    ::= AccessGrant
Referenced by:

AccessGrant

GRANT AccessClause WITH GRANT S_IDENTIFIER SET OPTION TRUE FALSE AccessKeyword BY RelObjectName
         ::= 'GRANT' AccessClause ( 'WITH' ( 'GRANT' | S_IDENTIFIER | 'SET' ) ( 'OPTION' | 'TRUE' | 'FALSE' ) )? ( AccessKeyword 'BY' RelObjectName )?

Revoke

REVOKE GRANT S_IDENTIFIER SET OPTION FOR AccessClause AccessKeyword BY RelObjectName CASCADE RESTRICT
Revoke   ::= 'REVOKE' ( ( 'GRANT' | S_IDENTIFIER | 'SET' ) 'OPTION' 'FOR' )? AccessClause ( AccessKeyword 'BY' RelObjectName )? ( 'CASCADE' | 'RESTRICT' )?

AlterDefaultPrivileges

DEFAULT AccessKeyword FOR S_IDENTIFIER USER AccessNames IN SCHEMA AccessNames AccessGrant Revoke
         ::= 'DEFAULT' AccessKeyword ( 'FOR' ( S_IDENTIFIER | 'USER' ) AccessNames )? ( 'IN' 'SCHEMA' AccessNames )? ( AccessGrant | Revoke )
Referenced by:

PostgreSqlTriggerEvent

INSERT DELETE TRUNCATE UPDATE OF RelObjectName ,
         ::= 'INSERT'
           | 'DELETE'
           | 'TRUNCATE'
           | 'UPDATE' ( 'OF' RelObjectName ( ',' RelObjectName )* )?
Referenced by:

PostgreSqlTransitionRelation

S_IDENTIFIER TABLE AS RelObjectName
         ::= S_IDENTIFIER 'TABLE' 'AS'? RelObjectName
Referenced by:

PostgreSqlTrigger

CONSTRAINT TRIGGER RelObjectName AccessKeyword OF MySqlTriggerTiming PostgreSqlTriggerEvent OR ON Table FROM Table NOT DEFERRABLE AccessKeyword S_IDENTIFIER AccessKeyword PostgreSqlTransitionRelation FOR AccessKeyword ROW STATEMENT WHEN ( Expression ) EXECUTE FUNCTION PROCEDURE AccessQualifiedName ( PostgreSqlTriggerArgument , ) SingleStatement
         ::= 'CONSTRAINT'? 'TRIGGER' RelObjectName ( AccessKeyword 'OF' | MySqlTriggerTiming ) PostgreSqlTriggerEvent ( 'OR' PostgreSqlTriggerEvent )* 'ON' Table ( 'FROM' Table )? ( 'NOT'? 'DEFERRABLE' )? ( AccessKeyword S_IDENTIFIER )? ( AccessKeyword PostgreSqlTransitionRelation+ )? ( 'FOR' AccessKeyword? ( 'ROW' | 'STATEMENT' ) )? ( 'WHEN' '(' Expression ')' )? ( 'EXECUTE' ( 'FUNCTION' | 'PROCEDURE' ) AccessQualifiedName '(' ( PostgreSqlTriggerArgument ( ',' PostgreSqlTriggerArgument )* )? ')' | SingleStatement )
Referenced by:

PostgreSqlTriggerArgument

S_CHAR_LITERAL S_LONG S_DOUBLE RelObjectName
         ::= S_CHAR_LITERAL
           | S_LONG
           | S_DOUBLE
           | RelObjectName
Referenced by:

UsersList

RelObjectName , ColumnsNamesListItem
         ::= RelObjectName ( ',' ColumnsNamesListItem )*
Not referenced by any.

readGrantTypes

K_SELECT INSERT UPDATE DELETE EXECUTE ALTER DROP
         ::= K_SELECT
           | 'INSERT'
           | 'UPDATE'
           | 'DELETE'
           | 'EXECUTE'
           | 'ALTER'
           | 'DROP'
Not referenced by any.

Sequence

RelObjectNames

SequenceParameters

SequenceParameter
         ::= SequenceParameter*

SequenceParameter

INCREMENT BY START WITH MINVALUE MAXVALUE CACHE SequenceParameterValue RESTART WITH SequenceParameterValue NO MINVALUE MAXVALUE CYCLE NOMINVALUE NOMAXVALUE CYCLE NOCYCLE NOCACHE ORDER NOORDER KEEP NOKEEP SESSION GLOBAL
         ::= ( 'INCREMENT' 'BY'? | 'START' 'WITH'? | 'MINVALUE' | 'MAXVALUE' | 'CACHE' ) SequenceParameterValue
           | 'RESTART' ( 'WITH' SequenceParameterValue )?
           | 'NO' ( 'MINVALUE' | 'MAXVALUE' | 'CYCLE' )
           | 'NOMINVALUE'
           | 'NOMAXVALUE'
           | 'CYCLE'
           | 'NOCYCLE'
           | 'NOCACHE'
           | 'ORDER'
           | 'NOORDER'
           | 'KEEP'
           | 'NOKEEP'
           | 'SESSION'
           | 'GLOBAL'

SequenceParameterValue

- + S_LONG
         ::= ( '-' | '+' )? S_LONG

SequenceOwnership

S_IDENTIFIER BY NONE Column
         ::= S_IDENTIFIER 'BY' ( 'NONE' | Column )

CreateSequence

SEQUENCE Sequence AS S_IDENTIFIER DATA_TYPE SequenceParameters SequenceOwnership
         ::= 'SEQUENCE' Sequence ( 'AS' ( S_IDENTIFIER | DATA_TYPE ) )? SequenceParameters SequenceOwnership?
Referenced by:

AlterSequence

SEQUENCE Sequence SequenceParameters SequenceOwnership
         ::= 'SEQUENCE' Sequence SequenceParameters SequenceOwnership?
Referenced by:

Create

CREATE OR REPLACE CreateRole PostgreSqlTrigger CreateType CreateDomain CreateExtensionRepository CreateExtension CreatePublication CreateSubscription CreateUser CreateEvent CreateTrigger CreateFunctionStatement CreateSchema CreateDatabase CreateSequence CreateSynonym CreateMacro CreateTable CreateView CreatePolicy CreateIndex captureRest
Referenced by:

CreateFunctionStatement

FUNCTION PROCEDURE captureFunctionBody
         ::= ( 'FUNCTION' | 'PROCEDURE' ) captureFunctionBody
Referenced by:

SqlServerRoutine

CREATE OR ALTER ALTER FUNCTION captureSqlServerFunctionHeader SqlServerFunctionReturnType PROCEDURE captureSqlServerRoutineBody
         ::= ( 'CREATE' ( 'OR' 'ALTER' )? | 'ALTER' ) ( 'FUNCTION' captureSqlServerFunctionHeader SqlServerFunctionReturnType | 'PROCEDURE' ) captureSqlServerRoutineBody
Referenced by:

SqlServerFunctionReturnType

RETURNS UserVariable TABLE ( SqlServerReturnTableElement , ) ColDataType
         ::= 'RETURNS' ( UserVariable? 'TABLE' ( '(' SqlServerReturnTableElement ( ',' SqlServerReturnTableElement )* ')' )? | ColDataType )
Referenced by:

SqlServerReturnTableElement

CreateTableConstraint ColumnDefinition
         ::= CreateTableConstraint
           | ColumnDefinition

CreateSynonym

PUBLIC SYNONYM Synonym FOR RelObjectNames
         ::= 'PUBLIC'? 'SYNONYM' Synonym 'FOR' RelObjectNames
Referenced by:

Synonym

RelObjectNames
Referenced by:

TypeDdlName

RelObjectName SETTINGS . RelObjectNameExt SETTINGS
         ::= ( RelObjectName | 'SETTINGS' ) ( '.' ( RelObjectNameExt | 'SETTINGS' ) )*

TypeDdlKeyword

S_IDENTIFIER DATA_TYPE
         ::= S_IDENTIFIER
           | DATA_TYPE

ExtensionVersion

S_CHAR_LITERAL RelObjectName
         ::= S_CHAR_LITERAL
           | RelObjectName

TypeAttribute

RelObjectName ColDataType COLLATE TypeDdlName
         ::= RelObjectName ColDataType ( 'COLLATE' TypeDdlName )?

CreateType

TYPE TypeDdlName AS TypeDdlKeyword ( S_CHAR_LITERAL , RANGE ( RangeTypeOption , ( TypeAttribute , )
         ::= 'TYPE' TypeDdlName ( 'AS' ( TypeDdlKeyword '(' ( S_CHAR_LITERAL ( ',' S_CHAR_LITERAL )* )? | 'RANGE' '(' RangeTypeOption ( ',' RangeTypeOption )* | '(' ( TypeAttribute ( ',' TypeAttribute )* )? ) ')' )?
Referenced by:

RangeTypeOption

RelObjectName = ColDataType TypeDdlName
         ::= RelObjectName '=' ( ColDataType | TypeDdlName )
Referenced by:

TypeAlterBehavior

CASCADE RESTRICT
         ::= 'CASCADE'
           | 'RESTRICT'

TypeAttributeChange

ADD TypeDdlKeyword TypeAttribute DROP TypeDdlKeyword IF EXISTS RelObjectName ALTER TypeDdlKeyword RelObjectName SET DATA TYPE ColDataType COLLATE TypeDdlName TypeAlterBehavior
         ::= ( 'ADD' TypeDdlKeyword TypeAttribute | 'DROP' TypeDdlKeyword ( 'IF' 'EXISTS' )? RelObjectName | 'ALTER' TypeDdlKeyword RelObjectName ( 'SET' 'DATA' )? 'TYPE' ColDataType ( 'COLLATE' TypeDdlName )? ) TypeAlterBehavior?
Referenced by:

AlterType

TYPE TypeDdlName ADD VALUE IF NOT EXISTS S_CHAR_LITERAL BEFORE TypeDdlKeyword S_CHAR_LITERAL RENAME VALUE S_CHAR_LITERAL TO S_CHAR_LITERAL TypeDdlKeyword RelObjectName TO RelObjectName TypeAlterBehavior TO RelObjectName SET SCHEMA TypeDdlKeyword TO RelObjectName TypeAttributeChange ,
         ::= 'TYPE' TypeDdlName ( 'ADD' 'VALUE' ( 'IF' 'NOT' 'EXISTS' )? S_CHAR_LITERAL ( ( 'BEFORE' | TypeDdlKeyword ) S_CHAR_LITERAL )? | 'RENAME' ( 'VALUE' S_CHAR_LITERAL 'TO' S_CHAR_LITERAL | TypeDdlKeyword RelObjectName 'TO' RelObjectName TypeAlterBehavior? | 'TO' RelObjectName ) | ( 'SET' 'SCHEMA' | TypeDdlKeyword 'TO' ) RelObjectName | TypeAttributeChange ( ',' TypeAttributeChange )* )
Referenced by:

DomainConstraint

CONSTRAINT RelObjectName NOT NULL CHECK ( Expression )
         ::= ( 'CONSTRAINT' RelObjectName )? ( 'NOT'? 'NULL' | 'CHECK' '(' Expression ')' )
Referenced by:

CreateDomain

DOMAIN TypeDdlName AS ColDataType COLLATE TypeDdlName DEFAULT Expression DomainConstraint
         ::= 'DOMAIN' TypeDdlName 'AS'? ColDataType ( 'COLLATE' TypeDdlName )? ( 'DEFAULT' Expression )? DomainConstraint*
Referenced by:

AlterDomain

DOMAIN TypeDdlName SET DEFAULT Expression NOT NULL SCHEMA RelObjectName DROP DEFAULT NOT NULL CONSTRAINT IF EXISTS RelObjectName CASCADE RESTRICT ADD DomainConstraint NOT TypeDdlKeyword RENAME CONSTRAINT RelObjectName TypeDdlKeyword TO VALIDATE CONSTRAINT RelObjectName
         ::= 'DOMAIN' TypeDdlName ( 'SET' ( 'DEFAULT' Expression | 'NOT' 'NULL' | 'SCHEMA' RelObjectName ) | 'DROP' ( 'DEFAULT' | 'NOT' 'NULL' | 'CONSTRAINT' ( 'IF' 'EXISTS' )? RelObjectName ( 'CASCADE' | 'RESTRICT' )? ) | 'ADD' DomainConstraint ( 'NOT' TypeDdlKeyword )? | ( ( 'RENAME' ( 'CONSTRAINT' RelObjectName )? | TypeDdlKeyword ) 'TO' | 'VALIDATE' 'CONSTRAINT' ) RelObjectName )
Referenced by:

CreateExtensionRepository

TypeDdlKeyword TypeDdlKeyword IF NOT EXISTS RelObjectName WITH TypeDdlKeyword SimpleExpression
         ::= TypeDdlKeyword TypeDdlKeyword ( 'IF' 'NOT' 'EXISTS' )? RelObjectName ( 'WITH' TypeDdlKeyword SimpleExpression )?
Referenced by:

CreateExtension

TypeDdlKeyword IF NOT EXISTS RelObjectName WITH SCHEMA RelObjectName VERSION ExtensionVersion CASCADE
         ::= TypeDdlKeyword ( 'IF' 'NOT' 'EXISTS' )? RelObjectName 'WITH'? ( 'SCHEMA' RelObjectName | 'VERSION' ExtensionVersion | 'CASCADE' )*
Referenced by:

RoutineSignatureArgument

RoutineArgument
         ::= RoutineArgument
Referenced by:

RoutineArgument

IN S_IDENTIFIER RelObjectName ColDataType
         ::= ( 'IN' | S_IDENTIFIER )? RelObjectName? ColDataType

RoutineReference

TypeDdlName ( * RoutineSignatureArgument , ORDER BY RoutineSignatureArgument , )
         ::= TypeDdlName ( '(' ( '*' | ( RoutineSignatureArgument ( ',' RoutineSignatureArgument )* )? ( 'ORDER' 'BY' RoutineSignatureArgument ( ',' RoutineSignatureArgument )* )? ) ')' )?

ExtensionOperatorName

RelObjectName . + - * / % = OP_NOTEQUALSSTANDARD OP_NOTEQUALSBANG < > OP_MINORTHANEQUALS OP_GREATERTHANEQUALS && @> <@ ~ ~* !~ !~* ? ?| ?& ||
         ::= ( RelObjectName '.' )? ( '+' | '-' | '*' | '/' | '%' | '=' | OP_NOTEQUALSSTANDARD | OP_NOTEQUALSBANG | '<' | '>' | OP_MINORTHANEQUALS | OP_GREATERTHANEQUALS | '&&' | '@>' | '<@' | '~' | '~*' | '!~' | '!~*' | '?' | '?|' | '?&' | '||' )
Referenced by:

ExtensionOperatorType

NONE ColDataType
         ::= 'NONE'
           | ColDataType
Referenced by:

ExtensionObject

PROCEDURE RelObjectName RoutineReference CAST ( ColDataType AS ColDataType ) TypeDdlKeyword ExtensionOperatorName ( ExtensionOperatorType , ExtensionOperatorType ) FOR ColDataType TypeDdlKeyword RelObjectName FOREIGN TABLE DATA TypeDdlKeyword MATERIALIZED VIEW K_TEXT_LITERAL SEARCH RelObjectName EVENT TRIGGER TypeDdlKeyword TypeDdlKeyword RelObjectName TypeDdlName USING RelObjectName
         ::= ( 'PROCEDURE' | RelObjectName ) RoutineReference
           | 'CAST' '(' ColDataType 'AS' ColDataType ')'
           | ( 'FOREIGN' ( 'TABLE' | 'DATA' TypeDdlKeyword ) | 'MATERIALIZED' 'VIEW' | ( K_TEXT_LITERAL 'SEARCH' )? RelObjectName | 'EVENT' 'TRIGGER' | TypeDdlKeyword ( TypeDdlKeyword | RelObjectName ) ) TypeDdlName ( 'USING' RelObjectName )?
Referenced by:

AlterExtension

TypeDdlKeyword RelObjectName UPDATE TO ExtensionVersion SET SCHEMA RelObjectName ADD DROP ExtensionObject
         ::= TypeDdlKeyword RelObjectName ( 'UPDATE' ( 'TO' ExtensionVersion )? | 'SET' 'SCHEMA' RelObjectName | ( 'ADD' | 'DROP' ) ExtensionObject )
Referenced by:

ReplicationKeyword

S_IDENTIFIER
         ::= S_IDENTIFIER

ReplicationOptionValue

ON PrimaryExpression
         ::= 'ON'
           | PrimaryExpression

PublicationOption

RelObjectName = ReplicationOptionValue
         ::= RelObjectName ( '=' ReplicationOptionValue )?
Referenced by:

PublicationOptions

( PublicationOption , )
         ::= '(' PublicationOption ( ',' PublicationOption )* ')'

SubscriptionOption

RelObjectName = ReplicationOptionValue
         ::= RelObjectName ( '=' ReplicationOptionValue )?
Referenced by:

SubscriptionOptions

( SubscriptionOption , )
         ::= '(' SubscriptionOption ( ',' SubscriptionOption )* ')'

PublicationTable

ONLY Table * ( RelObjectName , ) WHERE ( Expression )
         ::= 'ONLY'? Table '*'? ( '(' RelObjectName ( ',' RelObjectName )* ')' )? ( 'WHERE' '(' Expression ')' )?
Referenced by:

PublicationTarget

TABLE PublicationTable , TABLES IN SCHEMA RelObjectName ,
         ::= 'TABLE' PublicationTable ( ',' PublicationTable )*
           | 'TABLES' 'IN' 'SCHEMA' RelObjectName ( ',' RelObjectName )*
Referenced by:

PublicationTargets

PublicationTarget ,
         ::= PublicationTarget ( ',' PublicationTarget )*

CreatePublication

ReplicationKeyword RelObjectName FOR ALL TABLES PublicationTargets WITH PublicationOptions
         ::= ReplicationKeyword RelObjectName ( 'FOR' ( 'ALL' 'TABLES' | PublicationTargets ) )? ( 'WITH' PublicationOptions )?
Referenced by:

AlterPublication

ReplicationKeyword RelObjectName ReplicationKeyword RENAME TO RelObjectName SET PublicationOptions ADD SET DROP PublicationTargets
         ::= ReplicationKeyword RelObjectName ( ( ReplicationKeyword | 'RENAME' ) 'TO' RelObjectName | 'SET' PublicationOptions | ( 'ADD' | 'SET' | 'DROP' ) PublicationTargets )
Referenced by:

SubscriptionPublications

RelObjectName ,
         ::= RelObjectName ( ',' RelObjectName )*

CreateSubscription

ReplicationKeyword RelObjectName ReplicationKeyword S_CHAR_LITERAL ReplicationKeyword SubscriptionPublications WITH SubscriptionOptions
Referenced by:

AlterSubscription

ReplicationKeyword RelObjectName ReplicationKeyword S_CHAR_LITERAL TO RelObjectName RENAME TO RelObjectName ENABLE DISABLE SKIP SET SubscriptionOptions REFRESH ReplicationKeyword SET ADD DROP ReplicationKeyword SubscriptionPublications WITH SubscriptionOptions
         ::= ReplicationKeyword RelObjectName ( ReplicationKeyword ( S_CHAR_LITERAL | 'TO' RelObjectName ) | 'RENAME' 'TO' RelObjectName | 'ENABLE' | 'DISABLE' | ( 'SKIP' | 'SET' ) SubscriptionOptions | ( 'REFRESH' ReplicationKeyword | ( 'SET' | 'ADD' | 'DROP' ) ReplicationKeyword SubscriptionPublications ) ( 'WITH' SubscriptionOptions )? )
Referenced by:

CreatePolicy

POLICY RelObjectName ON Table AS RelObjectName FOR ALL K_SELECT INSERT UPDATE DELETE TO RelObjectName , USING ( Expression ) WITH CHECK ( Expression )
         ::= 'POLICY' RelObjectName 'ON' Table ( 'AS' RelObjectName )? ( 'FOR' ( 'ALL' | K_SELECT | 'INSERT' | 'UPDATE' | 'DELETE' ) )? ( 'TO' RelObjectName ( ',' RelObjectName )* )? ( 'USING' '(' Expression ')' )? ( 'WITH' 'CHECK' '(' Expression ')' )?
Referenced by:

UnsupportedStatement

captureUnsupportedStatementDeclaration
Referenced by:

IdentifierChain

RelObjectNameExt .
         ::= RelObjectNameExt ( '.' RelObjectNameExt )*

IdentifierChain2

. RelObjectNameExt
         ::= ( '.' RelObjectNameExt )*
Referenced by:

CharacterPrimary

TranscodingFunction TrimFunction
         ::= TranscodingFunction
           | TrimFunction
Referenced by:

TranscodingFunction

TRY_CONVERT SAFE_CONVERT CONVERT ( ColDataType , Expression , S_LONG Expression USING IdentifierChain )
         ::= ( 'TRY_CONVERT' | 'SAFE_CONVERT' | 'CONVERT' ) '(' ( ColDataType ',' Expression ( ',' S_LONG )? | Expression 'USING' IdentifierChain ) ')'
Referenced by:

TrimFunction

TRIM ( LEADING TRAILING BOTH Expression , FROM Expression )
         ::= 'TRIM' '(' ( 'LEADING' | 'TRAILING' | 'BOTH' )? Expression? ( ( ',' | 'FROM' ) Expression )? ')'
Referenced by:

SnowflakeTimeTravelAt

AT ( K_DATETIMELITERAL OFFSET => Expression STATEMENT => S_CHAR_LITERAL S_IDENTIFIER S_QUOTED_IDENTIFIER STREAM => S_CHAR_LITERAL )
         ::= 'AT' '(' ( ( K_DATETIMELITERAL | 'OFFSET' ) '=>' Expression | 'STATEMENT' '=>' ( S_CHAR_LITERAL | S_IDENTIFIER | S_QUOTED_IDENTIFIER ) | 'STREAM' '=>' S_CHAR_LITERAL ) ')'

SnowflakeTimeTravelBefore

BEFORE ( STATEMENT => S_CHAR_LITERAL S_IDENTIFIER S_QUOTED_IDENTIFIER )
         ::= 'BEFORE' '(' 'STATEMENT' '=>' ( S_CHAR_LITERAL | S_IDENTIFIER | S_QUOTED_IDENTIFIER ) ')'

SnowflakeTimeTravelChange

CHANGES ( INFORMATION => DEFAULT APPEND_ONLY ) SnowflakeTimeTravelAt SnowflakeTimeTravelBefore END ( K_DATETIMELITERAL OFFSET => Expression STATEMENT => S_CHAR_LITERAL S_IDENTIFIER S_QUOTED_IDENTIFIER )
         ::= 'CHANGES' '(' 'INFORMATION' '=>' ( 'DEFAULT' | 'APPEND_ONLY' ) ')' ( SnowflakeTimeTravelAt | SnowflakeTimeTravelBefore ) ( 'END' '(' ( ( K_DATETIMELITERAL | 'OFFSET' ) '=>' Expression | 'STATEMENT' '=>' ( S_CHAR_LITERAL | S_IDENTIFIER | S_QUOTED_IDENTIFIER ) ) ')' )?
Referenced by:

DataBricksTemporalSpec

@ @V S_CHAR_LITERAL S_LONG FOR SYSTEM_TIMESTAMP K_DATETIMELITERAL AS OF Expression SYSTEM_VERSION VERSION AS OF S_LONG S_CHAR_LITERAL
         ::= ( '@' | '@V' ) ( S_CHAR_LITERAL | S_LONG )
           | 'FOR'? ( 'SYSTEM_TIMESTAMP' | K_DATETIMELITERAL ) 'AS' 'OF' Expression
           | ( 'SYSTEM_VERSION' | 'VERSION' ) 'AS' 'OF' ( S_LONG | S_CHAR_LITERAL )
Referenced by:

BigQueryHistoricalVersion

FOR SYSTEM_TIME AS OF Expression
         ::= 'FOR' 'SYSTEM_TIME' 'AS' 'OF' Expression
Referenced by:

TimeTravelBeforeAlias

SnowflakeTimeTravelAt SnowflakeTimeTravelBefore SnowflakeTimeTravelChange DataBricksTemporalSpec
         ::= SnowflakeTimeTravelAt
           | SnowflakeTimeTravelBefore
           | SnowflakeTimeTravelChange
           | DataBricksTemporalSpec
Referenced by:

TimeTravelAfterAlias

BigQueryHistoricalVersion
         ::= BigQueryHistoricalVersion
Referenced by:

WHITESPACE

[#x9] [#xD] [#xA]
         ::= [ #x9#xD#xA]

K_ISOLATION

UR RS RR CS
         ::= 'UR'
           | 'RS'
           | 'RR'
           | 'CS'

K_NEXTVAL

NEXTVAL FOR NEXT VALUE FOR
         ::= 'NEXTVAL' ( ' '+ 'FOR' )?
           | 'NEXT' ' '+ 'VALUE' ' '+ 'FOR'

K_TEXT_LITERAL

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

K_TIME_KEY_EXPR

CURRENT _ TIMESTAMP TIME DATE TIMEZONE ()
         ::= 'CURRENT' ( '_' | ' '+ ) ( 'TIMESTAMP' | 'TIME' | 'DATE' | 'TIMEZONE' ) '()'?

K_STRING_FUNCTION_NAME

SUBSTR SUBSTRING TRIM POSITION OVERLAY
         ::= 'SUBSTR'
           | 'SUBSTRING'
           | 'TRIM'
           | 'POSITION'
           | 'OVERLAY'

K_DATETIMELITERAL

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

K_DATE_LITERAL

YEAR MONTH DAY HOUR MINUTE SECOND
         ::= 'YEAR'
           | 'MONTH'
           | 'DAY'
           | 'HOUR'
           | 'MINUTE'
           | 'SECOND'

K_SELECT

SELECT SEL
K_SELECT ::= 'SELECT'
           | 'SEL'

K_SIMILAR_TO

SIMILAR TO
         ::= 'SIMILAR' ' '+ 'TO'
Referenced by:

ST_SEMICOLON

; [#xA] / [#xA] go [#xA]
         ::= ';'
           | #xA ( [/#xA] | 'go' ) #xA

OP_GREATERTHANEQUALS

> WHITESPACE =
         ::= '>' WHITESPACE* '='

OP_MINORTHANEQUALS

< WHITESPACE =
         ::= '<' WHITESPACE* '='

OP_NOTEQUALSSTANDARD

< WHITESPACE >
         ::= '<' WHITESPACE* '>'

OP_NOTEQUALSBANG

! WHITESPACE =
         ::= '!' WHITESPACE* '='

DT_ZONE

K_DATETIMELITERAL WHITESPACE ( S_LONG ) WHITESPACE WITH WITHOUT WHITESPACE LOCAL WHITESPACE TIME WHITESPACE ZONE
DT_ZONE  ::= K_DATETIMELITERAL WHITESPACE* ( '(' S_LONG ')' )? WHITESPACE* ( 'WITH' | 'WITHOUT' ) WHITESPACE+ ( 'LOCAL' WHITESPACE+ )? 'TIME' WHITESPACE+ 'ZONE'

DATA_TYPE

BISTRING TYPE_BLOB BOOL ENUM TYPE_REAL TYPE_DOUBLE UUID MAP TYPE_TINYINT TYPE_SMALLINT TYPE_INTEGER TYPE_BIGINT HUGEINT UTINYINT USMALLINT UINTEGER UBIGINT UHUGEINT TYPE_DECIMAL TYPE_VARCHAR TIMETZ TYPE_TIMESTAMP
         ::= 'BISTRING'
           | TYPE_BLOB
           | 'BOOL'
           | 'ENUM'
           | TYPE_REAL
           | TYPE_DOUBLE
           | 'UUID'
           | 'MAP'
           | TYPE_TINYINT
           | TYPE_SMALLINT
           | TYPE_INTEGER
           | TYPE_BIGINT
           | 'HUGEINT'
           | 'UTINYINT'
           | 'USMALLINT'
           | 'UINTEGER'
           | 'UBIGINT'
           | 'UHUGEINT'
           | TYPE_DECIMAL
           | TYPE_VARCHAR
           | 'TIMETZ'
           | TYPE_TIMESTAMP

TYPE_BLOB

BLOB BYTEA VARBINARY
         ::= 'BLOB'
           | 'BYTEA'
           | 'VARBINARY'
Referenced by:

TYPE_DECIMAL

DECIMAL NUMBER NUMERIC
         ::= 'DECIMAL'
           | 'NUMBER'
           | 'NUMERIC'
Referenced by:

TYPE_TINYINT

TINYINT INT1
         ::= 'TINYINT'
           | 'INT1'
Referenced by:

TYPE_SMALLINT

SMALLINT INT2 SHORT
         ::= 'SMALLINT'
           | 'INT2'
           | 'SHORT'
Referenced by:

TYPE_INTEGER

INTEGER INT INT4
         ::= 'INTEGER'
           | 'INT'
           | 'INT4'
Referenced by:

TYPE_BIGINT

BIGINT INT8 LONG
         ::= 'BIGINT'
           | 'INT8'
           | 'LONG'
Referenced by:

TYPE_REAL

REAL FLOAT4 FLOAT
         ::= 'REAL'
           | 'FLOAT4'
           | 'FLOAT'
Referenced by:

TYPE_DOUBLE

DOUBLE PRECISION FLOAT8 FLOAT64
         ::= 'DOUBLE'
           | 'PRECISION'
           | 'FLOAT8'
           | 'FLOAT64'
Referenced by:

TYPE_VARCHAR

NVARCHAR VARCHAR NCHAR BPCHAR TEXT STRING VARYING
         ::= 'NVARCHAR'
           | 'VARCHAR'
           | 'NCHAR'
           | 'BPCHAR'
           | 'TEXT'
           | 'STRING'
           | 'VARYING'
Referenced by:

TYPE_TIMESTAMP

TIMESTAMP_NS TIMESTAMP_MS TIMESTAMP_S
         ::= 'TIMESTAMP_NS'
           | 'TIMESTAMP_MS'
           | 'TIMESTAMP_S'
Referenced by:

S_DOUBLE

S_LONG . S_LONG e E + [#x2D] S_LONG S_LONG . e E + [#x2D] S_LONG e E + [#x2D] S_LONG
S_DOUBLE ::= S_LONG? '.' S_LONG ( [eE] [+#x2D]? S_LONG )?
           | S_LONG ( '.' ( [eE] [+#x2D]? S_LONG )? | [eE] [+#x2D]? S_LONG )

S_LONG

DIGIT
S_LONG   ::= DIGIT+

DIGIT

[0-9]
DIGIT    ::= [0-9]
Referenced by:

S_HEX

X ' HEX_VALUE ' 0x HEX_DIGIT
S_HEX    ::= 'X' ( "'" HEX_VALUE* "'" ' '* )+
           | '0x' HEX_DIGIT+

HEX_VALUE

[0-9] [A-F]
         ::= [0-9A-F ]
Referenced by:

HEX_DIGIT

[0-9] [A-F]
         ::= [0-9A-F]
Referenced by:

LINE_COMMENT

-- // [^#xD#xA]
         ::= ( '--' | '//' ) [^#xD#xA]*
Not referenced by any.

HASH_LINE_COMMENT

[#x1] [^#xD#xA]
         ::= #x1 [^#xD#xA]*
Not referenced by any.

S_PARAMETER

$ [0-9]
         ::= '$' [0-9]+
Referenced by:

S_IDENTIFIER

LETTER PART_LETTER $ PART_LETTER_NO_DOLLAR PART_LETTER
         ::= LETTER PART_LETTER*
           | '$' ( PART_LETTER_NO_DOLLAR PART_LETTER* )?

LETTER

UnicodeIdentifierStart Nd _ [#x23]
           | Nd
           | [_#x23]
Referenced by:

PART_LETTER_NO_DOLLAR

UnicodeIdentifierStart UnicodeIdentifierExtend _ @ [#x23]
         ::= UnicodeIdentifierStart
           | UnicodeIdentifierExtend
           | [_@#x23]
Referenced by:

PART_LETTER

UnicodeIdentifierStart UnicodeIdentifierExtend $ _ @ [#x23]
         ::= UnicodeIdentifierStart
           | UnicodeIdentifierExtend
           | [$_@#x23]
Referenced by:

S_AT_IDENTIFIER

@ @ S_IDENTIFIER
         ::= '@' '@'? S_IDENTIFIER

UnicodeIdentifierStart

[#xB7] Ll Lm Lo Lt Lu Nl CJK
         ::= #xB7
           | Ll
           | Lm
           | Lo
           | Lt
           | Lu
           | Nl
           | CJK

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]
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

[#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]
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

[#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]
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

[#x1C5] [#x1C8] [#x1CB] [#x1F2] [#x1F88-#x1F8F] [#x1F98-#x1F9F] [#x1FA8-#x1FAF] [#x1FBC] [#x1FCC] [#x1FFC]
Lt       ::= [#x1C5#x1C8#x1CB#x1F2#x1F88-#x1F8F#x1F98-#x1F9F#x1FA8-#x1FAF#x1FBC#x1FCC#x1FFC]
Referenced by:

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]
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

[#x16EE-#x16F0] [#x2160-#x2182] [#x2185-#x2188] [#x3007] [#x3021-#x3029] [#x3038-#x303A] [#xA6E6-#xA6EF]
Nl       ::= [#x16EE-#x16F0#x2160-#x2182#x2185-#x2188#x3007#x3021-#x3029#x3038-#x303A#xA6E6-#xA6EF]
Referenced by:

UnicodeIdentifierExtend

Mn Mc Nd Pc Cf CJK
         ::= Mn
           | Mc
           | Nd
           | Pc
           | Cf
           | CJK

Cf

[#xAD] [#x600-#x605] [#x61C] [#x6DD] [#x70F] [#x890-#x891] [#x8E2] [#x180E] [#x200B-#x200F] [#x202A-#x202E] [#x2060-#x2064] [#x2066-#x206F] [#xFEFF] [#xFFF9-#xFFFB]
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

[#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]
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

[#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]
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

[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]
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]

Pc

[#x203F-#x2040] [#x2054] [#xFE33-#xFE34] [#xFE4D-#xFE4F] [#xFF3F]
Pc       ::= [#x203F-#x2040#x2054#xFE33-#xFE34#xFE4D-#xFE4F#xFF3F]
Referenced by:

CJK

[#xAC00-#xD7A3] [#x4E00-#x9FFF]
CJK      ::= [#xAC00-#xD7A3#x4E00-#x9FFF]

ESC

\ n t b r f \ "
ESC      ::= '\' [ntbrf\"]
Referenced by:

S_CHAR_LITERAL

U E N R B RB _utf8 q'{ . }' ' ESC \' [^'\] '' [^'] ' q'( . )' q'[ . ]' q'' . ''
         ::= ( [UENRB] | 'RB' | '_utf8' )? ( "'" ( ( ESC | "\'" | [^'\] )* | ( "''" | [^'] )+ ) "'" | "q'{" .* "}'" | "q'(" .* ")'" | "q'[" .* "]'" | "q''" .* "''" )

S_QUOTED_IDENTIFIER

" "" [^"#xA#xD] " ` `` [^`#xA#xD] ` [ [^#x5D#xA#xD] ]
         ::= '"' ( '""' | [^"#xA#xD] )* '"'
           | '`' ( '``' | [^`#xA#xD] )* '`'
           | '[' [^#x5D#xA#xD]* ']'

EOF

$
EOF      ::= $
Referenced by: