Supported SQL Syntax#

The EBNF and Railroad Diagrams for the supported SQL Syntax.

CompilationUnit#

direct_SQL_statement EOF
         ::= direct_SQL_statement* EOF
Not referenced by any.

non_reserved_word#

A ABSOLUTE ACTION ADA ADD ADMIN AFTER ALWAYS ASC ASSERTION ASSIGNMENT ATTRIBUTE ATTRIBUTES BEFORE BERNOULLI BREADTH C CASCADE CATALOG CATALOG_NAME CHAIN CHARACTER_SET_CATALOG CHARACTER_SET_NAME CHARACTER_SET_SCHEMA CHARACTERISTICS CHARACTERS CLASS_ORIGIN COBOL COLLATION COLLATION_CATALOG COLLATION_NAME COLLATION_SCHEMA COLUMN_NAME COMMAND_FUNCTION COMMAND_FUNCTION_CODE COMMITTED CONDITION_NUMBER CONNECTION CONNECTION_NAME CONSTRAINT_CATALOG CONSTRAINT_NAME CONSTRAINT_SCHEMA CONSTRAINTS CONSTRUCTOR CONTAINS CONTINUE CURSOR_NAME DATA DATETIME_INTERVAL_CODE DATETIME_INTERVAL_PRECISION DEFAULTS DEFERRABLE DEFERRED DEFINED DEFINER DEGREE DEPTH DERIVED DESC DESCRIPTOR DIAGNOSTICS DISPATCH DOMAIN DYNAMIC_FUNCTION DYNAMIC_FUNCTION_CODE ENFORCED EQUALS EXCLUDE EXCLUDING EXPRESSION FINAL FIRST FLAG FOLLOWING FORTRAN FOUND G GENERAL GENERATED GO GOTO GRANTED HIERARCHY IF IGNORE IMMEDIATE IMPLEMENTATION INCLUDING INCREMENT INITIALLY INPUT INSTANCE INSTANTIABLE INSTEAD INVOKER ISOLATION K KEY KEY_MEMBER KEY_TYPE LAST LENGTH LEVEL LOCATOR M MAP MATCHED MAXVALUE MESSAGE_LENGTH MESSAGE_OCTET_LENGTH MESSAGE_TEXT MINVALUE MORE MUMPS NAMES NESTING NEXT NFC NFD NFKC NFKD NORMALIZED NULLABLE NULLS NUMBER OBJECT OCTETS OPTION OPTIONS ORDERING ORDINALITY OTHERS OUTPUT OVERRIDING P PAD PARAMETER_MODE PARAMETER_NAME PARAMETER_ORDINAL_POSITION PARAMETER_SPECIFIC_CATALOG PARAMETER_SPECIFIC_NAME PARAMETER_SPECIFIC_SCHEMA PARTIAL PASCAL PATH PLACING PLI PRECEDING PRESERVE PRIOR PRIVILEGES PROPERTIES PUBLIC READ RELATIVE REPEATABLE RESPECT RESTART RESTRICT RETURNED_CARDINALITY RETURNED_LENGTH RETURNED_OCTET_LENGTH RETURNED_SQLSTATE ROLE ROUTINE ROUTINE_CATALOG ROUTINE_NAME ROUTINE_SCHEMA ROW_COUNT SCALE SCHEMA SCHEMA_NAME SCOPE_CATALOG SCOPE_NAME SCOPE_SCHEMA SECTION SECURITY SELF SEQUENCE SERIALIZABLE SERVER_NAME SESSION SETS SIMPLE SIZE SOURCE SPACE SPECIFIC_NAME STATE STATEMENT STRUCTURE STYLE SUBCLASS_ORIGIN T TABLE_NAME TEMPORARY TIES TOP_LEVEL_COUNT TRANSACTION TRANSACTION_ACTIVE TRANSACTIONS_COMMITTED TRANSACTIONS_ROLLED_BACK TRANSFORM TRANSFORMS TRIGGER_CATALOG TRIGGER_NAME TRIGGER_SCHEMA TRY_CAST TYPE UNBOUNDED UNCOMMITTED UNDER UNNAMED USAGE USER_DEFINED_TYPE_CATALOG USER_DEFINED_TYPE_CODE USER_DEFINED_TYPE_NAME USER_DEFINED_TYPE_SCHEMA VIEW WORK WRITE ZONE ABS ALL ARRAY_AGG AT AVG BLOB BOTH CARDINALITY CLOSE COLUMN CONDITION COUNT CUBE CURRENT CURRENT_CATALOG CURRENT_DATE CURRENT_DEFAULT_TRANSFORM_GROUP CURRENT_PATH CURRENT_ROLE CURRENT_SCHEMA CURRENT_TIME CURRENT_TIMESTAMP CURRENT_TRANSFORM_GROUP_FOR_TYPE CURRENT_USER CURSOR CYCLE DATE DAY DAYS DEC DYNAMIC EXP EXTERNAL FILTER FLOOR FREE FUNCTION GLOBAL HOLD HOUR HOURS IDENTITY INDICATOR INTERSECTION INTERVAL LANGUAGE LEAD LOCAL LOWER MAX MERGE METHOD MIN MINUTE MINUTES MOD MODULE MONTH MONTHS NAME NEW NONE OCCURRENCE OFFSET OLD OPEN PARTITION POSITION POWER PRECISION RANGE RANK READS REF REFERENCES RELEASE RESULT RETURNS ROLLUP ROW ROW_NUMBER ROWS SAVEPOINT SCOPE SEARCH SECOND SECONDS SESSION_USER SQL START STATIC SUM SYSTEM TIME TIMESTAMP TIMEZONE_HOUR TIMEZONE_MINUTE TRIGGER TRUNCATE UNKNOWN UPDATE UPPER USER VALUE VALUES VERSION VERSIONS WINDOW YEAR YEARS COMMENT DEFAULT USE LIMIT NUMERIC_HISTOGRAM REPLACE HISTOGRAM APPROEX_PERCENTILE MAP_AGG SET_AGG MAP_UNION "COUNT"
         ::= 'A'
           | 'ABSOLUTE'
           | 'ACTION'
           | 'ADA'
           | 'ADD'
           | 'ADMIN'
           | 'AFTER'
           | 'ALWAYS'
           | 'ASC'
           | 'ASSERTION'
           | 'ASSIGNMENT'
           | 'ATTRIBUTE'
           | 'ATTRIBUTES'
           | 'BEFORE'
           | 'BERNOULLI'
           | 'BREADTH'
           | 'C'
           | 'CASCADE'
           | 'CATALOG'
           | 'CATALOG_NAME'
           | 'CHAIN'
           | 'CHARACTER_SET_CATALOG'
           | 'CHARACTER_SET_NAME'
           | 'CHARACTER_SET_SCHEMA'
           | 'CHARACTERISTICS'
           | 'CHARACTERS'
           | 'CLASS_ORIGIN'
           | 'COBOL'
           | 'COLLATION'
           | 'COLLATION_CATALOG'
           | 'COLLATION_NAME'
           | 'COLLATION_SCHEMA'
           | 'COLUMN_NAME'
           | 'COMMAND_FUNCTION'
           | 'COMMAND_FUNCTION_CODE'
           | 'COMMITTED'
           | 'CONDITION_NUMBER'
           | 'CONNECTION'
           | 'CONNECTION_NAME'
           | 'CONSTRAINT_CATALOG'
           | 'CONSTRAINT_NAME'
           | 'CONSTRAINT_SCHEMA'
           | 'CONSTRAINTS'
           | 'CONSTRUCTOR'
           | 'CONTAINS'
           | 'CONTINUE'
           | 'CURSOR_NAME'
           | 'DATA'
           | 'DATETIME_INTERVAL_CODE'
           | 'DATETIME_INTERVAL_PRECISION'
           | 'DEFAULTS'
           | 'DEFERRABLE'
           | 'DEFERRED'
           | 'DEFINED'
           | 'DEFINER'
           | 'DEGREE'
           | 'DEPTH'
           | 'DERIVED'
           | 'DESC'
           | 'DESCRIPTOR'
           | 'DIAGNOSTICS'
           | 'DISPATCH'
           | 'DOMAIN'
           | 'DYNAMIC_FUNCTION'
           | 'DYNAMIC_FUNCTION_CODE'
           | 'ENFORCED'
           | 'EQUALS'
           | 'EXCLUDE'
           | 'EXCLUDING'
           | 'EXPRESSION'
           | 'FINAL'
           | 'FIRST'
           | 'FLAG'
           | 'FOLLOWING'
           | 'FORTRAN'
           | 'FOUND'
           | 'G'
           | 'GENERAL'
           | 'GENERATED'
           | 'GO'
           | 'GOTO'
           | 'GRANTED'
           | 'HIERARCHY'
           | 'IF'
           | 'IGNORE'
           | 'IMMEDIATE'
           | 'IMPLEMENTATION'
           | 'INCLUDING'
           | 'INCREMENT'
           | 'INITIALLY'
           | 'INPUT'
           | 'INSTANCE'
           | 'INSTANTIABLE'
           | 'INSTEAD'
           | 'INVOKER'
           | 'ISOLATION'
           | 'K'
           | 'KEY'
           | 'KEY_MEMBER'
           | 'KEY_TYPE'
           | 'LAST'
           | 'LENGTH'
           | 'LEVEL'
           | 'LOCATOR'
           | 'M'
           | 'MAP'
           | 'MATCHED'
           | 'MAXVALUE'
           | 'MESSAGE_LENGTH'
           | 'MESSAGE_OCTET_LENGTH'
           | 'MESSAGE_TEXT'
           | 'MINVALUE'
           | 'MORE'
           | 'MUMPS'
           | 'NAMES'
           | 'NESTING'
           | 'NEXT'
           | 'NFC'
           | 'NFD'
           | 'NFKC'
           | 'NFKD'
           | 'NORMALIZED'
           | 'NULLABLE'
           | 'NULLS'
           | 'NUMBER'
           | 'OBJECT'
           | 'OCTETS'
           | 'OPTION'
           | 'OPTIONS'
           | 'ORDERING'
           | 'ORDINALITY'
           | 'OTHERS'
           | 'OUTPUT'
           | 'OVERRIDING'
           | 'P'
           | 'PAD'
           | 'PARAMETER_MODE'
           | 'PARAMETER_NAME'
           | 'PARAMETER_ORDINAL_POSITION'
           | 'PARAMETER_SPECIFIC_CATALOG'
           | 'PARAMETER_SPECIFIC_NAME'
           | 'PARAMETER_SPECIFIC_SCHEMA'
           | 'PARTIAL'
           | 'PASCAL'
           | 'PATH'
           | 'PLACING'
           | 'PLI'
           | 'PRECEDING'
           | 'PRESERVE'
           | 'PRIOR'
           | 'PRIVILEGES'
           | 'PROPERTIES'
           | 'PUBLIC'
           | 'READ'
           | 'RELATIVE'
           | 'REPEATABLE'
           | 'RESPECT'
           | 'RESTART'
           | 'RESTRICT'
           | 'RETURNED_CARDINALITY'
           | 'RETURNED_LENGTH'
           | 'RETURNED_OCTET_LENGTH'
           | 'RETURNED_SQLSTATE'
           | 'ROLE'
           | 'ROUTINE'
           | 'ROUTINE_CATALOG'
           | 'ROUTINE_NAME'
           | 'ROUTINE_SCHEMA'
           | 'ROW_COUNT'
           | 'SCALE'
           | 'SCHEMA'
           | 'SCHEMA_NAME'
           | 'SCOPE_CATALOG'
           | 'SCOPE_NAME'
           | 'SCOPE_SCHEMA'
           | 'SECTION'
           | 'SECURITY'
           | 'SELF'
           | 'SEQUENCE'
           | 'SERIALIZABLE'
           | 'SERVER_NAME'
           | 'SESSION'
           | 'SETS'
           | 'SIMPLE'
           | 'SIZE'
           | 'SOURCE'
           | 'SPACE'
           | 'SPECIFIC_NAME'
           | 'STATE'
           | 'STATEMENT'
           | 'STRUCTURE'
           | 'STYLE'
           | 'SUBCLASS_ORIGIN'
           | 'T'
           | 'TABLE_NAME'
           | 'TEMPORARY'
           | 'TIES'
           | 'TOP_LEVEL_COUNT'
           | 'TRANSACTION'
           | 'TRANSACTION_ACTIVE'
           | 'TRANSACTIONS_COMMITTED'
           | 'TRANSACTIONS_ROLLED_BACK'
           | 'TRANSFORM'
           | 'TRANSFORMS'
           | 'TRIGGER_CATALOG'
           | 'TRIGGER_NAME'
           | 'TRIGGER_SCHEMA'
           | 'TRY_CAST'
           | 'TYPE'
           | 'UNBOUNDED'
           | 'UNCOMMITTED'
           | 'UNDER'
           | 'UNNAMED'
           | 'USAGE'
           | 'USER_DEFINED_TYPE_CATALOG'
           | 'USER_DEFINED_TYPE_CODE'
           | 'USER_DEFINED_TYPE_NAME'
           | 'USER_DEFINED_TYPE_SCHEMA'
           | 'VIEW'
           | 'WORK'
           | 'WRITE'
           | 'ZONE'
           | 'ABS'
           | 'ALL'
           | 'ARRAY_AGG'
           | 'AT'
           | 'AVG'
           | 'BLOB'
           | 'BOTH'
           | 'CARDINALITY'
           | 'CLOSE'
           | 'COLUMN'
           | 'CONDITION'
           | 'COUNT'
           | 'CUBE'
           | 'CURRENT'
           | 'CURRENT_CATALOG'
           | 'CURRENT_DATE'
           | 'CURRENT_DEFAULT_TRANSFORM_GROUP'
           | 'CURRENT_PATH'
           | 'CURRENT_ROLE'
           | 'CURRENT_SCHEMA'
           | 'CURRENT_TIME'
           | 'CURRENT_TIMESTAMP'
           | 'CURRENT_TRANSFORM_GROUP_FOR_TYPE'
           | 'CURRENT_USER'
           | 'CURSOR'
           | 'CYCLE'
           | 'DATE'
           | 'DAY'
           | 'DAYS'
           | 'DEC'
           | 'DYNAMIC'
           | 'EXP'
           | 'EXTERNAL'
           | 'FILTER'
           | 'FLOOR'
           | 'FREE'
           | 'FUNCTION'
           | 'GLOBAL'
           | 'HOLD'
           | 'HOUR'
           | 'HOURS'
           | 'IDENTITY'
           | 'INDICATOR'
           | 'INTERSECTION'
           | 'INTERVAL'
           | 'LANGUAGE'
           | 'LEAD'
           | 'LOCAL'
           | 'LOWER'
           | 'MAX'
           | 'MERGE'
           | 'METHOD'
           | 'MIN'
           | 'MINUTE'
           | 'MINUTES'
           | 'MOD'
           | 'MODULE'
           | 'MONTH'
           | 'MONTHS'
           | 'NAME'
           | 'NEW'
           | 'NONE'
           | 'OCCURRENCE'
           | 'OFFSET'
           | 'OLD'
           | 'OPEN'
           | 'PARTITION'
           | 'POSITION'
           | 'POWER'
           | 'PRECISION'
           | 'RANGE'
           | 'RANK'
           | 'READS'
           | 'REF'
           | 'REFERENCES'
           | 'RELEASE'
           | 'RESULT'
           | 'RETURNS'
           | 'ROLLUP'
           | 'ROW'
           | 'ROW_NUMBER'
           | 'ROWS'
           | 'SAVEPOINT'
           | 'SCOPE'
           | 'SEARCH'
           | 'SECOND'
           | 'SECONDS'
           | 'SESSION_USER'
           | 'SQL'
           | 'START'
           | 'STATIC'
           | 'SUM'
           | 'SYSTEM'
           | 'TIME'
           | 'TIMESTAMP'
           | 'TIMEZONE_HOUR'
           | 'TIMEZONE_MINUTE'
           | 'TRIGGER'
           | 'TRUNCATE'
           | 'UNKNOWN'
           | 'UPDATE'
           | 'UPPER'
           | 'USER'
           | 'VALUE'
           | 'VALUES'
           | 'VERSION'
           | 'VERSIONS'
           | 'WINDOW'
           | 'YEAR'
           | 'YEARS'
           | 'COMMENT'
           | 'DEFAULT'
           | 'USE'
           | 'LIMIT'
           | 'NUMERIC_HISTOGRAM'
           | 'REPLACE'
           | 'HISTOGRAM'
           | 'APPROEX_PERCENTILE'
           | 'MAP_AGG'
           | 'SET_AGG'
           | 'MAP_UNION'
           | '"COUNT"'
Referenced by:

left_bracket_or_trigraph#

[ ??(
         ::= '['
           | '??('

right_bracket_or_trigraph#

] ??)
         ::= ']'
           | '??)'

literal#

signed_numeric_literal general_literal
           | general_literal

signed_numeric_literal#

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

unsigned_literal#

unsigned_numeric_literal general_literal
         ::= unsigned_numeric_literal
           | general_literal

unsigned_numeric_literal#

exact_numeric_literal approximate_numeric_literal
         ::= exact_numeric_literal
           | approximate_numeric_literal

exact_numeric_literal#

unsigned_integer float_literal
         ::= unsigned_integer
           | float_literal
Referenced by:

general_literal#

character_string_literal national_character_string_literal Unicode_character_string_literal binary_string_literal datetime_literal interval_literal boolean_literal
         ::= character_string_literal
           | national_character_string_literal
           | Unicode_character_string_literal
           | binary_string_literal
           | datetime_literal
           | interval_literal
           | boolean_literal
Referenced by:

character_string_literal#

_ character_set_specification quoted_string
         ::= ( '_' character_set_specification )? quoted_string+

Unicode_character_string_literal#

_ character_set_specification unicode_literal
         ::= ( '_' character_set_specification )? unicode_literal
Referenced by:

datetime_literal#

date_literal time_literal timestamp_literal
         ::= date_literal
           | time_literal
           | timestamp_literal
Referenced by:

date_literal#

DATE character_string_literal
         ::= 'DATE' character_string_literal
Referenced by:

time_literal#

TIME character_string_literal
         ::= 'TIME' character_string_literal
Referenced by:

timestamp_literal#

TIMESTAMP character_string_literal
         ::= 'TIMESTAMP' character_string_literal
Referenced by:

interval_literal#

INTERVAL + - character_string_literal interval_qualifier
         ::= 'INTERVAL' ( '+' | '-' )? character_string_literal interval_qualifier
Referenced by:

boolean_literal#

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

identifier#

actual_identifier _ identifier_suffix_chain
         ::= ( actual_identifier | '_' ) identifier_suffix_chain?

actual_identifier#

regular_identifier delimited_identifier Unicode_delimited_identifier non_reserved_word
         ::= regular_identifier
           | delimited_identifier
           | Unicode_delimited_identifier
           | non_reserved_word

table_name#

identifier_chain
         ::= identifier_chain

schema_name#

identifier_chain
         ::= identifier_chain

catalog_name#

identifier
         ::= identifier
Not referenced by any.

schema_qualified_name#

identifier_chain
         ::= identifier_chain

local_or_schema_qualified_name#

identifier_chain
         ::= identifier_chain
Not referenced by any.

local_or_schema_qualifier#

MODULE schema_name
         ::= 'MODULE'
           | schema_name
Not referenced by any.

cursor_name#

identifier_chain
         ::= identifier_chain

host_parameter_name#

: identifier
         ::= ':' identifier

external_routine_name#

identifier character_string_literal
         ::= identifier
           | character_string_literal

character_set_name#

schema_name . SQL_language_identifier
         ::= ( schema_name '.' )? SQL_language_identifier

schema_resolved_user_defined_type_name#

user_defined_type_name
         ::= user_defined_type_name

user_defined_type_name#

identifier_chain
         ::= identifier_chain

SQL_identifier#

identifier extended_identifier
         ::= identifier
           | extended_identifier

extended_identifier#

scope_option simple_value_specification

dynamic_cursor_name#

cursor_name extended_cursor_name
         ::= cursor_name
           | extended_cursor_name

extended_cursor_name#

scope_option simple_value_specification

descriptor_name#

identifier extended_descriptor_name
         ::= identifier
           | extended_descriptor_name

extended_descriptor_name#

scope_option simple_value_specification
Referenced by:

scope_option#

GLOBAL LOCAL
         ::= 'GLOBAL'
           | 'LOCAL'

data_type#

predefined_type row_type reference_type presto_generic_type path_resolved_user_defined_type_name collection_type

predefined_type#

character_string_type CHARACTER SET character_set_specification national_character_string_type collate_clause binary_string_type numeric_type BOOLEAN datetime_type interval_type
           | binary_string_type
           | numeric_type
           | 'BOOLEAN'
           | datetime_type
           | interval_type

character_string_type#

CHARACTER CHAR VARYING ( character_length ) VARCHAR ( character_length ) character_large_object_type
         ::= ( 'CHARACTER' | 'CHAR' ) ( 'VARYING'? '(' character_length ')' )?
           | 'VARCHAR' ( '(' character_length ')' )?
           | character_large_object_type
Referenced by:

character_large_object_type#

CHARACTER CHAR LARGE OBJECT CLOB ( character_large_object_length )
         ::= ( ( 'CHARACTER' | 'CHAR' ) 'LARGE' 'OBJECT' | 'CLOB' ) ( '(' character_large_object_length ')' )?
Referenced by:

national_character_string_type#

NATIONAL CHARACTER CHAR NCHAR VARYING ( character_length ) national_character_large_object_type
         ::= ( 'NATIONAL' ( 'CHARACTER' | 'CHAR' ) | 'NCHAR' ) ( 'VARYING'? '(' character_length ')' )?
           | national_character_large_object_type
Referenced by:

national_character_large_object_type#

NATIONAL CHARACTER NCHAR LARGE OBJECT NCLOB ( character_large_object_length )
         ::= ( ( 'NATIONAL' 'CHARACTER' | 'NCHAR' ) 'LARGE' 'OBJECT' | 'NCLOB' ) ( '(' character_large_object_length ')' )?

binary_string_type#

BINARY VARYING ( unsigned_integer ) VARBINARY ( unsigned_integer ) binary_large_object_string_type
         ::= 'BINARY' ( 'VARYING'? '(' unsigned_integer ')' )?
           | 'VARBINARY' ( '(' unsigned_integer ')' )?
           | binary_large_object_string_type
Referenced by:

binary_large_object_string_type#

BINARY LARGE OBJECT BLOB ( large_object_length )
         ::= ( 'BINARY' 'LARGE' 'OBJECT' | 'BLOB' ) ( '(' large_object_length ')' )?
Referenced by:

numeric_type#

exact_numeric_type approximate_numeric_type
         ::= exact_numeric_type
           | approximate_numeric_type
Referenced by:

exact_numeric_type#

NUMERIC DECIMAL DEC ( unsigned_integer , unsigned_integer ) SMALLINT INTEGER INT BIGINT
         ::= ( 'NUMERIC' | 'DECIMAL' | 'DEC' ) ( '(' unsigned_integer ( ',' unsigned_integer )? ')' )?
           | 'SMALLINT'
           | 'INTEGER'
           | 'INT'
           | 'BIGINT'
Referenced by:

approximate_numeric_type#

FLOAT ( unsigned_integer ) REAL DOUBLE PRECISION
         ::= 'FLOAT' ( '(' unsigned_integer ')' )?
           | 'REAL'
           | 'DOUBLE' 'PRECISION'?
Referenced by:

character_length#

unsigned_integer char_length_units
         ::= unsigned_integer char_length_units?

large_object_length#

unsigned_integer multiplier large_object_length_token
         ::= unsigned_integer multiplier?
           | large_object_length_token

character_large_object_length#

large_object_length char_length_units
         ::= large_object_length char_length_units?

char_length_units#

CHARACTERS OCTETS
         ::= 'CHARACTERS'
           | 'OCTETS'

datetime_type#

DATE TIME TIMESTAMP ( unsigned_integer ) with_or_without_time_zone
         ::= 'DATE'
           | ( 'TIME' | 'TIMESTAMP' ) ( '(' unsigned_integer ')' )? with_or_without_time_zone?
Referenced by:

with_or_without_time_zone#

WITH WITHOUT TIME ZONE
         ::= ( 'WITH' | 'WITHOUT' ) 'TIME' 'ZONE'
Referenced by:

interval_type#

INTERVAL interval_qualifier
         ::= 'INTERVAL' interval_qualifier
Referenced by:

row_type#

ROW row_type_body
Referenced by:

row_type_body#

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

reference_type#

REF ( referenced_type ) scope_clause
         ::= 'REF' '(' referenced_type ')' scope_clause?
Referenced by:

scope_clause#

SCOPE table_name
         ::= 'SCOPE' table_name

referenced_type#

path_resolved_user_defined_type_name
Referenced by:

path_resolved_user_defined_type_name#

user_defined_type_name
         ::= user_defined_type_name

collection_type#

array_type MULTISET
         ::= array_type
           | 'MULTISET'
Referenced by:

array_type#

ARRAY left_bracket_or_trigraph unsigned_integer right_bracket_or_trigraph
Referenced by:

field_definition#

identifier data_type
         ::= identifier data_type
Referenced by:

value_expression_primary#

parenthesized_value_expression nonparenthesized_value_expression_primary
         ::= parenthesized_value_expression

parenthesized_value_expression#

( value_expression , ) primary_suffix
         ::= '(' value_expression ( ',' value_expression )* ')' primary_suffix*
Referenced by:

nonparenthesized_value_expression_primary#

set_function_specification subquery case_expression cast_specification subtype_treatment new_specification reference_resolution collection_value_constructor multiset_element_reference next_value_expression window_function_type ( column_name_list ) unsigned_value_specification column_reference primary_suffix contextually_typed_value_specification

primary_suffix#

field_reference attribute_or_method_reference method_invocation window_function array_element_reference static_method_invocation
         ::= field_reference
           | attribute_or_method_reference
           | method_invocation
           | window_function
           | array_element_reference
           | static_method_invocation

collection_value_constructor#

array_value_constructor multiset_value_constructor
         ::= array_value_constructor
           | multiset_value_constructor

value_specification#

literal general_value_specification
         ::= literal
           | general_value_specification

unsigned_value_specification#

unsigned_literal general_value_specification
         ::= unsigned_literal
           | general_value_specification

general_value_specification#

identifier_chain CURRENT_USER USER ? host_parameter_name current_collation_specification SESSION_USER SYSTEM_USER CURRENT_CATALOG CURRENT_PATH CURRENT_ROLE CURRENT_SCHEMA VALUE CURRENT_DEFAULT_TRANSFORM_GROUP CURRENT_TRANSFORM_GROUP_FOR_TYPE path_resolved_user_defined_type_name
         ::= identifier_chain
           | 'CURRENT_USER'
           | 'USER'
           | '?'
           | host_parameter_name
           | current_collation_specification
           | 'SESSION_USER'
           | 'SYSTEM_USER'
           | 'CURRENT_CATALOG'
           | 'CURRENT_PATH'
           | 'CURRENT_ROLE'
           | 'CURRENT_SCHEMA'
           | 'VALUE'
           | 'CURRENT_DEFAULT_TRANSFORM_GROUP'
           | 'CURRENT_TRANSFORM_GROUP_FOR_TYPE' path_resolved_user_defined_type_name

simple_value_specification#

literal identifier_chain host_parameter_name
         ::= literal
           | identifier_chain
           | host_parameter_name

target_specification#

identifier_chain column_reference target_array_element_specification ?

simple_target_specification#

identifier_chain column_reference
         ::= identifier_chain
           | column_reference

target_array_element_specification#

left_bracket_or_trigraph simple_value_specification right_bracket_or_trigraph
Referenced by:

current_collation_specification#

COLLATION FOR ( string_value_expression )
         ::= 'COLLATION' 'FOR' '(' string_value_expression ')'

contextually_typed_value_specification#

implicitly_typed_value_specification DEFAULT
           | 'DEFAULT'

implicitly_typed_value_specification#

NULL empty_specification
         ::= 'NULL'
           | empty_specification

empty_specification#

ARRAY MULTISET left_bracket_or_trigraph right_bracket_or_trigraph
         ::= ( 'ARRAY' | 'MULTISET' ) left_bracket_or_trigraph right_bracket_or_trigraph

identifier_chain#

identifier .
         ::= identifier ( '.' identifier )*

column_reference#

identifier_chain MODULE . identifier . identifier
         ::= identifier_chain
           | 'MODULE' '.' identifier '.' identifier

set_function_specification#

aggregate_function grouping_operation
         ::= aggregate_function
           | grouping_operation

grouping_operation#

GROUPING ( column_reference , )
         ::= 'GROUPING' '(' column_reference ( ',' column_reference )* ')'

window_function#

OVER window_name_or_specification
         ::= 'OVER' window_name_or_specification
Referenced by:

window_function_type#

rank_function_type ROW_NUMBER ( ) aggregate_function ntile_function lead_or_lag_function first_or_last_value_function nth_value_function
         ::= ( rank_function_type | 'ROW_NUMBER' ) '(' ')'
           | aggregate_function
           | ntile_function
           | lead_or_lag_function
           | first_or_last_value_function
           | nth_value_function

rank_function_type#

RANK DENSE_RANK PERCENT_RANK CUME_DIST
         ::= 'RANK'
           | 'DENSE_RANK'
           | 'PERCENT_RANK'
           | 'CUME_DIST'

ntile_function#

NTILE ( number_of_tiles )
         ::= 'NTILE' '(' number_of_tiles ')'
Referenced by:

number_of_tiles#

value_expression ?
         ::= value_expression
           | '?'
Referenced by:

lead_or_lag_function#

lead_or_lag ( value_expression , value_expression , value_expression ) null_treatment
         ::= lead_or_lag '(' value_expression ( ',' value_expression ( ',' value_expression )? )? ')' null_treatment?
Referenced by:

lead_or_lag#

LEAD LAG
         ::= 'LEAD'
           | 'LAG'
Referenced by:

null_treatment#

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

first_or_last_value_function#

first_or_last_value ( value_expression ) null_treatment
         ::= first_or_last_value '(' value_expression ')' null_treatment?
Referenced by:

first_or_last_value#

FIRST_VALUE LAST_VALUE
         ::= 'FIRST_VALUE'
           | 'LAST_VALUE'

nth_value_function#

NTH_VALUE ( value_expression , nth_row ) from_first_or_last null_treatment
         ::= 'NTH_VALUE' '(' value_expression ',' nth_row ')' from_first_or_last? null_treatment?
Referenced by:

nth_row#

simple_value_specification ?
           | '?'
Referenced by:

from_first_or_last#

FROM FIRST LAST
         ::= 'FROM' ( 'FIRST' | 'LAST' )
Referenced by:

window_name_or_specification#

in_line_window_specification identifier
         ::= in_line_window_specification
           | identifier
Referenced by:

in_line_window_specification#

window_specification
         ::= window_specification

case_expression#

case_abbreviation case_specification
         ::= case_abbreviation
           | case_specification

case_abbreviation#

NULLIF ( value_expression , COALESCE ( value_expression , value_expression )
         ::= ( 'NULLIF' '(' value_expression ',' | 'COALESCE' '(' ( value_expression ',' )+ ) value_expression ')'
Referenced by:

case_specification#

simple_case searched_case
         ::= simple_case
           | searched_case
Referenced by:

simple_case#

CASE case_operand simple_when_clause else_clause END
         ::= 'CASE' case_operand simple_when_clause+ else_clause? 'END'
Referenced by:

searched_case#

CASE searched_when_clause else_clause END
         ::= 'CASE' searched_when_clause+ else_clause? 'END'
Referenced by:

simple_when_clause#

WHEN when_operand_list THEN result
         ::= 'WHEN' when_operand_list 'THEN' result
Referenced by:

searched_when_clause#

WHEN search_condition THEN result
         ::= 'WHEN' search_condition 'THEN' result
Referenced by:

else_clause#

ELSE result
         ::= 'ELSE' result
Referenced by:

case_operand#

row_value_predicand overlaps_predicate_part_1
         ::= row_value_predicand
           | overlaps_predicate_part_1
Referenced by:

when_operand_list#

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

when_operand#

row_value_predicand comparison_predicate_part_2 between_predicate_part_2 in_predicate_part_2 character_like_predicate_part_2 octet_like_predicate_part_2 similar_predicate_part_2 regex_like_predicate_part_2 null_predicate_part_2 quantified_comparison_predicate_part_2 normalized_predicate_part_2 match_predicate_part_2 overlaps_predicate_part_2 distinct_predicate_part_2 member_predicate_part_2 submultiset_predicate_part_2 set_predicate_part_2 type_predicate_part_2
         ::= row_value_predicand
           | comparison_predicate_part_2
           | between_predicate_part_2
           | in_predicate_part_2
           | character_like_predicate_part_2
           | octet_like_predicate_part_2
           | similar_predicate_part_2
           | regex_like_predicate_part_2
           | null_predicate_part_2
           | normalized_predicate_part_2
           | match_predicate_part_2
           | overlaps_predicate_part_2
           | distinct_predicate_part_2
           | member_predicate_part_2
           | submultiset_predicate_part_2
           | set_predicate_part_2
           | type_predicate_part_2
Referenced by:

result#

value_expression NULL
           | 'NULL'

cast_specification#

CAST ( cast_operand AS cast_target ) try_cast
         ::= 'CAST' '(' cast_operand 'AS' cast_target ')'
           | try_cast

cast_operand#

value_expression implicitly_typed_value_specification
         ::= value_expression
           | implicitly_typed_value_specification

cast_target#

data_type schema_qualified_name
         ::= data_type
           | schema_qualified_name

next_value_expression#

NEXT VALUE FOR schema_qualified_name
         ::= 'NEXT' 'VALUE' 'FOR' schema_qualified_name

field_reference#

. identifier
         ::= '.' identifier
Referenced by:

subtype_treatment#

TREAT ( value_expression AS target_subtype )
         ::= 'TREAT' '(' value_expression 'AS' target_subtype ')'

target_subtype#

path_resolved_user_defined_type_name reference_type
           | reference_type
Referenced by:

method_invocation#

direct_invocation udaf_filter generalized_invocation
         ::= direct_invocation udaf_filter?
           | generalized_invocation

direct_invocation#

SQL_argument_list
         ::= SQL_argument_list
Referenced by:

generalized_invocation#

. identifier SQL_argument_list
         ::= '.' identifier SQL_argument_list?
Referenced by:

static_method_invocation#

:: identifier SQL_argument_list
         ::= '::' identifier SQL_argument_list?
Referenced by:

new_specification#

NEW path_resolved_user_defined_type_name SQL_argument_list

new_invocation#

method_invocation routine_invocation
         ::= method_invocation
           | routine_invocation
Not referenced by any.

attribute_or_method_reference#

lambda_body
         ::= lambda_body
Referenced by:

dereference_operation#

reference_value_expression -> identifier
         ::= reference_value_expression '->' identifier
Not referenced by any.

reference_resolution#

DEREF ( reference_value_expression )
         ::= 'DEREF' '(' reference_value_expression ')'

array_element_reference#

left_bracket_or_trigraph value_expression right_bracket_or_trigraph
Referenced by:

multiset_element_reference#

ELEMENT ( multiset_value_expression )
         ::= 'ELEMENT' '(' multiset_value_expression ')'

value_expression#

boolean_value_expression common_value_expression row_value_expression
         ::= boolean_value_expression
           | common_value_expression
           | row_value_expression

common_value_expression#

numeric_value_expression string_value_expression datetime_value_expression interval_value_expression user_defined_type_value_expression reference_value_expression collection_value_expression
         ::= numeric_value_expression
           | string_value_expression
           | datetime_value_expression
           | interval_value_expression
           | user_defined_type_value_expression
           | reference_value_expression
           | collection_value_expression

user_defined_type_value_expression#

value_expression_primary
         ::= value_expression_primary
Referenced by:

reference_value_expression#

value_expression_primary
         ::= value_expression_primary

collection_value_expression#

array_value_expression multiset_value_expression
         ::= array_value_expression
           | multiset_value_expression

numeric_value_expression#

term + -
         ::= term ( ( '+' | '-' ) term )*

term#

factor * / %
term     ::= factor ( ( '*' | '/' | '%' ) factor )*
Referenced by:

factor#

+ - numeric_primary
factor   ::= ( '+' | '-' )? numeric_primary
Referenced by:

numeric_primary#

numeric_value_function character_value_expression
         ::= numeric_value_function
           | character_value_expression
Referenced by:

numeric_value_function#

position_expression regex_occurrences_function regex_position_expression extract_expression length_expression cardinality_expression max_cardinality_expression absolute_value_expression modulus_expression natural_logarithm exponential_function power_function square_root floor_function ceiling_function width_bucket_function
         ::= position_expression
           | regex_occurrences_function
           | regex_position_expression
           | extract_expression
           | length_expression
           | cardinality_expression
           | max_cardinality_expression
           | absolute_value_expression
           | modulus_expression
           | natural_logarithm
           | exponential_function
           | power_function
           | square_root
           | floor_function
           | ceiling_function
           | width_bucket_function
Referenced by:

position_expression#

character_position_expression binary_position_expression
         ::= character_position_expression
           | binary_position_expression
Referenced by:

regex_occurrences_function#

OCCURRENCES_REGEX ( character_value_expression FLAG character_value_expression IN character_value_expression FROM numeric_value_expression USING char_length_units )
         ::= 'OCCURRENCES_REGEX' '(' character_value_expression ( 'FLAG' character_value_expression )? 'IN' character_value_expression ( 'FROM' numeric_value_expression )? ( 'USING' char_length_units )? ')'
Referenced by:

regex_position_expression#

POSITION_REGEX ( regex_position_start_or_after character_value_expression FLAG character_value_expression IN character_value_expression FROM numeric_value_expression USING char_length_units OCCURRENCE numeric_value_expression GROUP numeric_value_expression )
Referenced by:

regex_position_start_or_after#

START AFTER
         ::= 'START'
           | 'AFTER'

character_position_expression#

POSITION ( character_value_expression IN character_value_expression USING char_length_units )
         ::= 'POSITION' '(' character_value_expression 'IN' character_value_expression ( 'USING' char_length_units )? ')'
Referenced by:

binary_position_expression#

POSITION ( binary_value_expression IN binary_value_expression )
         ::= 'POSITION' '(' binary_value_expression 'IN' binary_value_expression ')'
Referenced by:

length_expression#

char_length_expression octet_length_expression
         ::= char_length_expression
           | octet_length_expression
Referenced by:

char_length_expression#

CHAR_LENGTH CHARACTER_LENGTH ( character_value_expression USING char_length_units )
         ::= ( 'CHAR_LENGTH' | 'CHARACTER_LENGTH' ) '(' character_value_expression ( 'USING' char_length_units )? ')'
Referenced by:

octet_length_expression#

OCTET_LENGTH ( string_value_expression )
         ::= 'OCTET_LENGTH' '(' string_value_expression ')'
Referenced by:

extract_expression#

EXTRACT ( extract_field FROM extract_source )
         ::= 'EXTRACT' '(' extract_field 'FROM' extract_source ')'
Referenced by:

extract_field#

primary_datetime_field time_zone_field
         ::= primary_datetime_field
           | time_zone_field
Referenced by:

time_zone_field#

TIMEZONE_HOUR TIMEZONE_MINUTE
         ::= 'TIMEZONE_HOUR'
           | 'TIMEZONE_MINUTE'
Referenced by:

extract_source#

datetime_value_expression interval_value_expression
         ::= datetime_value_expression
           | interval_value_expression
Referenced by:

cardinality_expression#

CARDINALITY ( collection_value_expression )
         ::= 'CARDINALITY' '(' collection_value_expression ')'
Referenced by:

max_cardinality_expression#

MAX_CARDINALITY ( array_value_expression )
         ::= 'MAX_CARDINALITY' '(' array_value_expression ')'
Referenced by:

absolute_value_expression#

ABS ( numeric_value_expression )
         ::= 'ABS' '(' numeric_value_expression ')'
Referenced by:

modulus_expression#

MOD ( numeric_value_expression , numeric_value_expression )
         ::= 'MOD' '(' numeric_value_expression ',' numeric_value_expression ')'
Referenced by:

natural_logarithm#

LN ( numeric_value_expression )
         ::= 'LN' '(' numeric_value_expression ')'
Referenced by:

exponential_function#

EXP ( numeric_value_expression )
         ::= 'EXP' '(' numeric_value_expression ')'
Referenced by:

power_function#

POWER ( numeric_value_expression , numeric_value_expression )
         ::= 'POWER' '(' numeric_value_expression ',' numeric_value_expression ')'
Referenced by:

square_root#

SQRT ( numeric_value_expression )
         ::= 'SQRT' '(' numeric_value_expression ')'
Referenced by:

floor_function#

FLOOR ( numeric_value_expression )
         ::= 'FLOOR' '(' numeric_value_expression ')'
Referenced by:

ceiling_function#

CEIL CEILING ( numeric_value_expression )
         ::= ( 'CEIL' | 'CEILING' ) '(' numeric_value_expression ')'
Referenced by:

width_bucket_function#

WIDTH_BUCKET ( numeric_value_expression , numeric_value_expression , numeric_value_expression , numeric_value_expression )
         ::= 'WIDTH_BUCKET' '(' numeric_value_expression ',' numeric_value_expression ( ',' numeric_value_expression ',' numeric_value_expression )? ')'
Referenced by:

string_value_expression#

character_value_expression binary_value_expression
         ::= character_value_expression
           | binary_value_expression

character_value_expression#

character_factor concatenation
         ::= character_factor concatenation*

concatenation#

|| character_factor
         ::= '||' character_factor

character_factor#

character_primary collate_clause
         ::= character_primary collate_clause?

character_primary#

string_value_function binary_value_expression
         ::= string_value_function
           | binary_value_expression
Referenced by:

binary_value_expression#

binary_primary binary_concatenation
         ::= binary_primary binary_concatenation*

binary_primary#

string_value_function datetime_value_expression
         ::= string_value_function
           | datetime_value_expression

binary_concatenation#

|| binary_primary
         ::= '||' binary_primary
Referenced by:

string_value_function#

character_value_function binary_value_function
         ::= character_value_function
           | binary_value_function

character_value_function#

character_substring_function regular_expression_substring_function regex_substring_function fold transcoding character_transliteration regex_transliteration trim_function character_overlay_function normalize_function specific_type_method
         ::= character_substring_function
           | regex_substring_function
           | fold
           | transcoding
           | character_transliteration
           | regex_transliteration
           | trim_function
           | character_overlay_function
           | normalize_function
           | specific_type_method
Referenced by:

character_substring_function#

SUBSTRING ( character_value_expression FROM numeric_value_expression FOR numeric_value_expression USING char_length_units )
         ::= 'SUBSTRING' '(' character_value_expression 'FROM' numeric_value_expression ( 'FOR' numeric_value_expression )? ( 'USING' char_length_units )? ')'
Referenced by:

regular_expression_substring_function#

SUBSTRING ( character_value_expression SIMILAR character_value_expression ESCAPE character_value_expression )
         ::= 'SUBSTRING' '(' character_value_expression 'SIMILAR' character_value_expression 'ESCAPE' character_value_expression ')'
Referenced by:

regex_substring_function#

SUBSTRING_REGEX ( character_value_expression FLAG character_value_expression IN character_value_expression FROM numeric_value_expression USING char_length_units OCCURRENCE numeric_value_expression GROUP numeric_value_expression )
         ::= 'SUBSTRING_REGEX' '(' character_value_expression ( 'FLAG' character_value_expression )? 'IN' character_value_expression ( 'FROM' numeric_value_expression )? ( 'USING' char_length_units )? ( 'OCCURRENCE' numeric_value_expression )? ( 'GROUP' numeric_value_expression )? ')'
Referenced by:

fold#

UPPER LOWER ( character_value_expression )
fold     ::= ( 'UPPER' | 'LOWER' ) '(' character_value_expression ')'
Referenced by:

transcoding#

CONVERT ( character_value_expression USING schema_qualified_name )
         ::= 'CONVERT' '(' character_value_expression 'USING' schema_qualified_name ')'
Referenced by:

character_transliteration#

TRANSLATE ( character_value_expression USING schema_qualified_name )
         ::= 'TRANSLATE' '(' character_value_expression 'USING' schema_qualified_name ')'
Referenced by:

regex_transliteration#

TRANSLATE_REGEX ( character_value_expression FLAG character_value_expression IN character_value_expression WITH character_value_expression FROM numeric_value_expression USING char_length_units OCCURRENCE regex_transliteration_occurrence )
         ::= 'TRANSLATE_REGEX' '(' character_value_expression ( 'FLAG' character_value_expression )? 'IN' character_value_expression ( 'WITH' character_value_expression )? ( 'FROM' numeric_value_expression )? ( 'USING' char_length_units )? ( 'OCCURRENCE' regex_transliteration_occurrence )? ')'
Referenced by:

regex_transliteration_occurrence#

ALL numeric_value_expression
         ::= 'ALL'
           | numeric_value_expression
Referenced by:

trim_function#

TRIM ( trim_operands )
         ::= 'TRIM' '(' trim_operands ')'
Referenced by:

trim_operands#

trim_specification character_value_expression , FROM character_value_expression
         ::= trim_specification? character_value_expression ( ( ',' | 'FROM' ) character_value_expression )?
Referenced by:

trim_specification#

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

character_overlay_function#

OVERLAY ( character_value_expression PLACING character_value_expression FROM numeric_value_expression FOR numeric_value_expression USING char_length_units )
         ::= 'OVERLAY' '(' character_value_expression 'PLACING' character_value_expression 'FROM' numeric_value_expression ( 'FOR' numeric_value_expression )? ( 'USING' char_length_units )? ')'
Referenced by:

normalize_function#

NORMALIZE ( character_value_expression , normal_form , normalize_function_result_length )
         ::= 'NORMALIZE' '(' character_value_expression ( ',' normal_form ( ',' normalize_function_result_length )? )? ')'
Referenced by:

normal_form#

NFC NFD NFKC NFKD
         ::= 'NFC'
           | 'NFD'
           | 'NFKC'
           | 'NFKD'

normalize_function_result_length#

character_length character_large_object_length
         ::= character_length
           | character_large_object_length
Referenced by:

specific_type_method#

. SPECIFICTYPE ( )
         ::= '.' 'SPECIFICTYPE' ( '(' ')' )?
Referenced by:

binary_value_function#

binary_substring_function binary_trim_function binary_overlay_function
         ::= binary_substring_function
           | binary_trim_function
           | binary_overlay_function
Referenced by:

binary_substring_function#

SUBSTRING ( binary_value_expression FROM numeric_value_expression FOR numeric_value_expression )
         ::= 'SUBSTRING' '(' binary_value_expression 'FROM' numeric_value_expression ( 'FOR' numeric_value_expression )? ')'
Referenced by:

binary_trim_function#

TRIM ( binary_trim_operands )
         ::= 'TRIM' '(' binary_trim_operands ')'
Referenced by:

binary_trim_operands#

trim_specification binary_value_expression , FROM binary_value_expression
         ::= trim_specification? binary_value_expression ( ( ',' | 'FROM' ) binary_value_expression )?
Referenced by:

binary_overlay_function#

OVERLAY ( binary_value_expression PLACING binary_value_expression FROM numeric_value_expression FOR numeric_value_expression )
         ::= 'OVERLAY' '(' binary_value_expression 'PLACING' binary_value_expression 'FROM' numeric_value_expression ( 'FOR' numeric_value_expression )? ')'
Referenced by:

datetime_value_expression#

datetime_term interval_value_expression
         ::= datetime_term
           | interval_value_expression

datetime_term#

datetime_factor
         ::= datetime_factor

datetime_factor#

datetime_primary time_zone
         ::= datetime_primary time_zone?
Referenced by:

datetime_primary#

datetime_value_function interval_value_expression
         ::= datetime_value_function
           | interval_value_expression
Referenced by:

time_zone#

AT time_zone_specifier
         ::= 'AT' time_zone_specifier
Referenced by:

time_zone_specifier#

LOCAL TIME ZONE interval_primary
         ::= 'LOCAL'
           | 'TIME' 'ZONE' interval_primary
Referenced by:

datetime_value_function#

CURRENT_DATE current_time_value_function current_timestamp_value_function current_local_time_value_function current_local_timestamp_value_function
         ::= 'CURRENT_DATE'
           | current_time_value_function
           | current_timestamp_value_function
           | current_local_time_value_function

current_time_value_function#

CURRENT_TIME ( unsigned_integer )
         ::= 'CURRENT_TIME' ( '(' unsigned_integer ')' )?
Referenced by:

current_local_time_value_function#

LOCALTIME ( unsigned_integer )
         ::= 'LOCALTIME' ( '(' unsigned_integer ')' )?
Referenced by:

current_timestamp_value_function#

CURRENT_TIMESTAMP ( unsigned_integer )
         ::= 'CURRENT_TIMESTAMP' ( '(' unsigned_integer ')' )?
Referenced by:

current_local_timestamp_value_function#

LOCALTIMESTAMP ( unsigned_integer )
         ::= 'LOCALTIMESTAMP' ( '(' unsigned_integer ')' )?
Referenced by:

interval_value_expression#

interval_term ( datetime_value_expression - datetime_term ) interval_qualifier
         ::= interval_term
           | '(' datetime_value_expression '-' datetime_term ')' interval_qualifier

interval_term#

interval_factor * / factor
         ::= interval_factor ( ( '*' | '/' ) factor )?

interval_factor#

+ - interval_primary
         ::= ( '+' | '-' )? interval_primary
Referenced by:

interval_primary#

interval_value_function array_value_expression interval_qualifier
         ::= interval_value_function

interval_value_function#

interval_absolute_value_function
         ::= interval_absolute_value_function
Referenced by:

interval_absolute_value_function#

ABS ( interval_value_expression )
         ::= 'ABS' '(' interval_value_expression ')'
Referenced by:

boolean_value_expression#

boolean_term OR
         ::= boolean_term ( 'OR' boolean_term )*

boolean_term#

boolean_factor AND
         ::= boolean_factor ( 'AND' boolean_factor )*
Referenced by:

boolean_factor#

NOT boolean_test
         ::= 'NOT'? boolean_test
Referenced by:

boolean_test#

boolean_primary IS NOT truth_value
         ::= boolean_primary ( 'IS' 'NOT'? truth_value )?
Referenced by:

truth_value#

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

boolean_primary#

predicate boolean_predicand
         ::= predicate
           | boolean_predicand
Referenced by:

boolean_predicand#

parenthesized_boolean_value_expression numeric_value_expression
           | numeric_value_expression
Referenced by:

parenthesized_boolean_value_expression#

( boolean_value_expression )
         ::= '(' boolean_value_expression ')'
Referenced by:

array_value_expression#

array_primary ||
         ::= array_primary ( '||' array_primary )*

array_value_expression_1#

array_value_expression
         ::= array_value_expression
Not referenced by any.

array_primary#

array_value_function multiset_value_expression
         ::= array_value_function
           | multiset_value_expression
Referenced by:

array_value_function#

trim_array_function
         ::= trim_array_function
Referenced by:

trim_array_function#

TRIM_ARRAY ( array_value_expression , numeric_value_expression )
         ::= 'TRIM_ARRAY' '(' array_value_expression ',' numeric_value_expression ')'
Referenced by:

array_value_constructor#

array_value_constructor_by_enumeration array_value_constructor_by_query
           | array_value_constructor_by_query

array_value_constructor_by_enumeration#

ARRAY left_bracket_or_trigraph array_element_list right_bracket_or_trigraph
Referenced by:

array_element_list#

array_element ,
         ::= array_element ( ',' array_element )*

array_element#

value_expression
         ::= value_expression
Referenced by:

array_value_constructor_by_query#

ARRAY subquery
         ::= 'ARRAY' subquery
Referenced by:

multiset_value_expression#

multiset_term MULTISET UNION EXCEPT ALL DISTINCT multiset_term
         ::= multiset_term ( 'MULTISET' ( 'UNION' | 'EXCEPT' ) ( 'ALL' | 'DISTINCT' )? multiset_term )?

multiset_term#

multiset_primary MULTISET INTERSECT ALL DISTINCT multiset_primary
         ::= multiset_primary ( 'MULTISET' 'INTERSECT' ( 'ALL' | 'DISTINCT' )? multiset_primary )?

multiset_primary#

multiset_set_function value_expression_primary
         ::= multiset_set_function
           | value_expression_primary
Referenced by:

multiset_set_function#

SET ( multiset_value_expression )
         ::= 'SET' '(' multiset_value_expression ')'
Referenced by:

multiset_value_constructor#

multiset_value_constructor_by_enumeration multiset_value_constructor_by_query table_value_constructor_by_query
           | multiset_value_constructor_by_query
           | table_value_constructor_by_query

multiset_value_constructor_by_enumeration#

MULTISET left_bracket_or_trigraph multiset_element_list right_bracket_or_trigraph

multiset_element_list#

multiset_element ,
         ::= multiset_element ( ',' multiset_element )*

multiset_element#

value_expression
         ::= value_expression
Referenced by:

multiset_value_constructor_by_query#

MULTISET subquery
         ::= 'MULTISET' subquery

table_value_constructor_by_query#

TABLE subquery
         ::= 'TABLE' subquery

row_value_constructor#

explicit_row_value_constructor common_value_expression boolean_value_expression
         ::= explicit_row_value_constructor
           | common_value_expression
           | boolean_value_expression

explicit_row_value_constructor#

ROW ( row_value_constructor_element_list ( row_value_constructor_element , row_value_constructor_element_list ) subquery
           | subquery

row_value_constructor_element_list#

row_value_constructor_element ,

row_value_constructor_element#

value_expression
         ::= value_expression

contextually_typed_row_value_constructor#

common_value_expression boolean_value_expression contextually_typed_value_specification ( contextually_typed_value_specification contextually_typed_row_value_constructor_element , contextually_typed_row_value_constructor_element_list ROW ( contextually_typed_row_value_constructor_element_list )
         ::= common_value_expression
           | boolean_value_expression

contextually_typed_row_value_constructor_element_list#

contextually_typed_row_value_constructor_element ,

contextually_typed_row_value_constructor_element#

contextually_typed_value_specification

row_value_constructor_predicand#

common_value_expression explicit_row_value_constructor
         ::= common_value_expression
           | explicit_row_value_constructor
Referenced by:

row_value_expression#

explicit_row_value_constructor row_value_special_case
         ::= explicit_row_value_constructor
           | row_value_special_case

table_row_value_expression#

row_value_constructor row_value_special_case
         ::= row_value_constructor
           | row_value_special_case

contextually_typed_row_value_expression#

contextually_typed_row_value_constructor row_value_special_case
           | row_value_special_case

row_value_predicand#

row_value_constructor_predicand row_value_special_case
         ::= row_value_constructor_predicand
           | row_value_special_case

row_value_special_case#

common_value_expression nonparenthesized_value_expression_primary
         ::= common_value_expression

table_value_constructor#

VALUES row_value_expression_list
         ::= 'VALUES' row_value_expression_list
Referenced by:

row_value_expression_list#

table_row_value_expression ,
Referenced by:

contextually_typed_table_value_constructor#

VALUES contextually_typed_row_value_expression_list
         ::= 'VALUES' contextually_typed_row_value_expression_list
Referenced by:

contextually_typed_row_value_expression_list#

contextually_typed_row_value_expression ,

table_expression#

from_clause where_clause group_by_clause having_clause window_clause

from_clause#

FROM table_reference_list
         ::= 'FROM' table_reference_list
Referenced by:

table_reference_list#

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

table_reference#

table_factor joined_table
         ::= table_factor joined_table*

table_factor#

table_primary sample_clause partitioned_join_table

sample_clause#

TABLESAMPLE sample_method ( sample_percentage ) repeatable_clause
         ::= 'TABLESAMPLE' sample_method '(' sample_percentage ')' repeatable_clause?
Referenced by:

sample_method#

BERNOULLI SYSTEM
         ::= 'BERNOULLI'
           | 'SYSTEM'
Referenced by:

repeatable_clause#

REPEATABLE ( repeat_argument )
         ::= 'REPEATABLE' '(' repeat_argument ')'
Referenced by:

sample_percentage#

numeric_value_expression
         ::= numeric_value_expression
Referenced by:

repeat_argument#

numeric_value_expression
         ::= numeric_value_expression
Referenced by:

table_primary#

table_or_query_name derived_table parenthesized_joined_table lateral_derived_table collection_derived_table table_function_derived_table only_spec data_change_delta_table alias

alias#

AS identifier identifier_suffix_chain ( column_name_list )
Referenced by:

system_version_specification#

AS OF SYSTEM TIME VERSIONS BEFORE AFTER SYSTEM TIME BETWEEN ASYMMETRIC SYMMETRIC SYSTEM TIME datetime_value_expression AND datetime_value_expression
         ::= ( 'AS' 'OF' 'SYSTEM' 'TIME' | 'VERSIONS' ( ( 'BEFORE' | 'AFTER' ) 'SYSTEM' 'TIME' | 'BETWEEN' ( 'ASYMMETRIC' | 'SYMMETRIC' )? 'SYSTEM' 'TIME' datetime_value_expression 'AND' ) ) datetime_value_expression
Not referenced by any.

only_spec#

ONLY ( table_or_query_name )
         ::= 'ONLY' '(' table_or_query_name ')'
Referenced by:

lateral_derived_table#

LATERAL subquery
         ::= 'LATERAL' subquery
Referenced by:

collection_derived_table#

UNNEST ( collection_value_expression , ) WITH ORDINALITY
         ::= 'UNNEST' '(' collection_value_expression ( ',' collection_value_expression )* ')' ( 'WITH' 'ORDINALITY' )?
Referenced by:

table_function_derived_table#

TABLE ( collection_value_expression )
         ::= 'TABLE' '(' collection_value_expression ')'
Referenced by:

derived_table#

query_expression subquery
         ::= query_expression
           | subquery
Referenced by:

table_or_query_name#

table_name identifier
         ::= table_name
           | identifier

column_name_list#

identifier ,
         ::= identifier ( ',' identifier )*

data_change_delta_table#

result_option TABLE ( data_change_statement )
         ::= result_option 'TABLE' '(' data_change_statement ')'
Referenced by:

data_change_statement#

delete_statement_searched insert_statement merge_statement update_statement_searched
         ::= delete_statement_searched
           | insert_statement
           | merge_statement
           | update_statement_searched
Referenced by:

result_option#

FINAL NEW OLD
         ::= 'FINAL'
           | 'NEW'
           | 'OLD'
Referenced by:

parenthesized_joined_table#

( table_primary table_reference joined_table )
         ::= '(' ( table_primary | table_reference ) joined_table* ')'
Referenced by:

joined_table#

cross_join qualified_join natural_join
         ::= cross_join
           | qualified_join
           | natural_join

cross_join#

CROSS JOIN table_factor
         ::= 'CROSS' 'JOIN' table_factor
Referenced by:

qualified_join#

join_type JOIN table_reference partitioned_join_table join_specification
Referenced by:

partitioned_join_table#

PARTITION BY partitioned_join_column_reference_list
         ::= 'PARTITION' 'BY' partitioned_join_column_reference_list

partitioned_join_column_reference_list#

( partitioned_join_column_reference , )
Referenced by:

partitioned_join_column_reference#

column_reference
         ::= column_reference

natural_join#

NATURAL join_type JOIN table_factor partitioned_join_table
         ::= 'NATURAL' join_type? 'JOIN' ( table_factor | partitioned_join_table )
Referenced by:

join_specification#

join_condition named_columns_join
         ::= join_condition
           | named_columns_join
Referenced by:

join_condition#

ON search_condition
         ::= 'ON' search_condition
Referenced by:

named_columns_join#

USING ( join_column_list )
         ::= 'USING' '(' join_column_list ')'
Referenced by:

join_type#

INNER outer_join_type OUTER
         ::= 'INNER'
           | outer_join_type 'OUTER'?

outer_join_type#

LEFT RIGHT FULL
         ::= 'LEFT'
           | 'RIGHT'
           | 'FULL'
Referenced by:

join_column_list#

column_name_list
         ::= column_name_list
Referenced by:

where_clause#

WHERE search_condition
         ::= 'WHERE' search_condition
Referenced by:

group_by_clause#

GROUP BY set_quantifier grouping_element_list
         ::= 'GROUP' 'BY' set_quantifier? grouping_element_list
Referenced by:

grouping_element_list#

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

grouping_element#

rollup_list cube_list grouping_sets_specification empty_grouping_set ordinary_grouping_set
         ::= rollup_list
           | cube_list
           | grouping_sets_specification
           | empty_grouping_set
           | ordinary_grouping_set
Referenced by:

ordinary_grouping_set#

grouping_column_reference ( grouping_column_reference_list )
         ::= grouping_column_reference
           | '(' grouping_column_reference_list ')'

grouping_column_reference#

grouping_expression column_reference collate_clause

grouping_column_reference_list#

grouping_column_reference ,
Referenced by:

rollup_list#

ROLLUP ( ordinary_grouping_set_list )
         ::= 'ROLLUP' '(' ordinary_grouping_set_list ')'

ordinary_grouping_set_list#

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

cube_list#

CUBE ( ordinary_grouping_set_list )
         ::= 'CUBE' '(' ordinary_grouping_set_list ')'

grouping_sets_specification#

GROUPING SETS ( grouping_set_list )
         ::= 'GROUPING' 'SETS' '(' grouping_set_list ')'

grouping_set_list#

grouping_set ,
         ::= grouping_set ( ',' grouping_set )*

grouping_set#

rollup_list cube_list grouping_sets_specification empty_grouping_set ordinary_grouping_set
         ::= rollup_list
           | cube_list
           | grouping_sets_specification
           | empty_grouping_set
           | ordinary_grouping_set
Referenced by:

empty_grouping_set#

( )
         ::= '(' ')'

having_clause#

HAVING search_condition
         ::= 'HAVING' search_condition
Referenced by:

window_clause#

WINDOW window_definition_list
         ::= 'WINDOW' window_definition_list
Referenced by:

window_definition_list#

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

window_definition#

identifier AS window_specification
         ::= identifier 'AS' window_specification
Referenced by:

window_specification#

( window_specification_details )
         ::= '(' window_specification_details? ')'

window_specification_details#

window_partition_clause window_order_clause window_frame_clause existing_identifier
Referenced by:

existing_identifier#

identifier
         ::= identifier

window_partition_clause#

PARTITION BY window_partition_column_reference_list
         ::= 'PARTITION' 'BY' window_partition_column_reference_list

window_partition_column_reference_list#

window_partition_column_reference ,
Referenced by:

window_partition_column_reference#

value_expression column_reference collate_clause
         ::= ( value_expression | column_reference ) collate_clause?

window_order_clause#

ORDER BY sort_specification_list
         ::= 'ORDER' 'BY' sort_specification_list

window_frame_clause#

window_frame_units window_frame_extent window_frame_exclusion

window_frame_units#

ROWS RANGE
         ::= 'ROWS'
           | 'RANGE'
Referenced by:

window_frame_extent#

window_frame_start window_frame_between
         ::= window_frame_start
           | window_frame_between
Referenced by:

window_frame_start#

UNBOUNDED PRECEDING CURRENT ROW window_frame_preceding
         ::= 'UNBOUNDED' 'PRECEDING'
           | 'CURRENT' 'ROW'
           | window_frame_preceding

window_frame_preceding#

value_expression PRECEDING
         ::= value_expression 'PRECEDING'
Referenced by:

window_frame_between#

BETWEEN window_frame_bound AND window_frame_bound
         ::= 'BETWEEN' window_frame_bound 'AND' window_frame_bound
Referenced by:

window_frame_bound#

window_frame_start UNBOUNDED FOLLOWING window_frame_following
         ::= window_frame_start
           | 'UNBOUNDED' 'FOLLOWING'
           | window_frame_following
Referenced by:

window_frame_following#

value_expression FOLLOWING
         ::= value_expression 'FOLLOWING'
Referenced by:

window_frame_exclusion#

EXCLUDE CURRENT ROW GROUP TIES NO OTHERS
         ::= 'EXCLUDE' ( 'CURRENT' 'ROW' | 'GROUP' | 'TIES' | 'NO' 'OTHERS' )
Referenced by:

query_specification#

SELECT set_quantifier select_list table_expression
         ::= 'SELECT' set_quantifier? select_list table_expression?

select_list#

* select_sublist , , * , select_sublist
         ::= ( '*' | select_sublist ( ',' select_sublist )* ( ',' '*' )? ) ( ',' select_sublist )*

select_sublist#

derived_column . * AS ( all_fields_column_name_list ) as_clause
         ::= derived_column ( '.' '*' ( 'AS' '(' all_fields_column_name_list ')' )? | as_clause )?
Referenced by:

qualified_asterisk#

asterisked_identifier_chain . * all_fields_reference
         ::= asterisked_identifier_chain '.' '*'
           | all_fields_reference
Not referenced by any.

asterisked_identifier_chain#

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

derived_column#

value_expression as_clause
         ::= value_expression as_clause?
Referenced by:

as_clause#

AS identifier
         ::= 'AS'? identifier

all_fields_reference#

value_expression_primary . * AS ( all_fields_column_name_list )
         ::= value_expression_primary '.' '*' ( 'AS' '(' all_fields_column_name_list ')' )?
Referenced by:

all_fields_column_name_list#

column_name_list
         ::= column_name_list

query_expression#

with_clause query_expression_body order_by_clause result_offset_clause fetch_first_clause limit_clause

with_clause#

WITH RECURSIVE with_list
         ::= 'WITH' 'RECURSIVE'? with_list
Referenced by:

with_list#

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

with_list_element#

identifier ( column_name_list ) AS subquery search_or_cycle_clause
         ::= identifier ( '(' column_name_list ')' )? 'AS' subquery search_or_cycle_clause?
Referenced by:

query_expression_body#

query_term corresponding_spec ALL DISTINCT UNION EXCEPT
         ::= query_term ( ( 'UNION' | 'EXCEPT' ) ( 'ALL' | 'DISTINCT' )? corresponding_spec? query_term )*

query_term#

query_primary corresponding_spec ALL DISTINCT INTERSECT
         ::= query_primary ( 'INTERSECT' ( 'ALL' | 'DISTINCT' )? corresponding_spec? query_primary )*
Referenced by:

query_primary#

( query_expression_body order_by_clause limit_clause result_offset_clause fetch_first_clause ) simple_table
           | simple_table
Referenced by:

simple_table#

table_value_constructor explicit_table query_specification
         ::= table_value_constructor
           | explicit_table
           | query_specification
Referenced by:

explicit_table#

TABLE table_or_query_name
         ::= 'TABLE' table_or_query_name
Referenced by:

corresponding_spec#

CORRESPONDING BY ( column_name_list )
         ::= 'CORRESPONDING' ( 'BY' '(' column_name_list ')' )?

order_by_clause#

ORDER BY sort_specification_list
         ::= 'ORDER' 'BY' sort_specification_list

result_offset_clause#

OFFSET simple_value_specification ROW ROWS
         ::= 'OFFSET' simple_value_specification ( 'ROW' | 'ROWS' )

fetch_first_clause#

FETCH FIRST NEXT simple_value_specification ROW ROWS ONLY
         ::= 'FETCH' ( 'FIRST' | 'NEXT' ) simple_value_specification? ( 'ROW' | 'ROWS' ) 'ONLY'

search_or_cycle_clause#

search_clause cycle_clause cycle_clause
         ::= search_clause cycle_clause?
           | cycle_clause
Referenced by:

search_clause#

SEARCH recursive_search_order SET identifier
         ::= 'SEARCH' recursive_search_order 'SET' identifier
Referenced by:

recursive_search_order#

DEPTH BREADTH FIRST BY column_name_list
         ::= ( 'DEPTH' | 'BREADTH' ) 'FIRST' 'BY' column_name_list
Referenced by:

cycle_clause#

CYCLE cycle_column_list SET identifier TO value_expression DEFAULT value_expression USING identifier
         ::= 'CYCLE' cycle_column_list 'SET' identifier 'TO' value_expression 'DEFAULT' value_expression 'USING' identifier
Referenced by:

cycle_column_list#

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

subquery#

( query_expression )

predicate#

exists_predicate unique_predicate row_value_predicand comparison_predicate between_predicate in_predicate like_predicate similar_predicate regex_like_predicate null_predicate quantified_comparison_predicate normalized_predicate match_predicate overlaps_predicate distinct_predicate member_predicate submultiset_predicate set_predicate type_predicate
         ::= exists_predicate
           | unique_predicate
Referenced by:

comparison_predicate#

comparison_predicate_part_2
         ::= comparison_predicate_part_2
Referenced by:

comparison_predicate_part_2#

comp_op row_value_predicand
         ::= comp_op row_value_predicand

comp_op#

= <> < > <= >= !=
comp_op  ::= '='
           | '<>'
           | '<'
           | '>'
           | '<='
           | '>='
           | '!='

between_predicate#

between_predicate_part_2
         ::= between_predicate_part_2
Referenced by:

between_predicate_part_2#

NOT BETWEEN ASYMMETRIC SYMMETRIC row_value_predicand AND row_value_predicand
         ::= 'NOT'? 'BETWEEN' ( 'ASYMMETRIC' | 'SYMMETRIC' )? row_value_predicand 'AND' row_value_predicand

in_predicate#

in_predicate_part_2
         ::= in_predicate_part_2
Referenced by:

in_predicate_part_2#

NOT IN in_predicate_value
         ::= 'NOT'? 'IN' in_predicate_value
Referenced by:

in_predicate_value#

( in_value_list ) subquery
         ::= '(' in_value_list ')'
           | subquery
Referenced by:

in_value_list#

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

like_predicate#

character_like_predicate octet_like_predicate
         ::= character_like_predicate
           | octet_like_predicate
Referenced by:

character_like_predicate#

character_like_predicate_part_2
         ::= character_like_predicate_part_2
Referenced by:

character_like_predicate_part_2#

NOT LIKE character_value_expression ESCAPE character_value_expression
         ::= 'NOT'? 'LIKE' character_value_expression ( 'ESCAPE' character_value_expression )?

octet_like_predicate#

octet_like_predicate_part_2
         ::= octet_like_predicate_part_2
Referenced by:

octet_like_predicate_part_2#

NOT LIKE binary_value_expression ESCAPE binary_value_expression
         ::= 'NOT'? 'LIKE' binary_value_expression ( 'ESCAPE' binary_value_expression )?

similar_predicate#

similar_predicate_part_2
         ::= similar_predicate_part_2
Referenced by:

similar_predicate_part_2#

NOT SIMILAR TO character_value_expression ESCAPE character_value_expression
         ::= 'NOT'? 'SIMILAR' 'TO' character_value_expression ( 'ESCAPE' character_value_expression )?

regex_like_predicate#

regex_like_predicate_part_2
         ::= regex_like_predicate_part_2
Referenced by:

regex_like_predicate_part_2#

NOT LIKE_REGEX character_value_expression FLAG character_value_expression
         ::= 'NOT'? 'LIKE_REGEX' character_value_expression ( 'FLAG' character_value_expression )?

null_predicate#

null_predicate_part_2
         ::= null_predicate_part_2
Referenced by:

null_predicate_part_2#

IS NOT NULL
         ::= 'IS' 'NOT'? 'NULL'

quantified_comparison_predicate#

quantified_comparison_predicate_part_2
Referenced by:

quantified_comparison_predicate_part_2#

comp_op ALL SOME ANY subquery
         ::= comp_op ( 'ALL' | 'SOME' | 'ANY' ) subquery

exists_predicate#

EXISTS subquery
         ::= 'EXISTS' subquery
Referenced by:

unique_predicate#

UNIQUE subquery
         ::= 'UNIQUE' subquery
Referenced by:

normalized_predicate#

normalized_predicate_part_2
         ::= normalized_predicate_part_2
Referenced by:

normalized_predicate_part_2#

IS NOT normal_form NORMALIZED
         ::= 'IS' 'NOT'? normal_form? 'NORMALIZED'

match_predicate#

match_predicate_part_2
         ::= match_predicate_part_2
Referenced by:

match_predicate_part_2#

MATCH UNIQUE SIMPLE PARTIAL FULL subquery
         ::= 'MATCH' 'UNIQUE'? ( 'SIMPLE' | 'PARTIAL' | 'FULL' )? subquery

overlaps_predicate#

overlaps_predicate_part_2
         ::= overlaps_predicate_part_2
Referenced by:

overlaps_predicate_part_1#

row_value_predicand_1
         ::= row_value_predicand_1
Referenced by:

overlaps_predicate_part_2#

OVERLAPS row_value_predicand_2
         ::= 'OVERLAPS' row_value_predicand_2

row_value_predicand_1#

row_value_predicand
         ::= row_value_predicand

row_value_predicand_2#

row_value_predicand
         ::= row_value_predicand

distinct_predicate#

distinct_predicate_part_2
         ::= distinct_predicate_part_2
Referenced by:

distinct_predicate_part_2#

IS NOT DISTINCT FROM row_value_predicand_4
         ::= 'IS' 'NOT'? 'DISTINCT' 'FROM' row_value_predicand_4

row_value_predicand_3#

row_value_predicand
         ::= row_value_predicand
Not referenced by any.

row_value_predicand_4#

row_value_predicand
         ::= row_value_predicand

member_predicate#

member_predicate_part_2
         ::= member_predicate_part_2
Referenced by:

member_predicate_part_2#

NOT MEMBER OF multiset_value_expression
         ::= 'NOT'? 'MEMBER' 'OF'? multiset_value_expression

submultiset_predicate#

submultiset_predicate_part_2
         ::= submultiset_predicate_part_2
Referenced by:

submultiset_predicate_part_2#

NOT SUBMULTISET OF multiset_value_expression
         ::= 'NOT'? 'SUBMULTISET' 'OF'? multiset_value_expression

set_predicate#

set_predicate_part_2
         ::= set_predicate_part_2
Referenced by:

set_predicate_part_2#

IS NOT A SET
         ::= 'IS' 'NOT'? 'A' 'SET'

type_predicate#

type_predicate_part_2
         ::= type_predicate_part_2
Referenced by:

type_predicate_part_2#

IS NOT OF ( type_list )
         ::= 'IS' 'NOT'? 'OF' '(' type_list ')'

type_list#

user_defined_type_specification ,
Referenced by:

user_defined_type_specification#

exclusive_user_defined_type_specification inclusive_user_defined_type_specification
Referenced by:

inclusive_user_defined_type_specification#

path_resolved_user_defined_type_name

exclusive_user_defined_type_specification#

ONLY path_resolved_user_defined_type_name
         ::= 'ONLY' path_resolved_user_defined_type_name

search_condition#

boolean_value_expression
         ::= boolean_value_expression

interval_qualifier#

start_field TO end_field single_datetime_field
         ::= start_field 'TO' end_field
           | single_datetime_field

start_field#

non_second_primary_datetime_field ( interval_leading_field_precision )

end_field#

non_second_primary_datetime_field SECOND ( interval_fractional_seconds_precision )
         ::= non_second_primary_datetime_field
           | 'SECOND' ( '(' interval_fractional_seconds_precision ')' )?
Referenced by:

single_datetime_field#

start_field SECOND ( interval_leading_field_precision , interval_fractional_seconds_precision )
         ::= start_field
           | 'SECOND' ( '(' interval_leading_field_precision ( ',' interval_fractional_seconds_precision )? ')' )?
Referenced by:

primary_datetime_field#

non_second_primary_datetime_field SECOND
         ::= non_second_primary_datetime_field
           | 'SECOND'
Referenced by:

non_second_primary_datetime_field#

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

interval_fractional_seconds_precision#

unsigned_integer
         ::= unsigned_integer

interval_leading_field_precision#

unsigned_integer
         ::= unsigned_integer

language_clause#

LANGUAGE language_name
         ::= 'LANGUAGE' language_name

language_name#

ADA C COBOL FORTRAN M MUMPS PASCAL PLI SQL
         ::= 'ADA'
           | 'C'
           | 'COBOL'
           | 'FORTRAN'
           | 'M'
           | 'MUMPS'
           | 'PASCAL'
           | 'PLI'
           | 'SQL'
Referenced by:

path_specification#

PATH schema_name_list
         ::= 'PATH' schema_name_list

schema_name_list#

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

routine_invocation#

routine_name SQL_argument_list
         ::= routine_name SQL_argument_list

routine_name#

schema_name . identifier
         ::= ( schema_name '.' )? identifier
Referenced by:

SQL_argument_list#

( SQL_argument , )
         ::= '(' ( SQL_argument ( ',' SQL_argument )* )? ')'

SQL_argument#

lambda value_expression generalized_expression named_argument_specification contextually_typed_value_specification target_specification
         ::= lambda
           | value_expression generalized_expression?
           | named_argument_specification
           | target_specification
Referenced by:

generalized_expression#

AS path_resolved_user_defined_type_name
         ::= 'AS' path_resolved_user_defined_type_name
Referenced by:

named_argument_specification#

identifier => named_argument_SQL_argument
         ::= identifier '=>' named_argument_SQL_argument
Referenced by:

named_argument_SQL_argument#

value_expression contextually_typed_value_specification target_specification
         ::= value_expression
           | target_specification

character_set_specification#

standard_character_set_name implementation_defined_character_set_name user_defined_character_set_name
         ::= standard_character_set_name
           | user_defined_character_set_name

standard_character_set_name#

character_set_name
         ::= character_set_name

implementation_defined_character_set_name#

character_set_name
         ::= character_set_name

user_defined_character_set_name#

character_set_name
         ::= character_set_name

specific_routine_designator#

SPECIFIC routine_type schema_qualified_name routine_type member_name FOR schema_resolved_user_defined_type_name
         ::= 'SPECIFIC' routine_type schema_qualified_name

routine_type#

ROUTINE FUNCTION PROCEDURE INSTANCE STATIC CONSTRUCTOR METHOD
         ::= 'ROUTINE'
           | 'FUNCTION'
           | 'PROCEDURE'
           | ( 'INSTANCE' | 'STATIC' | 'CONSTRUCTOR' )? 'METHOD'

member_name#

member_name_alternatives data_type_list

member_name_alternatives#

schema_qualified_name identifier
         ::= schema_qualified_name
           | identifier
Referenced by:

data_type_list#

( data_type , )
         ::= '(' ( data_type ( ',' data_type )* )? ')'

collate_clause#

COLLATE schema_qualified_name
         ::= 'COLLATE' schema_qualified_name

constraint_name_definition#

CONSTRAINT schema_qualified_name
         ::= 'CONSTRAINT' schema_qualified_name

constraint_characteristics#

constraint_check_time NOT DEFERRABLE NOT DEFERRABLE constraint_check_time constraint_enforcement constraint_enforcement
         ::= ( constraint_check_time ( 'NOT'? 'DEFERRABLE' )? | 'NOT'? 'DEFERRABLE' constraint_check_time? ) constraint_enforcement?
           | constraint_enforcement

constraint_check_time#

INITIALLY DEFERRED IMMEDIATE
         ::= 'INITIALLY' ( 'DEFERRED' | 'IMMEDIATE' )

constraint_enforcement#

NOT ENFORCED
         ::= 'NOT'? 'ENFORCED'

aggregate_function#

COUNT ( * ) count general_set_function binary_set_function ordered_set_function array_aggregate_function presto_aggregations filter_clause

general_set_function#

set_function_type ( set_quantifier value_expression extra_args_to_agg )
Referenced by:

set_function_type#

computational_operation
         ::= computational_operation
Referenced by:

computational_operation#

AVG MAX MIN SUM EVERY ANY SOME COUNT STDDEV_POP STDDEV_SAMP VAR_SAMP VAR_POP COLLECT FUSION INTERSECTION
         ::= 'AVG'
           | 'MAX'
           | 'MIN'
           | 'SUM'
           | 'EVERY'
           | 'ANY'
           | 'SOME'
           | 'COUNT'
           | 'STDDEV_POP'
           | 'STDDEV_SAMP'
           | 'VAR_SAMP'
           | 'VAR_POP'
           | 'COLLECT'
           | 'FUSION'
           | 'INTERSECTION'
Referenced by:

set_quantifier#

DISTINCT ALL
         ::= 'DISTINCT'
           | 'ALL'

filter_clause#

FILTER ( WHERE search_condition )
         ::= 'FILTER' '(' 'WHERE' search_condition ')'

binary_set_function#

binary_set_function_type ( dependent_variable_expression , independent_variable_expression )
Referenced by:

binary_set_function_type#

COVAR_POP COVAR_SAMP CORR REGR_SLOPE REGR_INTERCEPT REGR_COUNT REGR_R2 REGR_AVGX REGR_AVGY REGR_SXX REGR_SYY REGR_SXY
         ::= 'COVAR_POP'
           | 'COVAR_SAMP'
           | 'CORR'
           | 'REGR_SLOPE'
           | 'REGR_INTERCEPT'
           | 'REGR_COUNT'
           | 'REGR_R2'
           | 'REGR_AVGX'
           | 'REGR_AVGY'
           | 'REGR_SXX'
           | 'REGR_SYY'
           | 'REGR_SXY'
Referenced by:

dependent_variable_expression#

numeric_value_expression
         ::= numeric_value_expression
Referenced by:

independent_variable_expression#

numeric_value_expression
         ::= numeric_value_expression
Referenced by:

ordered_set_function#

hypothetical_set_function inverse_distribution_function
         ::= hypothetical_set_function
           | inverse_distribution_function
Referenced by:

hypothetical_set_function#

rank_function_type ( hypothetical_set_function_value_expression_list ) within_group_specification
Referenced by:

within_group_specification#

WITHIN GROUP ( ORDER BY sort_specification_list )
         ::= 'WITHIN' 'GROUP' '(' 'ORDER' 'BY' sort_specification_list ')'

hypothetical_set_function_value_expression_list#

value_expression ,
         ::= value_expression ( ',' value_expression )*

inverse_distribution_function#

inverse_distribution_function_type ( inverse_distribution_function_argument ) within_group_specification
Referenced by:

inverse_distribution_function_argument#

numeric_value_expression
         ::= numeric_value_expression

inverse_distribution_function_type#

PERCENTILE_CONT PERCENTILE_DISC
         ::= 'PERCENTILE_CONT'
           | 'PERCENTILE_DISC'

array_aggregate_function#

ARRAY_AGG ( DISTINCT value_expression ORDER BY sort_specification_list )
         ::= 'ARRAY_AGG' '(' 'DISTINCT'? value_expression ( 'ORDER' 'BY' sort_specification_list )? ')'
Referenced by:

sort_specification_list#

sort_specification ,
         ::= sort_specification ( ',' sort_specification )*

sort_specification#

sort_key ordering_specification null_ordering
Referenced by:

sort_key#

value_expression
Referenced by:

ordering_specification#

ASC DESC
         ::= 'ASC'
           | 'DESC'
Referenced by:

null_ordering#

NULLS FIRST LAST
         ::= 'NULLS' ( 'FIRST' | 'LAST' )
Referenced by:

schema_definition#

CREATE SCHEMA if_not_exists schema_name_clause schema_character_set_or_path schema_element

schema_character_set_or_path#

schema_character_set_specification schema_path_specification schema_path_specification schema_character_set_specification
Referenced by:

schema_name_clause#

schema_name AUTHORIZATION identifier AUTHORIZATION identifier
         ::= schema_name ( 'AUTHORIZATION' identifier )?
           | 'AUTHORIZATION' identifier
Referenced by:

schema_character_set_specification#

DEFAULT CHARACTER SET character_set_specification
         ::= 'DEFAULT' 'CHARACTER' 'SET' character_set_specification

schema_path_specification#

path_specification
         ::= path_specification

schema_element#

table_definition view_definition domain_definition character_set_definition collation_definition transliteration_definition assertion_definition trigger_definition user_defined_type_definition user_defined_cast_definition user_defined_ordering_definition transform_definition schema_routine sequence_generator_definition grant_statement role_definition
         ::= table_definition
           | view_definition
           | domain_definition
           | character_set_definition
           | collation_definition
           | transliteration_definition
           | assertion_definition
           | trigger_definition
           | user_defined_type_definition
           | user_defined_cast_definition
           | user_defined_ordering_definition
           | transform_definition
           | schema_routine
           | sequence_generator_definition
           | grant_statement
           | role_definition
Referenced by:

drop_schema_statement#

DROP SCHEMA schema_name drop_behavior
         ::= 'DROP' 'SCHEMA' schema_name drop_behavior

drop_behavior#

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

table_definition#

CREATE table_scope TABLE if_not_exists table_name table_description WITH system_versioning_clause table_attributes table_contents_source table_contents_source table_description WITH system_versioning_clause table_attributes ON COMMIT table_commit_action ROWS

table_contents_source#

typed_table_clause as_subquery_clause table_element_list
         ::= typed_table_clause
           | as_subquery_clause
           | table_element_list
Referenced by:

table_scope#

global_or_local TEMPORARY
         ::= global_or_local 'TEMPORARY'
Referenced by:

global_or_local#

GLOBAL LOCAL
         ::= 'GLOBAL'
           | 'LOCAL'
Referenced by:

system_versioning_clause#

SYSTEM VERSIONING retention_period_specification
         ::= 'SYSTEM' 'VERSIONING' retention_period_specification?

retention_period_specification#

KEEP VERSIONS FOREVER FOR length_of_time time_unit
         ::= 'KEEP' 'VERSIONS' ( 'FOREVER' | 'FOR' length_of_time time_unit )

length_of_time#

unsigned_integer
         ::= unsigned_integer

time_unit#

SECOND SECONDS MINUTE MINUTES HOUR HOURS DAY DAYS MONTH MONTHS YEAR YEARS
         ::= 'SECOND'
           | 'SECONDS'
           | 'MINUTE'
           | 'MINUTES'
           | 'HOUR'
           | 'HOURS'
           | 'DAY'
           | 'DAYS'
           | 'MONTH'
           | 'MONTHS'
           | 'YEAR'
           | 'YEARS'

table_commit_action#

PRESERVE DELETE
         ::= 'PRESERVE'
           | 'DELETE'

table_element_list#

( table_element , )
         ::= '(' table_element ( ',' table_element )* ')'

table_element#

column_definition table_constraint_definition like_clause
         ::= column_definition
           | table_constraint_definition
           | like_clause
Referenced by:

typed_table_clause#

OF path_resolved_user_defined_type_name subtable_clause typed_table_element_list
Referenced by:

typed_table_element_list#

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

typed_table_element#

column_options table_constraint_definition self_referencing_column_specification
         ::= column_options
           | table_constraint_definition
Referenced by:

self_referencing_column_specification#

REF IS identifier reference_generation
         ::= 'REF' 'IS' identifier reference_generation?

reference_generation#

SYSTEM USER GENERATED DERIVED
         ::= ( 'SYSTEM' | 'USER' ) 'GENERATED'
           | 'DERIVED'

column_options#

identifier WITH OPTIONS column_option_list
         ::= identifier 'WITH' 'OPTIONS' column_option_list
Referenced by:

column_option_list#

scope_clause default_clause column_constraint_definition
Referenced by:

subtable_clause#

UNDER supertable_clause
         ::= 'UNDER' supertable_clause
Referenced by:

supertable_clause#

supertable_name
         ::= supertable_name
Referenced by:

supertable_name#

table_name
         ::= table_name
Referenced by:

like_clause#

LIKE table_name like_options
         ::= 'LIKE' table_name like_options?
Referenced by:

like_options#

like_option
         ::= like_option+
Referenced by:

like_option#

identity_option column_default_option generation_option INCLUDING PROPERTIES
         ::= identity_option
           | column_default_option
           | generation_option
           | 'INCLUDING' 'PROPERTIES'
Referenced by:

identity_option#

INCLUDING EXCLUDING IDENTITY
         ::= ( 'INCLUDING' | 'EXCLUDING' ) 'IDENTITY'
Referenced by:

column_default_option#

INCLUDING EXCLUDING DEFAULTS
         ::= ( 'INCLUDING' | 'EXCLUDING' ) 'DEFAULTS'
Referenced by:

generation_option#

INCLUDING EXCLUDING GENERATED
         ::= ( 'INCLUDING' | 'EXCLUDING' ) 'GENERATED'
Referenced by:

as_subquery_clause#

( column_name_list ) WITH table_attributes AS subquery query_expression with_or_without_data
         ::= ( '(' column_name_list ')' )? ( 'WITH' table_attributes )? 'AS' ( subquery | query_expression ) with_or_without_data?
Referenced by:

with_or_without_data#

WITH NO DATA
         ::= 'WITH' 'NO'? 'DATA'
Referenced by:

column_definition#

identifier data_type_or_schema_qualified_name default_clause identity_column_specification generation_clause system_version_start_column_specification system_version_end_column_specification column_constraint_definition collate_clause column_description

data_type_or_schema_qualified_name#

data_type schema_qualified_name
         ::= data_type
           | schema_qualified_name
Referenced by:

system_version_start_column_specification#

timestamp_generation_rule AS SYSTEM VERSION START
         ::= timestamp_generation_rule 'AS' 'SYSTEM' 'VERSION' 'START'
Referenced by:

system_version_end_column_specification#

timestamp_generation_rule AS SYSTEM VERSION END
         ::= timestamp_generation_rule 'AS' 'SYSTEM' 'VERSION' 'END'
Referenced by:

timestamp_generation_rule#

GENERATED ALWAYS
         ::= 'GENERATED' 'ALWAYS'

column_constraint_definition#

constraint_name_definition column_constraint constraint_characteristics

column_constraint#

NOT NULL unique_specification references_specification check_constraint_definition
         ::= 'NOT' 'NULL'
           | unique_specification
           | references_specification
           | check_constraint_definition

identity_column_specification#

GENERATED ALWAYS BY DEFAULT AS IDENTITY ( common_sequence_generator_options )
         ::= 'GENERATED' ( 'ALWAYS' | 'BY' 'DEFAULT' ) 'AS' 'IDENTITY' ( '(' common_sequence_generator_options ')' )?
Referenced by:

generation_clause#

generation_rule AS generation_expression
         ::= generation_rule 'AS' generation_expression
Referenced by:

generation_rule#

GENERATED ALWAYS
         ::= 'GENERATED' 'ALWAYS'
Referenced by:

generation_expression#

( value_expression )
         ::= '(' value_expression ')'
Referenced by:

default_clause#

DEFAULT default_option
         ::= 'DEFAULT' default_option

default_option#

literal datetime_value_function USER CURRENT_USER CURRENT_ROLE SESSION_USER SYSTEM_USER CURRENT_CATALOG CURRENT_SCHEMA CURRENT_PATH implicitly_typed_value_specification
         ::= literal
           | datetime_value_function
           | 'USER'
           | 'CURRENT_USER'
           | 'CURRENT_ROLE'
           | 'SESSION_USER'
           | 'SYSTEM_USER'
           | 'CURRENT_CATALOG'
           | 'CURRENT_SCHEMA'
           | 'CURRENT_PATH'
           | implicitly_typed_value_specification
Referenced by:

table_constraint_definition#

constraint_name_definition table_constraint constraint_characteristics

table_constraint#

unique_constraint_definition referential_constraint_definition check_constraint_definition
         ::= unique_constraint_definition
           | referential_constraint_definition
           | check_constraint_definition

unique_constraint_definition#

unique_specification ( unique_column_list ) UNIQUE VALUE
         ::= unique_specification '(' unique_column_list ')'
           | 'UNIQUE' 'VALUE'
Referenced by:

unique_specification#

UNIQUE PRIMARY KEY
         ::= 'UNIQUE'
           | 'PRIMARY' 'KEY'

unique_column_list#

column_name_list
         ::= column_name_list

referential_constraint_definition#

FOREIGN KEY ( referencing_columns ) references_specification
         ::= 'FOREIGN' 'KEY' '(' referencing_columns ')' references_specification
Referenced by:

references_specification#

REFERENCES referenced_table_and_columns MATCH match_type referential_triggered_action
         ::= 'REFERENCES' referenced_table_and_columns ( 'MATCH' match_type )? referential_triggered_action?

match_type#

FULL PARTIAL SIMPLE
         ::= 'FULL'
           | 'PARTIAL'
           | 'SIMPLE'
Referenced by:

referencing_columns#

reference_column_list
         ::= reference_column_list

referenced_table_and_columns#

table_name ( reference_column_list )
         ::= table_name ( '(' reference_column_list ')' )?
Referenced by:

reference_column_list#

column_name_list
         ::= column_name_list

referential_triggered_action#

update_rule delete_rule delete_rule update_rule
         ::= update_rule delete_rule?
           | delete_rule update_rule?
Referenced by:

update_rule#

ON UPDATE referential_action
         ::= 'ON' 'UPDATE' referential_action

delete_rule#

ON DELETE referential_action
         ::= 'ON' 'DELETE' referential_action

referential_action#

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

check_constraint_definition#

CHECK ( search_condition )
         ::= 'CHECK' '(' search_condition ')'

alter_table_statement#

ALTER TABLE table_name alter_table_action
         ::= 'ALTER' 'TABLE' table_name alter_table_action

alter_table_action#

add_column_definition alter_column_definition drop_column_definition add_table_constraint_definition alter_table_constraint_definition drop_table_constraint_definition add_system_versioning_clause alter_system_versioning_clause drop_system_versioning_clause
         ::= add_column_definition
           | alter_column_definition
           | drop_column_definition
           | add_table_constraint_definition
           | alter_table_constraint_definition
           | drop_table_constraint_definition
           | add_system_versioning_clause
           | alter_system_versioning_clause
           | drop_system_versioning_clause
Referenced by:

add_column_definition#

ADD COLUMN column_definition
         ::= 'ADD' 'COLUMN'? column_definition
Referenced by:

alter_column_definition#

ALTER COLUMN identifier alter_column_action
         ::= 'ALTER' 'COLUMN'? identifier alter_column_action
Referenced by:

alter_column_action#

set_column_default_clause drop_column_default_clause set_column_not_null_clause drop_column_not_null_clause add_column_scope_clause drop_column_scope_clause alter_column_data_type_clause alter_identity_column_specification drop_identity_property_clause drop_column_generation_expression_clause
         ::= set_column_default_clause
           | drop_column_default_clause
           | set_column_not_null_clause
           | drop_column_not_null_clause
           | add_column_scope_clause
           | drop_column_scope_clause
           | alter_column_data_type_clause
           | alter_identity_column_specification
           | drop_identity_property_clause
Referenced by:

set_column_default_clause#

SET default_clause
         ::= 'SET' default_clause
Referenced by:

drop_column_default_clause#

DROP DEFAULT
         ::= 'DROP' 'DEFAULT'
Referenced by:

set_column_not_null_clause#

SET NOT NULL
         ::= 'SET' 'NOT' 'NULL'
Referenced by:

drop_column_not_null_clause#

DROP NOT NULL
         ::= 'DROP' 'NOT' 'NULL'
Referenced by:

add_column_scope_clause#

ADD scope_clause
         ::= 'ADD' scope_clause
Referenced by:

drop_column_scope_clause#

DROP SCOPE drop_behavior
         ::= 'DROP' 'SCOPE' drop_behavior
Referenced by:

alter_column_data_type_clause#

SET DATA TYPE data_type
         ::= 'SET' 'DATA' 'TYPE' data_type
Referenced by:

alter_identity_column_specification#

set_identity_column_generation_clause alter_identity_column_option alter_identity_column_option
Referenced by:

set_identity_column_generation_clause#

SET GENERATED ALWAYS BY DEFAULT
         ::= 'SET' 'GENERATED' ( 'ALWAYS' | 'BY' 'DEFAULT' )

alter_identity_column_option#

alter_sequence_generator_restart_option SET basic_sequence_generator_option
           | 'SET' basic_sequence_generator_option

drop_identity_property_clause#

DROP IDENTITY
         ::= 'DROP' 'IDENTITY'
Referenced by:

drop_column_generation_expression_clause#

DROP EXPRESSION
         ::= 'DROP' 'EXPRESSION'
Referenced by:

drop_column_definition#

DROP COLUMN identifier drop_behavior
         ::= 'DROP' 'COLUMN'? identifier drop_behavior
Referenced by:

add_table_constraint_definition#

ADD table_constraint_definition
         ::= 'ADD' table_constraint_definition
Referenced by:

alter_table_constraint_definition#

ALTER CONSTRAINT schema_qualified_name constraint_enforcement
         ::= 'ALTER' 'CONSTRAINT' schema_qualified_name constraint_enforcement
Referenced by:

drop_table_constraint_definition#

DROP CONSTRAINT schema_qualified_name drop_behavior
         ::= 'DROP' 'CONSTRAINT' schema_qualified_name drop_behavior
Referenced by:

add_system_versioning_clause#

ADD system_versioning_clause add_system_version_column_list
Referenced by:

add_system_version_column_list#

ADD COLUMN column_definition_1 ADD COLUMN column_definition_2
         ::= 'ADD' 'COLUMN'? column_definition_1 'ADD' 'COLUMN'? column_definition_2

column_definition_1#

column_definition
         ::= column_definition

column_definition_2#

column_definition
         ::= column_definition

alter_system_versioning_clause#

ALTER SYSTEM VERSIONING retention_period_specification
         ::= 'ALTER' 'SYSTEM' 'VERSIONING' retention_period_specification
Referenced by:

drop_system_versioning_clause#

DROP SYSTEM VERSIONING drop_behavior
         ::= 'DROP' 'SYSTEM' 'VERSIONING' drop_behavior
Referenced by:

drop_table_statement#

DROP TABLE IF EXISTS table_name drop_behavior
         ::= 'DROP' 'TABLE' ( 'IF' 'EXISTS' )? table_name drop_behavior?

view_definition#

CREATE or_replace RECURSIVE VIEW table_name view_specification AS query_expression WITH levels_clause CHECK OPTION
         ::= 'CREATE' or_replace? 'RECURSIVE'? 'VIEW' table_name view_specification 'AS' query_expression ( 'WITH' levels_clause? 'CHECK' 'OPTION' )?

view_specification#

regular_view_specification referenceable_view_specification
         ::= regular_view_specification
           | referenceable_view_specification
Referenced by:

regular_view_specification#

( view_column_list )
         ::= ( '(' view_column_list ')' )?
Referenced by:

referenceable_view_specification#

OF path_resolved_user_defined_type_name subview_clause view_element_list
Referenced by:

subview_clause#

UNDER table_name
         ::= 'UNDER' table_name

view_element_list#

( view_element , )
         ::= '(' view_element ( ',' view_element )* ')'

view_element#

self_referencing_column_specification view_column_option
           | view_column_option
Referenced by:

view_column_option#

identifier WITH OPTIONS scope_clause
         ::= identifier 'WITH' 'OPTIONS' scope_clause
Referenced by:

levels_clause#

CASCADED LOCAL
         ::= 'CASCADED'
           | 'LOCAL'
Referenced by:

view_column_list#

column_name_list
         ::= column_name_list

drop_view_statement#

DROP VIEW table_name drop_behavior
         ::= 'DROP' 'VIEW' table_name drop_behavior

domain_definition#

CREATE DOMAIN schema_qualified_name AS predefined_type default_clause domain_constraint collate_clause

domain_constraint#

constraint_name_definition check_constraint_definition constraint_characteristics

alter_domain_statement#

ALTER DOMAIN schema_qualified_name alter_domain_action
         ::= 'ALTER' 'DOMAIN' schema_qualified_name alter_domain_action

alter_domain_action#

set_domain_default_clause drop_domain_default_clause add_domain_constraint_definition drop_domain_constraint_definition
         ::= set_domain_default_clause
           | drop_domain_default_clause
           | add_domain_constraint_definition
           | drop_domain_constraint_definition
Referenced by:

set_domain_default_clause#

SET default_clause
         ::= 'SET' default_clause
Referenced by:

drop_domain_default_clause#

DROP DEFAULT
         ::= 'DROP' 'DEFAULT'
Referenced by:

add_domain_constraint_definition#

ADD domain_constraint
         ::= 'ADD' domain_constraint
Referenced by:

drop_domain_constraint_definition#

DROP CONSTRAINT schema_qualified_name
         ::= 'DROP' 'CONSTRAINT' schema_qualified_name
Referenced by:

drop_domain_statement#

DROP DOMAIN schema_qualified_name drop_behavior
         ::= 'DROP' 'DOMAIN' schema_qualified_name drop_behavior

character_set_definition#

CREATE CHARACTER SET character_set_name AS character_set_source collate_clause
         ::= 'CREATE' 'CHARACTER' 'SET' character_set_name 'AS'? character_set_source collate_clause?

character_set_source#

GET character_set_specification
         ::= 'GET' character_set_specification
Referenced by:

drop_character_set_statement#

DROP CHARACTER SET character_set_name
         ::= 'DROP' 'CHARACTER' 'SET' character_set_name

collation_definition#

CREATE COLLATION schema_qualified_name FOR character_set_specification FROM schema_qualified_name pad_characteristic
         ::= 'CREATE' 'COLLATION' schema_qualified_name 'FOR' character_set_specification 'FROM' schema_qualified_name pad_characteristic?

pad_characteristic#

NO PAD PAD SPACE
         ::= 'NO' 'PAD'
           | 'PAD' 'SPACE'
Referenced by:

drop_collation_statement#

DROP COLLATION schema_qualified_name drop_behavior
         ::= 'DROP' 'COLLATION' schema_qualified_name drop_behavior

transliteration_definition#

CREATE TRANSLATION schema_qualified_name FOR source_character_set_specification TO target_character_set_specification FROM transliteration_source

source_character_set_specification#

character_set_specification
         ::= character_set_specification

target_character_set_specification#

character_set_specification
         ::= character_set_specification

transliteration_source#

schema_qualified_name transliteration_routine
         ::= schema_qualified_name
           | transliteration_routine

transliteration_routine#

specific_routine_designator
         ::= specific_routine_designator
Referenced by:

drop_transliteration_statement#

DROP TRANSLATION schema_qualified_name
         ::= 'DROP' 'TRANSLATION' schema_qualified_name

assertion_definition#

CREATE ASSERTION schema_qualified_name CHECK ( search_condition ) constraint_characteristics
         ::= 'CREATE' 'ASSERTION' schema_qualified_name 'CHECK' '(' search_condition ')' constraint_characteristics?

drop_assertion_statement#

DROP ASSERTION schema_qualified_name drop_behavior
         ::= 'DROP' 'ASSERTION' schema_qualified_name drop_behavior?

trigger_definition#

CREATE TRIGGER schema_qualified_name trigger_action_time trigger_event ON table_name REFERENCING transition_table_or_variable_list triggered_action

trigger_action_time#

BEFORE AFTER INSTEAD OF
         ::= 'BEFORE'
           | 'AFTER'
           | 'INSTEAD' 'OF'
Referenced by:

trigger_event#

INSERT DELETE UPDATE OF trigger_column_list
         ::= 'INSERT'
           | 'DELETE'
           | 'UPDATE' ( 'OF' trigger_column_list )?
Referenced by:

trigger_column_list#

column_name_list
         ::= column_name_list
Referenced by:

triggered_action#

FOR EACH ROW STATEMENT triggered_when_clause triggered_SQL_statement
         ::= ( 'FOR' 'EACH' ( 'ROW' | 'STATEMENT' ) )? triggered_when_clause? triggered_SQL_statement
Referenced by:

triggered_when_clause#

WHEN ( search_condition )
         ::= 'WHEN' '(' search_condition ')'
Referenced by:

triggered_SQL_statement#

SQL_procedure_statement BEGIN ATOMIC SQL_procedure_statement ; END
         ::= SQL_procedure_statement
           | 'BEGIN' 'ATOMIC' ( SQL_procedure_statement ';' )+ 'END'
Referenced by:

transition_table_or_variable_list#

transition_table_or_variable
         ::= transition_table_or_variable+
Referenced by:

transition_table_or_variable#

OLD NEW ROW TABLE AS identifier
         ::= ( 'OLD' | 'NEW' ) ( 'ROW' | 'TABLE' )? 'AS'? identifier

drop_trigger_statement#

DROP TRIGGER schema_qualified_name
         ::= 'DROP' 'TRIGGER' schema_qualified_name

user_defined_type_definition#

CREATE TYPE user_defined_type_body
         ::= 'CREATE' 'TYPE' user_defined_type_body

user_defined_type_body#

schema_resolved_user_defined_type_name subtype_clause AS representation user_defined_type_option_list method_specification_list

user_defined_type_option_list#

user_defined_type_option
         ::= user_defined_type_option+
Referenced by:

user_defined_type_option#

instantiable_clause finality reference_type_specification cast_to_ref cast_to_type cast_to_distinct cast_to_source
         ::= instantiable_clause
           | finality
           | reference_type_specification
           | cast_to_ref
           | cast_to_type
           | cast_to_distinct
           | cast_to_source

subtype_clause#

UNDER supertype_name
         ::= 'UNDER' supertype_name
Referenced by:

supertype_name#

path_resolved_user_defined_type_name
Referenced by:

representation#

predefined_type data_type member_list
         ::= predefined_type
           | data_type
           | member_list
Referenced by:

member_list#

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

member#

attribute_definition
Referenced by:

instantiable_clause#

NOT INSTANTIABLE
         ::= 'NOT'? 'INSTANTIABLE'
Referenced by:

finality#

NOT FINAL
finality ::= 'NOT'? 'FINAL'
Referenced by:

reference_type_specification#

user_defined_representation derived_representation system_generated_representation
         ::= user_defined_representation
           | derived_representation
           | system_generated_representation
Referenced by:

user_defined_representation#

REF USING predefined_type
         ::= 'REF' 'USING' predefined_type

derived_representation#

REF FROM list_of_attributes
         ::= 'REF' 'FROM' list_of_attributes

system_generated_representation#

REF IS SYSTEM GENERATED
         ::= 'REF' 'IS' 'SYSTEM' 'GENERATED'

cast_to_ref#

CAST ( SOURCE AS REF ) WITH identifier
         ::= 'CAST' '(' 'SOURCE' 'AS' 'REF' ')' 'WITH' identifier
Referenced by:

cast_to_type#

CAST ( REF AS SOURCE ) WITH identifier
         ::= 'CAST' '(' 'REF' 'AS' 'SOURCE' ')' 'WITH' identifier
Referenced by:

list_of_attributes#

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

cast_to_distinct#

CAST ( SOURCE AS DISTINCT ) WITH identifier
         ::= 'CAST' '(' 'SOURCE' 'AS' 'DISTINCT' ')' 'WITH' identifier
Referenced by:

cast_to_source#

CAST ( DISTINCT AS SOURCE ) WITH identifier
         ::= 'CAST' '(' 'DISTINCT' 'AS' 'SOURCE' ')' 'WITH' identifier
Referenced by:

method_specification_list#

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

method_specification#

original_method_specification overriding_method_specification
         ::= original_method_specification
           | overriding_method_specification

original_method_specification#

partial_method_specification SELF AS RESULT SELF AS LOCATOR method_characteristics
         ::= partial_method_specification ( 'SELF' 'AS' 'RESULT' )? ( 'SELF' 'AS' 'LOCATOR' )? method_characteristics?

overriding_method_specification#

OVERRIDING partial_method_specification
         ::= 'OVERRIDING' partial_method_specification

partial_method_specification#

INSTANCE STATIC CONSTRUCTOR METHOD identifier SQL_parameter_declaration_list returns_clause SPECIFIC specific_identifier
         ::= ( 'INSTANCE' | 'STATIC' | 'CONSTRUCTOR' )? 'METHOD' identifier SQL_parameter_declaration_list returns_clause ( 'SPECIFIC' specific_identifier )?

specific_identifier#

schema_name . identifier
         ::= ( schema_name '.' )? identifier

method_characteristics#

method_characteristic
         ::= method_characteristic+

method_characteristic#

language_clause parameter_style_clause deterministic_characteristic SQL_data_access_indication null_call_clause
         ::= language_clause
           | parameter_style_clause
           | deterministic_characteristic
           | SQL_data_access_indication
           | null_call_clause
Referenced by:

attribute_definition#

identifier data_type attribute_default collate_clause

attribute_default#

default_clause
         ::= default_clause
Referenced by:

alter_type_statement#

ALTER TYPE schema_resolved_user_defined_type_name alter_type_action
         ::= 'ALTER' 'TYPE' schema_resolved_user_defined_type_name alter_type_action

alter_type_action#

add_attribute_definition drop_attribute_definition add_original_method_specification add_overriding_method_specification drop_method_specification
         ::= add_attribute_definition
           | drop_attribute_definition
           | add_original_method_specification
           | add_overriding_method_specification
           | drop_method_specification
Referenced by:

add_attribute_definition#

ADD ATTRIBUTE attribute_definition
         ::= 'ADD' 'ATTRIBUTE' attribute_definition
Referenced by:

drop_attribute_definition#

DROP ATTRIBUTE identifier RESTRICT
         ::= 'DROP' 'ATTRIBUTE' identifier 'RESTRICT'
Referenced by:

add_original_method_specification#

ADD original_method_specification
         ::= 'ADD' original_method_specification
Referenced by:

add_overriding_method_specification#

ADD overriding_method_specification
         ::= 'ADD' overriding_method_specification
Referenced by:

drop_method_specification#

DROP specific_method_specification_designator RESTRICT
         ::= 'DROP' specific_method_specification_designator 'RESTRICT'
Referenced by:

specific_method_specification_designator#

INSTANCE STATIC CONSTRUCTOR METHOD identifier data_type_list
         ::= ( 'INSTANCE' | 'STATIC' | 'CONSTRUCTOR' )? 'METHOD' identifier data_type_list

drop_data_type_statement#

DROP TYPE schema_resolved_user_defined_type_name drop_behavior
         ::= 'DROP' 'TYPE' schema_resolved_user_defined_type_name drop_behavior

SQL_invoked_routine#

schema_routine
         ::= schema_routine

schema_routine#

schema_procedure schema_function
         ::= schema_procedure
           | schema_function

schema_procedure#

CREATE SQL_invoked_procedure
         ::= 'CREATE' SQL_invoked_procedure
Referenced by:

schema_function#

CREATE or_replace SQL_invoked_function
         ::= 'CREATE' or_replace? SQL_invoked_function
Referenced by:

SQL_invoked_procedure#

PROCEDURE schema_qualified_name SQL_parameter_declaration_list routine_characteristics routine_body
Referenced by:

SQL_invoked_function#

function_specification method_specification_designator routine_body
Referenced by:

SQL_parameter_declaration_list#

( SQL_parameter_declaration , )
         ::= '(' ( SQL_parameter_declaration ( ',' SQL_parameter_declaration )* )? ')'

SQL_parameter_declaration#

parameter_mode identifier parameter_type RESULT DEFAULT parameter_default
         ::= parameter_mode? identifier? parameter_type 'RESULT'? ( 'DEFAULT' parameter_default )?

parameter_default#

value_expression contextually_typed_value_specification
         ::= value_expression

parameter_mode#

IN OUT INOUT
         ::= 'IN'
           | 'OUT'
           | 'INOUT'

parameter_type#

data_type locator_indication
         ::= data_type locator_indication?

locator_indication#

AS LOCATOR
         ::= 'AS' 'LOCATOR'

function_specification#

FUNCTION schema_qualified_name SQL_parameter_declaration_list returns_clause routine_description routine_characteristics dispatch_clause
Referenced by:

method_specification_designator#

SPECIFIC METHOD specific_identifier INSTANCE STATIC CONSTRUCTOR METHOD identifier SQL_parameter_declaration_list returns_clause FOR schema_resolved_user_defined_type_name
         ::= 'SPECIFIC' 'METHOD' specific_identifier
           | ( 'INSTANCE' | 'STATIC' | 'CONSTRUCTOR' )? 'METHOD' identifier SQL_parameter_declaration_list returns_clause? 'FOR' schema_resolved_user_defined_type_name
Referenced by:

routine_characteristics#

routine_characteristic
         ::= routine_characteristic*

routine_characteristic#

language_clause parameter_style_clause SPECIFIC schema_qualified_name deterministic_characteristic SQL_data_access_indication null_call_clause returned_result_sets_characteristic savepoint_level_indication
         ::= language_clause
           | parameter_style_clause
           | 'SPECIFIC' schema_qualified_name
           | deterministic_characteristic
           | SQL_data_access_indication
           | null_call_clause
           | returned_result_sets_characteristic
           | savepoint_level_indication
Referenced by:

savepoint_level_indication#

NEW OLD SAVEPOINT LEVEL
         ::= ( 'NEW' | 'OLD' ) 'SAVEPOINT' 'LEVEL'
Referenced by:

returned_result_sets_characteristic#

DYNAMIC RESULT SETS maximum_returned_result_sets
         ::= 'DYNAMIC' 'RESULT' 'SETS' maximum_returned_result_sets

parameter_style_clause#

PARAMETER STYLE parameter_style
         ::= 'PARAMETER' 'STYLE' parameter_style

dispatch_clause#

STATIC DISPATCH
         ::= 'STATIC' 'DISPATCH'
Referenced by:

returns_clause#

RETURNS returns_type
         ::= 'RETURNS' returns_type

returns_type#

returns_data_type result_cast returns_table_type
         ::= returns_data_type result_cast?
           | returns_table_type
Referenced by:

returns_table_type#

TABLE table_function_column_list
         ::= 'TABLE' table_function_column_list
Referenced by:

table_function_column_list#

( table_function_column_list_element , )
Referenced by:

table_function_column_list_element#

identifier data_type
         ::= identifier data_type

result_cast#

CAST FROM result_cast_from_type
         ::= 'CAST' 'FROM' result_cast_from_type
Referenced by:

result_cast_from_type#

data_type locator_indication
         ::= data_type locator_indication?
Referenced by:

returns_data_type#

data_type locator_indication
         ::= data_type locator_indication?
Referenced by:

routine_body#

SQL_routine_spec external_body_reference
         ::= SQL_routine_spec
           | external_body_reference

SQL_routine_spec#

rights_clause SQL_routine_body
         ::= rights_clause? SQL_routine_body
Referenced by:

rights_clause#

SQL SECURITY INVOKER DEFINER
         ::= 'SQL' 'SECURITY' ( 'INVOKER' | 'DEFINER' )
Referenced by:

SQL_routine_body#

SQL_procedure_statement
         ::= SQL_procedure_statement
Referenced by:

external_body_reference#

EXTERNAL NAME external_routine_name parameter_style_clause transform_group_specification external_security_clause
Referenced by:

external_security_clause#

EXTERNAL SECURITY DEFINER INVOKER IMPLEMENTATION DEFINED
         ::= 'EXTERNAL' 'SECURITY' ( 'DEFINER' | 'INVOKER' | 'IMPLEMENTATION' 'DEFINED' )
Referenced by:

parameter_style#

SQL GENERAL
         ::= 'SQL'
           | 'GENERAL'
Referenced by:

deterministic_characteristic#

NOT DETERMINISTIC
         ::= 'NOT'? 'DETERMINISTIC'

SQL_data_access_indication#

NO CONTAINS SQL READS MODIFIES SQL DATA
         ::= ( 'NO' | 'CONTAINS' ) 'SQL'
           | ( 'READS' | 'MODIFIES' ) 'SQL' 'DATA'

null_call_clause#

RETURNS NULL CALLED ON NULL INPUT
         ::= ( 'RETURNS' 'NULL' | 'CALLED' ) 'ON' 'NULL' 'INPUT'

maximum_returned_result_sets#

unsigned_integer
         ::= unsigned_integer

transform_group_specification#

TRANSFORM GROUP single_group_specification multiple_group_specification
         ::= 'TRANSFORM' 'GROUP' ( single_group_specification | multiple_group_specification )

single_group_specification#

identifier
         ::= identifier

multiple_group_specification#

group_specification ,
         ::= group_specification ( ',' group_specification )*

group_specification#

identifier FOR TYPE path_resolved_user_defined_type_name
         ::= identifier 'FOR' 'TYPE' path_resolved_user_defined_type_name

alter_routine_statement#

ALTER specific_routine_designator alter_routine_characteristics RESTRICT
         ::= 'ALTER' specific_routine_designator alter_routine_characteristics 'RESTRICT'

alter_routine_characteristics#

alter_routine_characteristic
         ::= alter_routine_characteristic+
Referenced by:

alter_routine_characteristic#

language_clause parameter_style_clause SQL_data_access_indication null_call_clause returned_result_sets_characteristic NAME external_routine_name
         ::= language_clause
           | parameter_style_clause
           | SQL_data_access_indication
           | null_call_clause
           | returned_result_sets_characteristic
           | 'NAME' external_routine_name

drop_routine_statement#

DROP specific_routine_designator drop_behavior
         ::= 'DROP' specific_routine_designator drop_behavior

user_defined_cast_definition#

CREATE CAST ( source_data_type AS target_data_type ) WITH cast_function AS ASSIGNMENT
         ::= 'CREATE' 'CAST' '(' source_data_type 'AS' target_data_type ')' 'WITH' cast_function ( 'AS' 'ASSIGNMENT' )?

cast_function#

specific_routine_designator
         ::= specific_routine_designator

source_data_type#

data_type
         ::= data_type

target_data_type#

data_type
         ::= data_type

drop_user_defined_cast_statement#

DROP CAST ( source_data_type AS target_data_type ) drop_behavior
         ::= 'DROP' 'CAST' '(' source_data_type 'AS' target_data_type ')' drop_behavior

user_defined_ordering_definition#

CREATE ORDERING FOR schema_resolved_user_defined_type_name ordering_form
         ::= 'CREATE' 'ORDERING' 'FOR' schema_resolved_user_defined_type_name ordering_form

ordering_form#

equals_ordering_form full_ordering_form
         ::= equals_ordering_form
           | full_ordering_form

equals_ordering_form#

EQUALS ONLY BY ordering_category
         ::= 'EQUALS' 'ONLY' 'BY' ordering_category
Referenced by:

full_ordering_form#

ORDER FULL BY ordering_category
         ::= 'ORDER' 'FULL' 'BY' ordering_category
Referenced by:

ordering_category#

relative_category map_category state_category
         ::= relative_category
           | map_category
           | state_category

relative_category#

RELATIVE WITH relative_function_specification
         ::= 'RELATIVE' 'WITH' relative_function_specification
Referenced by:

map_category#

MAP WITH map_function_specification
         ::= 'MAP' 'WITH' map_function_specification
Referenced by:

state_category#

STATE schema_qualified_name
         ::= 'STATE' schema_qualified_name?
Referenced by:

relative_function_specification#

specific_routine_designator
         ::= specific_routine_designator
Referenced by:

map_function_specification#

specific_routine_designator
         ::= specific_routine_designator
Referenced by:

drop_user_defined_ordering_statement#

DROP ORDERING FOR schema_resolved_user_defined_type_name drop_behavior
         ::= 'DROP' 'ORDERING' 'FOR' schema_resolved_user_defined_type_name drop_behavior

transform_definition#

CREATE TRANSFORM TRANSFORMS FOR schema_resolved_user_defined_type_name transform_group
         ::= 'CREATE' ( 'TRANSFORM' | 'TRANSFORMS' ) 'FOR' schema_resolved_user_defined_type_name transform_group+

transform_group#

identifier ( transform_element_list )
         ::= identifier '(' transform_element_list ')'
Referenced by:

transform_element_list#

transform_element , transform_element
         ::= transform_element ( ',' transform_element )?

transform_element#

to_sql from_sql
         ::= to_sql
           | from_sql
Referenced by:

to_sql#

TO SQL WITH to_sql_function
to_sql   ::= 'TO' 'SQL' 'WITH' to_sql_function
Referenced by:

from_sql#

FROM SQL WITH from_sql_function
from_sql ::= 'FROM' 'SQL' 'WITH' from_sql_function
Referenced by:

to_sql_function#

specific_routine_designator
         ::= specific_routine_designator
Referenced by:

from_sql_function#

specific_routine_designator
         ::= specific_routine_designator
Referenced by:

alter_transform_statement#

ALTER TRANSFORM TRANSFORMS FOR schema_resolved_user_defined_type_name alter_group
         ::= 'ALTER' ( 'TRANSFORM' | 'TRANSFORMS' ) 'FOR' schema_resolved_user_defined_type_name alter_group+

alter_group#

identifier ( alter_transform_action_list )
         ::= identifier '(' alter_transform_action_list ')'

alter_transform_action_list#

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

alter_transform_action#

add_transform_element_list drop_transform_element_list
         ::= add_transform_element_list
           | drop_transform_element_list

add_transform_element_list#

ADD ( transform_element_list )
         ::= 'ADD' '(' transform_element_list ')'
Referenced by:

drop_transform_element_list#

DROP ( transform_kind , transform_kind drop_behavior )
         ::= 'DROP' '(' transform_kind ( ',' transform_kind )? drop_behavior ')'
Referenced by:

transform_kind#

TO FROM SQL
         ::= ( 'TO' | 'FROM' ) 'SQL'

drop_transform_statement#

DROP TRANSFORM TRANSFORMS transforms_to_be_dropped FOR schema_resolved_user_defined_type_name drop_behavior
         ::= 'DROP' ( 'TRANSFORM' | 'TRANSFORMS' ) transforms_to_be_dropped 'FOR' schema_resolved_user_defined_type_name drop_behavior

transforms_to_be_dropped#

ALL transform_group_element
         ::= 'ALL'
           | transform_group_element
Referenced by:

transform_group_element#

identifier
         ::= identifier
Referenced by:

sequence_generator_definition#

CREATE SEQUENCE schema_qualified_name sequence_generator_options
         ::= 'CREATE' 'SEQUENCE' schema_qualified_name sequence_generator_options?

sequence_generator_options#

sequence_generator_option
         ::= sequence_generator_option+

sequence_generator_option#

sequence_generator_data_type_option common_sequence_generator_options
           | common_sequence_generator_options

common_sequence_generator_options#

common_sequence_generator_option
         ::= common_sequence_generator_option+

common_sequence_generator_option#

sequence_generator_start_with_option basic_sequence_generator_option
           | basic_sequence_generator_option

basic_sequence_generator_option#

sequence_generator_increment_by_option sequence_generator_maxvalue_option sequence_generator_minvalue_option sequence_generator_cycle_option
           | sequence_generator_maxvalue_option
           | sequence_generator_minvalue_option
           | sequence_generator_cycle_option

sequence_generator_data_type_option#

AS data_type
         ::= 'AS' data_type

sequence_generator_start_with_option#

START WITH sequence_generator_start_value
         ::= 'START' 'WITH' sequence_generator_start_value

sequence_generator_start_value#

signed_numeric_literal
         ::= signed_numeric_literal

sequence_generator_increment_by_option#

INCREMENT BY sequence_generator_increment
         ::= 'INCREMENT' 'BY' sequence_generator_increment

sequence_generator_increment#

signed_numeric_literal
         ::= signed_numeric_literal

sequence_generator_maxvalue_option#

MAXVALUE sequence_generator_max_value NO MAXVALUE
         ::= 'MAXVALUE' sequence_generator_max_value
           | 'NO' 'MAXVALUE'

sequence_generator_max_value#

signed_numeric_literal
         ::= signed_numeric_literal

sequence_generator_minvalue_option#

MINVALUE sequence_generator_min_value NO MINVALUE
         ::= 'MINVALUE' sequence_generator_min_value
           | 'NO' 'MINVALUE'

sequence_generator_min_value#

signed_numeric_literal
         ::= signed_numeric_literal

sequence_generator_cycle_option#

NO CYCLE
         ::= 'NO'? 'CYCLE'

alter_sequence_generator_statement#

ALTER SEQUENCE schema_qualified_name alter_sequence_generator_options
         ::= 'ALTER' 'SEQUENCE' schema_qualified_name alter_sequence_generator_options

alter_sequence_generator_options#

alter_sequence_generator_option
         ::= alter_sequence_generator_option+

alter_sequence_generator_option#

alter_sequence_generator_restart_option basic_sequence_generator_option
           | basic_sequence_generator_option

alter_sequence_generator_restart_option#

RESTART WITH sequence_generator_restart_value
         ::= 'RESTART' ( 'WITH' sequence_generator_restart_value )?

sequence_generator_restart_value#

signed_numeric_literal
         ::= signed_numeric_literal

drop_sequence_generator_statement#

DROP SEQUENCE schema_qualified_name drop_behavior
         ::= 'DROP' 'SEQUENCE' schema_qualified_name drop_behavior

grant_statement#

grant_privilege_statement grant_role_statement
         ::= grant_privilege_statement
           | grant_role_statement

grant_privilege_statement#

GRANT privileges TO grantee , WITH HIERARCHY OPTION WITH GRANT OPTION GRANTED BY grantor
         ::= 'GRANT' privileges 'TO' grantee ( ',' grantee )* ( 'WITH' 'HIERARCHY' 'OPTION' )? ( 'WITH' 'GRANT' 'OPTION' )? ( 'GRANTED' 'BY' grantor )?
Referenced by:

privileges#

object_privileges ON object_name
         ::= object_privileges 'ON' object_name

object_name#

TABLE table_name DOMAIN COLLATION TRANSLATION SEQUENCE schema_qualified_name CHARACTER SET character_set_name TYPE schema_resolved_user_defined_type_name specific_routine_designator
         ::= 'TABLE'? table_name
           | ( 'DOMAIN' | 'COLLATION' | 'TRANSLATION' | 'SEQUENCE' ) schema_qualified_name
           | 'CHARACTER' 'SET' character_set_name
           | 'TYPE' schema_resolved_user_defined_type_name
           | specific_routine_designator
Referenced by:

object_privileges#

ALL PRIVILEGES action ,
         ::= 'ALL' 'PRIVILEGES'
           | action ( ',' action )*
Referenced by:

action#

SELECT ( privilege_column_list privilege_method_list ) DELETE INSERT UPDATE REFERENCES ( privilege_column_list ) USAGE TRIGGER UNDER EXECUTE
action   ::= 'SELECT' ( '(' ( privilege_column_list | privilege_method_list ) ')' )?
           | 'DELETE'
           | ( 'INSERT' | 'UPDATE' | 'REFERENCES' ) ( '(' privilege_column_list ')' )?
           | 'USAGE'
           | 'TRIGGER'
           | 'UNDER'
           | 'EXECUTE'
Referenced by:

privilege_method_list#

specific_routine_designator ,
Referenced by:

privilege_column_list#

column_name_list
         ::= column_name_list
Referenced by:

grantee#

PUBLIC identifier
grantee  ::= 'PUBLIC'
           | identifier

grantor#

CURRENT_USER CURRENT_ROLE
grantor  ::= 'CURRENT_USER'
           | 'CURRENT_ROLE'

role_definition#

CREATE ROLE identifier WITH ADMIN grantor
         ::= 'CREATE' 'ROLE' identifier ( 'WITH' 'ADMIN' grantor )?

grant_role_statement#

GRANT identifier , TO grantee , WITH ADMIN OPTION GRANTED BY grantor
         ::= 'GRANT' identifier ( ',' identifier )* 'TO' grantee ( ',' grantee )* ( 'WITH' 'ADMIN' 'OPTION' )? ( 'GRANTED' 'BY' grantor )?
Referenced by:

drop_role_statement#

DROP ROLE identifier
         ::= 'DROP' 'ROLE' identifier

revoke_statement#

revoke_privilege_statement revoke_role_statement
         ::= revoke_privilege_statement
           | revoke_role_statement

revoke_privilege_statement#

REVOKE revoke_option_extension privileges FROM grantee , GRANTED BY grantor drop_behavior
         ::= 'REVOKE' revoke_option_extension? privileges 'FROM' grantee ( ',' grantee )* ( 'GRANTED' 'BY' grantor )? drop_behavior
Referenced by:

revoke_option_extension#

GRANT HIERARCHY OPTION FOR
         ::= ( 'GRANT' | 'HIERARCHY' ) 'OPTION' 'FOR'

revoke_role_statement#

REVOKE ADMIN OPTION FOR identifier , FROM grantee , GRANTED BY grantor drop_behavior
         ::= 'REVOKE' ( 'ADMIN' 'OPTION' 'FOR' )? identifier ( ',' identifier )* 'FROM' grantee ( ',' grantee )* ( 'GRANTED' 'BY' grantor )? drop_behavior
Referenced by:

SQL_client_module_definition#

module_name_clause language_clause module_authorization_clause module_path_specification module_transform_group_specification module_collations temporary_table_declaration module_contents
Not referenced by any.

module_authorization_clause#

SCHEMA schema_name AUTHORIZATION identifier FOR STATIC ONLY AND DYNAMIC AUTHORIZATION identifier FOR STATIC ONLY AND DYNAMIC
         ::= 'SCHEMA' schema_name ( 'AUTHORIZATION' identifier ( 'FOR' 'STATIC' ( 'ONLY' | 'AND' 'DYNAMIC' ) )? )?
           | 'AUTHORIZATION' identifier ( 'FOR' 'STATIC' ( 'ONLY' | 'AND' 'DYNAMIC' ) )?

module_path_specification#

path_specification
         ::= path_specification

module_transform_group_specification#

transform_group_specification
         ::= transform_group_specification

module_collations#

module_collation_specification
         ::= module_collation_specification+

module_collation_specification#

COLLATION schema_qualified_name FOR character_set_specification_list
         ::= 'COLLATION' schema_qualified_name ( 'FOR' character_set_specification_list )?
Referenced by:

character_set_specification_list#

character_set_specification ,

module_contents#

declare_cursor dynamic_declare_cursor externally_invoked_procedure
         ::= declare_cursor
           | dynamic_declare_cursor
           | externally_invoked_procedure

module_name_clause#

MODULE identifier module_character_set_specification
         ::= 'MODULE' identifier? module_character_set_specification?

module_character_set_specification#

NAMES ARE character_set_specification
         ::= 'NAMES' 'ARE' character_set_specification
Referenced by:

externally_invoked_procedure#

PROCEDURE identifier host_parameter_declaration_list ; SQL_procedure_statement ;
         ::= 'PROCEDURE' identifier host_parameter_declaration_list ';' SQL_procedure_statement ';'
Referenced by:

host_parameter_declaration_list#

( host_parameter_declaration , )
         ::= '(' host_parameter_declaration ( ',' host_parameter_declaration )* ')'

host_parameter_declaration#

host_parameter_name host_parameter_data_type SQLSTATE
           | 'SQLSTATE'

host_parameter_data_type#

data_type locator_indication
         ::= data_type locator_indication?

SQL_procedure_statement#

SQL_executable_statement
         ::= SQL_executable_statement

SQL_executable_statement#

SQL_schema_statement SQL_data_statement SQL_control_statement SQL_transaction_statement SQL_connection_statement SQL_session_statement SQL_diagnostics_statement SQL_dynamic_statement
         ::= SQL_schema_statement
           | SQL_data_statement
           | SQL_control_statement
           | SQL_transaction_statement
           | SQL_connection_statement
           | SQL_session_statement
           | SQL_diagnostics_statement
           | SQL_dynamic_statement
Referenced by:

SQL_schema_statement#

SQL_schema_definition_statement SQL_schema_manipulation_statement
         ::= SQL_schema_definition_statement
           | SQL_schema_manipulation_statement

SQL_schema_definition_statement#

schema_definition table_definition view_definition SQL_invoked_routine grant_statement role_definition domain_definition character_set_definition collation_definition transliteration_definition assertion_definition trigger_definition user_defined_type_definition user_defined_cast_definition user_defined_ordering_definition transform_definition sequence_generator_definition
         ::= schema_definition
           | table_definition
           | view_definition
           | SQL_invoked_routine
           | grant_statement
           | role_definition
           | domain_definition
           | character_set_definition
           | collation_definition
           | transliteration_definition
           | assertion_definition
           | trigger_definition
           | user_defined_type_definition
           | user_defined_cast_definition
           | user_defined_ordering_definition
           | transform_definition
           | sequence_generator_definition
Referenced by:

SQL_schema_manipulation_statement#

drop_schema_statement alter_table_statement drop_table_statement drop_view_statement alter_routine_statement drop_routine_statement drop_user_defined_cast_statement revoke_statement drop_role_statement alter_domain_statement drop_domain_statement drop_character_set_statement drop_collation_statement drop_transliteration_statement drop_assertion_statement drop_trigger_statement alter_type_statement drop_data_type_statement drop_user_defined_ordering_statement alter_transform_statement drop_transform_statement alter_sequence_generator_statement drop_sequence_generator_statement
         ::= drop_schema_statement
           | alter_table_statement
           | drop_table_statement
           | drop_view_statement
           | alter_routine_statement
           | drop_routine_statement
           | drop_user_defined_cast_statement
           | revoke_statement
           | drop_role_statement
           | alter_domain_statement
           | drop_domain_statement
           | drop_character_set_statement
           | drop_collation_statement
           | drop_transliteration_statement
           | drop_assertion_statement
           | drop_trigger_statement
           | alter_type_statement
           | drop_data_type_statement
           | drop_user_defined_ordering_statement
           | alter_transform_statement
           | drop_transform_statement
           | alter_sequence_generator_statement
           | drop_sequence_generator_statement
Referenced by:

SQL_data_statement#

open_statement fetch_statement close_statement select_statement_single_row SQL_data_change_statement
         ::= open_statement
           | fetch_statement
           | close_statement
           | select_statement_single_row
           | SQL_data_change_statement
Referenced by:

SQL_data_change_statement#

delete_statement_positioned delete_statement_searched insert_statement update_statement_positioned update_statement_searched truncate_table_statement merge_statement
         ::= delete_statement_positioned
           | delete_statement_searched
           | insert_statement
           | update_statement_positioned
           | update_statement_searched
           | truncate_table_statement
           | merge_statement
Referenced by:

SQL_control_statement#

call_statement return_statement
         ::= call_statement
           | return_statement

SQL_transaction_statement#

start_transaction_statement set_transaction_statement set_constraints_mode_statement savepoint_statement release_savepoint_statement commit_statement rollback_statement
         ::= start_transaction_statement
           | set_transaction_statement
           | set_constraints_mode_statement
           | savepoint_statement
           | release_savepoint_statement
           | commit_statement
           | rollback_statement

SQL_connection_statement#

connect_statement set_connection_statement disconnect_statement
         ::= connect_statement
           | set_connection_statement
           | disconnect_statement

SQL_session_statement#

set_session_user_identifier_statement set_role_statement set_local_time_zone_statement set_session_characteristics_statement set_catalog_statement set_schema_statement set_names_statement set_path_statement set_transform_group_statement set_session_collation_statement
           | set_role_statement
           | set_local_time_zone_statement
           | set_catalog_statement
           | set_schema_statement
           | set_names_statement
           | set_path_statement
           | set_transform_group_statement
           | set_session_collation_statement

SQL_diagnostics_statement#

get_diagnostics_statement
         ::= get_diagnostics_statement
Referenced by:

SQL_dynamic_statement#

SQL_descriptor_statement prepare_statement deallocate_prepared_statement describe_statement execute_statement execute_immediate_statement SQL_dynamic_data_statement
         ::= SQL_descriptor_statement
           | prepare_statement
           | deallocate_prepared_statement
           | describe_statement
           | execute_statement
           | execute_immediate_statement
           | SQL_dynamic_data_statement
Referenced by:

SQL_dynamic_data_statement#

allocate_cursor_statement dynamic_open_statement dynamic_fetch_statement dynamic_close_statement dynamic_delete_statement_positioned dynamic_update_statement_positioned
         ::= allocate_cursor_statement
           | dynamic_open_statement
           | dynamic_fetch_statement
           | dynamic_close_statement
           | dynamic_delete_statement_positioned
           | dynamic_update_statement_positioned
Referenced by:

SQL_descriptor_statement#

allocate_descriptor_statement deallocate_descriptor_statement set_descriptor_statement get_descriptor_statement
         ::= allocate_descriptor_statement
           | deallocate_descriptor_statement
           | set_descriptor_statement
           | get_descriptor_statement
Referenced by:

declare_cursor#

DECLARE cursor_name cursor_properties FOR cursor_specification
         ::= 'DECLARE' cursor_name cursor_properties 'FOR' cursor_specification
Referenced by:

cursor_properties#

cursor_sensitivity cursor_scrollability CURSOR cursor_holdability cursor_returnability

cursor_sensitivity#

SENSITIVE INSENSITIVE ASENSITIVE
         ::= 'SENSITIVE'
           | 'INSENSITIVE'
           | 'ASENSITIVE'

cursor_scrollability#

NO SCROLL
         ::= 'NO'? 'SCROLL'

cursor_holdability#

WITH WITHOUT HOLD
         ::= ( 'WITH' | 'WITHOUT' ) 'HOLD'

cursor_returnability#

WITH WITHOUT RETURN
         ::= ( 'WITH' | 'WITHOUT' ) 'RETURN'

cursor_specification#

query_expression updatability_clause
         ::= query_expression updatability_clause?

updatability_clause#

FOR READ ONLY UPDATE OF column_name_list
         ::= 'FOR' ( 'READ' 'ONLY' | 'UPDATE' ( 'OF' column_name_list )? )
Referenced by:

open_statement#

OPEN cursor_name
         ::= 'OPEN' cursor_name
Referenced by:

fetch_statement#

FETCH fetch_orientation FROM cursor_name INTO fetch_target_list
         ::= 'FETCH' ( fetch_orientation? 'FROM' )? cursor_name 'INTO' fetch_target_list
Referenced by:

fetch_orientation#

NEXT PRIOR FIRST LAST ABSOLUTE RELATIVE simple_value_specification
         ::= 'NEXT'
           | 'PRIOR'
           | 'FIRST'
           | 'LAST'
           | ( 'ABSOLUTE' | 'RELATIVE' ) simple_value_specification

fetch_target_list#

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

close_statement#

CLOSE cursor_name
         ::= 'CLOSE' cursor_name
Referenced by:

select_statement_single_row#

SELECT set_quantifier select_list INTO select_target_list table_expression
         ::= 'SELECT' set_quantifier? select_list ( 'INTO' select_target_list )? table_expression?
Referenced by:

select_target_list#

target_specification ,
         ::= target_specification ( ',' target_specification )*

delete_statement_positioned#

DELETE FROM target_table AS identifier WHERE CURRENT OF cursor_name
         ::= 'DELETE' 'FROM' target_table ( 'AS'? identifier )? 'WHERE' 'CURRENT' 'OF' cursor_name

target_table#

table_name ONLY ( table_name )
         ::= table_name
           | 'ONLY' '(' table_name ')'

delete_statement_searched#

DELETE FROM target_table AS identifier WHERE search_condition
         ::= 'DELETE' 'FROM' target_table ( 'AS'? identifier )? ( 'WHERE' search_condition )?

truncate_table_statement#

TRUNCATE TABLE target_table identity_column_restart_option
         ::= 'TRUNCATE' 'TABLE' target_table identity_column_restart_option?

identity_column_restart_option#

CONTINUE RESTART IDENTITY
         ::= ( 'CONTINUE' | 'RESTART' ) 'IDENTITY'
Referenced by:

insert_statement#

INSERT INTO insertion_target insert_columns_and_source
         ::= 'INSERT' 'INTO' insertion_target insert_columns_and_source

insertion_target#

table_name
         ::= table_name
Referenced by:

insert_columns_and_source#

from_subquery from_constructor from_default
         ::= from_subquery
           | from_constructor
           | from_default
Referenced by:

from_subquery#

( insert_column_list ) override_clause query_expression
         ::= ( '(' insert_column_list ')' )? override_clause? query_expression

from_constructor#

( insert_column_list ) override_clause contextually_typed_table_value_constructor

override_clause#

OVERRIDING USER SYSTEM VALUE
         ::= 'OVERRIDING' ( 'USER' | 'SYSTEM' ) 'VALUE'

from_default#

DEFAULT VALUES
         ::= 'DEFAULT' 'VALUES'

insert_column_list#

column_name_list
         ::= column_name_list

merge_statement#

MERGE INTO target_table AS identifier USING table_reference ON search_condition merge_operation_specification
         ::= 'MERGE' 'INTO' target_table ( 'AS'? identifier )? 'USING' table_reference 'ON' search_condition merge_operation_specification

merge_operation_specification#

merge_when_clause
         ::= merge_when_clause+
Referenced by:

merge_when_clause#

merge_when_matched_clause merge_when_not_matched_clause
         ::= merge_when_matched_clause
           | merge_when_not_matched_clause

merge_when_matched_clause#

WHEN MATCHED AND search_condition THEN merge_update_or_delete_specification
         ::= 'WHEN' 'MATCHED' ( 'AND' search_condition )? 'THEN' merge_update_or_delete_specification
Referenced by:

merge_update_or_delete_specification#

merge_update_specification DELETE
         ::= merge_update_specification
           | 'DELETE'

merge_when_not_matched_clause#

WHEN NOT MATCHED AND search_condition THEN merge_insert_specification
         ::= 'WHEN' 'NOT' 'MATCHED' ( 'AND' search_condition )? 'THEN' merge_insert_specification
Referenced by:

merge_update_specification#

UPDATE SET set_clause_list
         ::= 'UPDATE' 'SET' set_clause_list

merge_insert_specification#

INSERT ( insert_column_list ) override_clause VALUES merge_insert_value_list
         ::= 'INSERT' ( '(' insert_column_list ')' )? override_clause? 'VALUES' merge_insert_value_list

merge_insert_value_list#

( merge_insert_value_element , )
         ::= '(' merge_insert_value_element ( ',' merge_insert_value_element )* ')'

merge_insert_value_element#

value_expression contextually_typed_value_specification
         ::= value_expression
Referenced by:

update_statement_positioned#

UPDATE target_table AS identifier SET set_clause_list WHERE CURRENT OF cursor_name
         ::= 'UPDATE' target_table ( 'AS'? identifier )? 'SET' set_clause_list 'WHERE' 'CURRENT' 'OF' cursor_name

update_statement_searched#

UPDATE target_table AS identifier SET set_clause_list WHERE search_condition
         ::= 'UPDATE' target_table ( 'AS'? identifier )? 'SET' set_clause_list ( 'WHERE' search_condition )?

set_clause_list#

set_clause ,
         ::= set_clause ( ',' set_clause )*

set_clause#

multiple_column_assignment set_target = update_source
         ::= multiple_column_assignment
           | set_target '=' update_source
Referenced by:

set_target#

update_target mutated_set_clause
         ::= update_target
           | mutated_set_clause

multiple_column_assignment#

set_target_list = assigned_row
         ::= set_target_list '=' assigned_row
Referenced by:

set_target_list#

( set_target , )
         ::= '(' set_target ( ',' set_target )* ')'

assigned_row#

contextually_typed_row_value_expression

update_target#

identifier left_bracket_or_trigraph simple_value_specification right_bracket_or_trigraph
Referenced by:

mutated_set_clause#

identifier . identifier
         ::= identifier ( '.' identifier )+
Referenced by:

mutated_target#

identifier mutated_set_clause
         ::= identifier
           | mutated_set_clause
Not referenced by any.

update_source#

value_expression contextually_typed_value_specification
         ::= value_expression
Referenced by:

temporary_table_declaration#

DECLARE LOCAL TEMPORARY TABLE table_name table_element_list ON COMMIT table_commit_action ROWS
         ::= 'DECLARE' 'LOCAL' 'TEMPORARY' 'TABLE' table_name table_element_list ( 'ON' 'COMMIT' table_commit_action 'ROWS' )?

call_statement#

CALL routine_invocation
         ::= 'CALL' routine_invocation
Referenced by:

return_statement#

RETURN return_value
         ::= 'RETURN' return_value
Referenced by:

return_value#

value_expression NULL
         ::= value_expression
           | 'NULL'
Referenced by:

start_transaction_statement#

START TRANSACTION transaction_characteristics
         ::= 'START' 'TRANSACTION' transaction_characteristics?

set_transaction_statement#

SET LOCAL TRANSACTION transaction_characteristics
         ::= 'SET' 'LOCAL'? 'TRANSACTION' transaction_characteristics?

transaction_characteristics#

transaction_mode ,
         ::= transaction_mode ( ',' transaction_mode )*

transaction_mode#

isolation_level transaction_access_mode diagnostics_size
         ::= isolation_level
           | transaction_access_mode
           | diagnostics_size

transaction_access_mode#

READ ONLY WRITE
         ::= 'READ' ( 'ONLY' | 'WRITE' )
Referenced by:

isolation_level#

ISOLATION LEVEL level_of_isolation
         ::= 'ISOLATION' 'LEVEL' level_of_isolation
Referenced by:

level_of_isolation#

READ UNCOMMITTED COMMITTED REPEATABLE READ SERIALIZABLE
         ::= 'READ' ( 'UNCOMMITTED' | 'COMMITTED' )
           | 'REPEATABLE' 'READ'
           | 'SERIALIZABLE'
Referenced by:

diagnostics_size#

DIAGNOSTICS SIZE simple_value_specification
         ::= 'DIAGNOSTICS' 'SIZE' simple_value_specification
Referenced by:

set_constraints_mode_statement#

SET CONSTRAINTS constraint_name_list DEFERRED IMMEDIATE
         ::= 'SET' 'CONSTRAINTS' constraint_name_list ( 'DEFERRED' | 'IMMEDIATE' )

constraint_name_list#

ALL schema_qualified_name ,
         ::= 'ALL'
           | schema_qualified_name ( ',' schema_qualified_name )*

savepoint_statement#

SAVEPOINT savepoint_specifier
         ::= 'SAVEPOINT' savepoint_specifier

savepoint_specifier#

identifier
         ::= identifier

release_savepoint_statement#

RELEASE SAVEPOINT savepoint_specifier
         ::= 'RELEASE' 'SAVEPOINT' savepoint_specifier

commit_statement#

COMMIT WORK AND NO CHAIN
         ::= 'COMMIT' 'WORK'? ( 'AND' 'NO'? 'CHAIN' )?

rollback_statement#

ROLLBACK WORK AND NO CHAIN savepoint_clause
         ::= 'ROLLBACK' 'WORK'? ( 'AND' 'NO'? 'CHAIN' )? savepoint_clause?

savepoint_clause#

TO SAVEPOINT savepoint_specifier
         ::= 'TO' 'SAVEPOINT' savepoint_specifier
Referenced by:

connect_statement#

CONNECT TO connection_target
         ::= 'CONNECT' 'TO' connection_target
Referenced by:

connection_target#

simple_value_specification AS simple_value_specification USER simple_value_specification DEFAULT
           | 'DEFAULT'
Referenced by:

set_connection_statement#

SET CONNECTION connection_object
         ::= 'SET' 'CONNECTION' connection_object
Referenced by:

connection_object#

DEFAULT simple_value_specification
         ::= 'DEFAULT'
           | simple_value_specification

disconnect_statement#

DISCONNECT disconnect_object
         ::= 'DISCONNECT' disconnect_object
Referenced by:

disconnect_object#

connection_object ALL CURRENT
         ::= connection_object
           | 'ALL'
           | 'CURRENT'
Referenced by:

set_session_characteristics_statement#

SET SESSION CHARACTERISTICS AS session_characteristic_list
         ::= 'SET' 'SESSION' 'CHARACTERISTICS' 'AS' session_characteristic_list
Referenced by:

session_characteristic_list#

session_characteristic ,
         ::= session_characteristic ( ',' session_characteristic )*

session_characteristic#

session_transaction_characteristics

session_transaction_characteristics#

TRANSACTION transaction_mode ,
         ::= 'TRANSACTION' transaction_mode ( ',' transaction_mode )*
Referenced by:

set_session_user_identifier_statement#

SET SESSION AUTHORIZATION value_specification
         ::= 'SET' 'SESSION' 'AUTHORIZATION' value_specification
Referenced by:

set_role_statement#

SET ROLE role_specification
         ::= 'SET' 'ROLE' role_specification
Referenced by:

role_specification#

value_specification NONE
         ::= value_specification
           | 'NONE'
Referenced by:

set_local_time_zone_statement#

SET TIME ZONE set_time_zone_value
         ::= 'SET' 'TIME' 'ZONE' set_time_zone_value
Referenced by:

set_time_zone_value#

interval_value_expression LOCAL
         ::= interval_value_expression
           | 'LOCAL'

set_catalog_statement#

SET catalog_name_characteristic
         ::= 'SET' catalog_name_characteristic
Referenced by:

catalog_name_characteristic#

CATALOG value_specification
         ::= 'CATALOG' value_specification
Referenced by:

set_schema_statement#

SET schema_name_characteristic
         ::= 'SET' schema_name_characteristic
Referenced by:

schema_name_characteristic#

SCHEMA value_specification
         ::= 'SCHEMA' value_specification
Referenced by:

set_names_statement#

SET character_set_name_characteristic
         ::= 'SET' character_set_name_characteristic
Referenced by:

character_set_name_characteristic#

NAMES value_specification
         ::= 'NAMES' value_specification
Referenced by:

set_path_statement#

SET SQL_path_characteristic
         ::= 'SET' SQL_path_characteristic
Referenced by:

SQL_path_characteristic#

PATH value_specification
         ::= 'PATH' value_specification
Referenced by:

set_transform_group_statement#

SET transform_group_characteristic
         ::= 'SET' transform_group_characteristic
Referenced by:

transform_group_characteristic#

DEFAULT TRANSFORM GROUP TRANSFORM GROUP FOR TYPE path_resolved_user_defined_type_name value_specification
         ::= ( 'DEFAULT' 'TRANSFORM' 'GROUP' | 'TRANSFORM' 'GROUP' 'FOR' 'TYPE' path_resolved_user_defined_type_name ) value_specification

set_session_collation_statement#

SET COLLATION collation_specification NO COLLATION FOR character_set_specification_list
         ::= 'SET' ( 'COLLATION' collation_specification | 'NO' 'COLLATION' ) ( 'FOR' character_set_specification_list )?
Referenced by:

collation_specification#

value_specification
         ::= value_specification

allocate_descriptor_statement#

ALLOCATE SQL DESCRIPTOR descriptor_name WITH MAX simple_value_specification
         ::= 'ALLOCATE' 'SQL'? 'DESCRIPTOR' descriptor_name ( 'WITH' 'MAX' simple_value_specification )?
Referenced by:

deallocate_descriptor_statement#

DEALLOCATE SQL DESCRIPTOR descriptor_name
         ::= 'DEALLOCATE' 'SQL'? 'DESCRIPTOR' descriptor_name
Referenced by:

get_descriptor_statement#

GET SQL DESCRIPTOR descriptor_name get_descriptor_information
         ::= 'GET' 'SQL'? 'DESCRIPTOR' descriptor_name get_descriptor_information
Referenced by:

get_descriptor_information#

get_header_information , VALUE simple_value_specification get_item_information ,
         ::= get_header_information ( ',' get_header_information )*
Referenced by:

get_header_information#

simple_target_specification_1 = header_item_name

header_item_name#

COUNT KEY_TYPE DYNAMIC_FUNCTION DYNAMIC_FUNCTION_CODE TOP_LEVEL_COUNT
         ::= 'COUNT'
           | 'KEY_TYPE'
           | 'DYNAMIC_FUNCTION'
           | 'DYNAMIC_FUNCTION_CODE'
           | 'TOP_LEVEL_COUNT'

get_item_information#

simple_target_specification_2 = descriptor_item_name

simple_target_specification_1#

simple_target_specification
         ::= simple_target_specification
Referenced by:

simple_target_specification_2#

simple_target_specification
         ::= simple_target_specification
Referenced by:

descriptor_item_name#

CARDINALITY CHARACTER_SET_CATALOG CHARACTER_SET_NAME CHARACTER_SET_SCHEMA COLLATION_CATALOG COLLATION_NAME COLLATION_SCHEMA DATA DATETIME_INTERVAL_CODE DATETIME_INTERVAL_PRECISION DEGREE INDICATOR KEY_MEMBER LENGTH LEVEL NAME NULLABLE OCTET_LENGTH PARAMETER_MODE PARAMETER_ORDINAL_POSITION PARAMETER_SPECIFIC_CATALOG PARAMETER_SPECIFIC_NAME PARAMETER_SPECIFIC_SCHEMA PRECISION RETURNED_CARDINALITY RETURNED_LENGTH RETURNED_OCTET_LENGTH SCALE SCOPE_CATALOG SCOPE_NAME SCOPE_SCHEMA TYPE UNNAMED USER_DEFINED_TYPE_CATALOG USER_DEFINED_TYPE_NAME USER_DEFINED_TYPE_SCHEMA USER_DEFINED_TYPE_CODE
         ::= 'CARDINALITY'
           | 'CHARACTER_SET_CATALOG'
           | 'CHARACTER_SET_NAME'
           | 'CHARACTER_SET_SCHEMA'
           | 'COLLATION_CATALOG'
           | 'COLLATION_NAME'
           | 'COLLATION_SCHEMA'
           | 'DATA'
           | 'DATETIME_INTERVAL_CODE'
           | 'DATETIME_INTERVAL_PRECISION'
           | 'DEGREE'
           | 'INDICATOR'
           | 'KEY_MEMBER'
           | 'LENGTH'
           | 'LEVEL'
           | 'NAME'
           | 'NULLABLE'
           | 'OCTET_LENGTH'
           | 'PARAMETER_MODE'
           | 'PARAMETER_ORDINAL_POSITION'
           | 'PARAMETER_SPECIFIC_CATALOG'
           | 'PARAMETER_SPECIFIC_NAME'
           | 'PARAMETER_SPECIFIC_SCHEMA'
           | 'PRECISION'
           | 'RETURNED_CARDINALITY'
           | 'RETURNED_LENGTH'
           | 'RETURNED_OCTET_LENGTH'
           | 'SCALE'
           | 'SCOPE_CATALOG'
           | 'SCOPE_NAME'
           | 'SCOPE_SCHEMA'
           | 'TYPE'
           | 'UNNAMED'
           | 'USER_DEFINED_TYPE_CATALOG'
           | 'USER_DEFINED_TYPE_NAME'
           | 'USER_DEFINED_TYPE_SCHEMA'
           | 'USER_DEFINED_TYPE_CODE'

set_descriptor_statement#

SET SQL DESCRIPTOR descriptor_name set_descriptor_information
         ::= 'SET' 'SQL'? 'DESCRIPTOR' descriptor_name set_descriptor_information
Referenced by:

set_descriptor_information#

set_header_information , VALUE simple_value_specification set_item_information ,
         ::= set_header_information ( ',' set_header_information )*
Referenced by:

set_header_information#

header_item_name = simple_value_specification

set_item_information#

descriptor_item_name = simple_value_specification

prepare_statement#

PREPARE SQL_identifier attributes_specification FROM simple_value_specification
Referenced by:

attributes_specification#

ATTRIBUTES simple_value_specification
         ::= 'ATTRIBUTES' simple_value_specification
Referenced by:

preparable_statement#

preparable_SQL_data_statement preparable_SQL_schema_statement preparable_SQL_transaction_statement preparable_SQL_control_statement preparable_SQL_session_statement preparable_implementation_defined_statement
         ::= preparable_SQL_data_statement
           | preparable_SQL_schema_statement
           | preparable_SQL_transaction_statement
           | preparable_SQL_control_statement
           | preparable_SQL_session_statement
Not referenced by any.

preparable_SQL_data_statement#

delete_statement_searched dynamic_single_row_select_statement insert_statement dynamic_select_statement update_statement_searched truncate_table_statement merge_statement preparable_dynamic_delete_statement_positioned preparable_dynamic_update_statement_positioned
         ::= delete_statement_searched
           | dynamic_single_row_select_statement
           | insert_statement
           | dynamic_select_statement
           | update_statement_searched
           | truncate_table_statement
           | merge_statement
Referenced by:

preparable_SQL_schema_statement#

SQL_schema_statement
         ::= SQL_schema_statement
Referenced by:

preparable_SQL_transaction_statement#

SQL_transaction_statement
         ::= SQL_transaction_statement
Referenced by:

preparable_SQL_control_statement#

SQL_control_statement
         ::= SQL_control_statement
Referenced by:

preparable_SQL_session_statement#

SQL_session_statement
         ::= SQL_session_statement
Referenced by:

dynamic_select_statement#

cursor_specification
         ::= cursor_specification

preparable_implementation_defined_statement#

character_string_literal
         ::= character_string_literal
Referenced by:

cursor_attributes#

cursor_attribute
         ::= cursor_attribute+
Not referenced by any.

cursor_attribute#

cursor_sensitivity cursor_scrollability cursor_holdability cursor_returnability
         ::= cursor_sensitivity
           | cursor_scrollability
           | cursor_holdability
           | cursor_returnability
Referenced by:

deallocate_prepared_statement#

DEALLOCATE PREPARE SQL_identifier
         ::= 'DEALLOCATE' 'PREPARE' SQL_identifier
Referenced by:

describe_statement#

describe_input_statement describe_output_statement
         ::= describe_input_statement
           | describe_output_statement
Referenced by:

describe_input_statement#

DESCRIBE INPUT SQL_identifier using_descriptor nesting_option
         ::= 'DESCRIBE' 'INPUT' SQL_identifier using_descriptor nesting_option?
Referenced by:

describe_output_statement#

DESCRIBE OUTPUT described_object using_descriptor nesting_option
         ::= 'DESCRIBE' 'OUTPUT'? described_object using_descriptor nesting_option?
Referenced by:

nesting_option#

WITH WITHOUT NESTING
         ::= ( 'WITH' | 'WITHOUT' ) 'NESTING'

using_descriptor#

USING SQL DESCRIPTOR descriptor_name
         ::= 'USING' 'SQL'? 'DESCRIPTOR' descriptor_name

described_object#

SQL_identifier CURSOR extended_cursor_name STRUCTURE
         ::= SQL_identifier
           | 'CURSOR' extended_cursor_name 'STRUCTURE'

input_using_clause#

using_arguments using_input_descriptor
         ::= using_arguments
           | using_input_descriptor

using_arguments#

USING using_argument ,
         ::= 'USING' using_argument ( ',' using_argument )*
Referenced by:

using_argument#

general_value_specification
         ::= general_value_specification
Referenced by:

using_input_descriptor#

using_descriptor
         ::= using_descriptor
Referenced by:

output_using_clause#

into_arguments into_descriptor
         ::= into_arguments
           | into_descriptor

into_arguments#

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

into_argument#

target_specification
         ::= target_specification
Referenced by:

into_descriptor#

INTO SQL DESCRIPTOR descriptor_name
         ::= 'INTO' 'SQL'? 'DESCRIPTOR' descriptor_name
Referenced by:

execute_statement#

EXECUTE SQL_identifier result_using_clause parameter_using_clause
Referenced by:

result_using_clause#

output_using_clause
         ::= output_using_clause
Referenced by:

parameter_using_clause#

input_using_clause
         ::= input_using_clause
Referenced by:

execute_immediate_statement#

EXECUTE IMMEDIATE simple_value_specification
         ::= 'EXECUTE' 'IMMEDIATE' simple_value_specification
Referenced by:

dynamic_declare_cursor#

DECLARE cursor_name cursor_properties FOR identifier
         ::= 'DECLARE' cursor_name cursor_properties 'FOR' identifier
Referenced by:

allocate_cursor_statement#

ALLOCATE extended_cursor_name cursor_intent
         ::= 'ALLOCATE' extended_cursor_name cursor_intent

cursor_intent#

statement_cursor result_set_cursor
         ::= statement_cursor
           | result_set_cursor

statement_cursor#

cursor_properties FOR extended_identifier
         ::= cursor_properties 'FOR' extended_identifier
Referenced by:

result_set_cursor#

CURSOR FOR PROCEDURE specific_routine_designator
         ::= 'CURSOR'? 'FOR' 'PROCEDURE' specific_routine_designator
Referenced by:

dynamic_open_statement#

OPEN dynamic_cursor_name input_using_clause
         ::= 'OPEN' dynamic_cursor_name input_using_clause?

dynamic_fetch_statement#

FETCH fetch_orientation FROM dynamic_cursor_name output_using_clause
         ::= 'FETCH' ( fetch_orientation? 'FROM' )? dynamic_cursor_name output_using_clause

dynamic_single_row_select_statement#

query_specification
         ::= query_specification

dynamic_close_statement#

CLOSE dynamic_cursor_name
         ::= 'CLOSE' dynamic_cursor_name

dynamic_delete_statement_positioned#

DELETE FROM target_table WHERE CURRENT OF dynamic_cursor_name
         ::= 'DELETE' 'FROM' target_table 'WHERE' 'CURRENT' 'OF' dynamic_cursor_name

dynamic_update_statement_positioned#

UPDATE target_table SET set_clause_list WHERE CURRENT OF dynamic_cursor_name
         ::= 'UPDATE' target_table 'SET' set_clause_list 'WHERE' 'CURRENT' 'OF' dynamic_cursor_name

preparable_dynamic_delete_statement_positioned#

DELETE FROM target_table WHERE CURRENT OF preparable_dynamic_cursor_name
         ::= 'DELETE' ( 'FROM' target_table )? 'WHERE' 'CURRENT' 'OF' preparable_dynamic_cursor_name

preparable_dynamic_cursor_name#

scope_option cursor_name
         ::= scope_option? cursor_name

preparable_dynamic_update_statement_positioned#

UPDATE target_table SET set_clause_list WHERE CURRENT OF preparable_dynamic_cursor_name
         ::= 'UPDATE' target_table? 'SET' set_clause_list 'WHERE' 'CURRENT' 'OF' preparable_dynamic_cursor_name

direct_SQL_statement#

directly_executable_statement ;
         ::= directly_executable_statement ';'
Referenced by:

directly_executable_statement#

direct_SQL_data_statement SQL_schema_statement SQL_transaction_statement SQL_connection_statement SQL_session_statement direct_implementation_defined_statement use_statement
         ::= direct_SQL_data_statement
           | SQL_schema_statement
           | SQL_transaction_statement
           | SQL_connection_statement
           | SQL_session_statement
           | use_statement
Referenced by:

direct_SQL_data_statement#

delete_statement_searched direct_select_statement_multiple_rows insert_statement update_statement_searched truncate_table_statement merge_statement temporary_table_declaration
         ::= delete_statement_searched
           | insert_statement
           | update_statement_searched
           | truncate_table_statement
           | merge_statement
           | temporary_table_declaration

direct_implementation_defined_statement#

character_string_literal
         ::= character_string_literal

direct_select_statement_multiple_rows#

cursor_specification
         ::= cursor_specification

get_diagnostics_statement#

GET DIAGNOSTICS SQL_diagnostics_information
         ::= 'GET' 'DIAGNOSTICS' SQL_diagnostics_information

SQL_diagnostics_information#

statement_information condition_information all_information
         ::= statement_information
           | condition_information
           | all_information

statement_information#

statement_information_item ,

statement_information_item#

simple_target_specification = statement_information_item_name
Referenced by:

statement_information_item_name#

NUMBER MORE COMMAND_FUNCTION COMMAND_FUNCTION_CODE DYNAMIC_FUNCTION DYNAMIC_FUNCTION_CODE ROW_COUNT TRANSACTIONS_COMMITTED TRANSACTIONS_ROLLED_BACK TRANSACTION_ACTIVE
         ::= 'NUMBER'
           | 'MORE'
           | 'COMMAND_FUNCTION'
           | 'COMMAND_FUNCTION_CODE'
           | 'DYNAMIC_FUNCTION'
           | 'DYNAMIC_FUNCTION_CODE'
           | 'ROW_COUNT'
           | 'TRANSACTIONS_COMMITTED'
           | 'TRANSACTIONS_ROLLED_BACK'
           | 'TRANSACTION_ACTIVE'

condition_information#

CONDITION simple_value_specification condition_information_item ,

condition_information_item#

simple_target_specification = condition_information_item_name
Referenced by:

condition_information_item_name#

CATALOG_NAME CLASS_ORIGIN COLUMN_NAME CONDITION_NUMBER CONNECTION_NAME CONSTRAINT_CATALOG CONSTRAINT_NAME CONSTRAINT_SCHEMA CURSOR_NAME MESSAGE_LENGTH MESSAGE_OCTET_LENGTH MESSAGE_TEXT PARAMETER_MODE PARAMETER_NAME PARAMETER_ORDINAL_POSITION RETURNED_SQLSTATE ROUTINE_CATALOG ROUTINE_NAME ROUTINE_SCHEMA SCHEMA_NAME SERVER_NAME SPECIFIC_NAME SUBCLASS_ORIGIN TABLE_NAME TRIGGER_CATALOG TRIGGER_NAME TRIGGER_SCHEMA
         ::= 'CATALOG_NAME'
           | 'CLASS_ORIGIN'
           | 'COLUMN_NAME'
           | 'CONDITION_NUMBER'
           | 'CONNECTION_NAME'
           | 'CONSTRAINT_CATALOG'
           | 'CONSTRAINT_NAME'
           | 'CONSTRAINT_SCHEMA'
           | 'CURSOR_NAME'
           | 'MESSAGE_LENGTH'
           | 'MESSAGE_OCTET_LENGTH'
           | 'MESSAGE_TEXT'
           | 'PARAMETER_MODE'
           | 'PARAMETER_NAME'
           | 'PARAMETER_ORDINAL_POSITION'
           | 'RETURNED_SQLSTATE'
           | 'ROUTINE_CATALOG'
           | 'ROUTINE_NAME'
           | 'ROUTINE_SCHEMA'
           | 'SCHEMA_NAME'
           | 'SERVER_NAME'
           | 'SPECIFIC_NAME'
           | 'SUBCLASS_ORIGIN'
           | 'TABLE_NAME'
           | 'TRIGGER_CATALOG'
           | 'TRIGGER_NAME'
           | 'TRIGGER_SCHEMA'

all_information#

all_info_target = ALL all_qualifier
         ::= all_info_target '=' 'ALL' all_qualifier?

all_info_target#

simple_target_specification
         ::= simple_target_specification
Referenced by:

all_qualifier#

STATEMENT CONDITION simple_value_specification
         ::= 'STATEMENT'
           | 'CONDITION' simple_value_specification?
Referenced by:

use_statement#

USE identifier_chain
         ::= 'USE' identifier_chain

lambda#

lambda_params lambda_body
Referenced by:

lambda_body#

-> value_expression
         ::= '->' value_expression

lambda_params#

actual_identifier ( actual_identifier , )
         ::= actual_identifier
           | '(' ( actual_identifier ( ',' actual_identifier )* )? ')'
Referenced by:

if_not_exists#

IF NOT EXISTS
         ::= 'IF' 'NOT' 'EXISTS'

identifier_suffix_chain#

@ : actual_identifier
         ::= ( ( '@' | ':' ) actual_identifier? )+
Referenced by:

limit_clause#

LIMIT unsigned_integer ALL
         ::= 'LIMIT' ( unsigned_integer | 'ALL' )

presto_generic_type#

presto_array_type presto_map_type regular_identifier ( data_type , )
         ::= presto_array_type
           | presto_map_type
           | regular_identifier '(' data_type ( ',' data_type )* ')'
Referenced by:

presto_array_type#

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

presto_map_type#

MAP < data_type , data_type > ( data_type , data_type )
         ::= 'MAP' ( '<' data_type ',' data_type '>' | '(' data_type ',' data_type ')' )
Referenced by:

grouping_expression#

value_expression
         ::= value_expression

count#

COUNT ( "COUNT" ( set_quantifier value_expression * )
count    ::= ( 'COUNT' '(' | '"COUNT"' '(' set_quantifier? ( value_expression | '*' )? ) ')'
Referenced by:

table_description#

COMMENT character_string_literal
         ::= 'COMMENT' character_string_literal
Referenced by:

routine_description#

COMMENT character_string_literal
         ::= 'COMMENT' character_string_literal
Referenced by:

column_description#

COMMENT character_string_literal
         ::= 'COMMENT' character_string_literal
Referenced by:

presto_aggregation_function#

NUMERIC_HISTOGRAM HISTOGRAM APPROEX_PERCENTILE MAP_AGG SET_AGG MAP_UNION
         ::= 'NUMERIC_HISTOGRAM'
           | 'HISTOGRAM'
           | 'APPROEX_PERCENTILE'
           | 'MAP_AGG'
           | 'SET_AGG'
           | 'MAP_UNION'
Referenced by:

presto_aggregations#

presto_aggregation_function ( set_quantifier value_expression , )
Referenced by:

try_cast#

TRY_CAST ( cast_operand AS cast_target )
try_cast ::= 'TRY_CAST' '(' cast_operand 'AS' cast_target ')'
Referenced by:

table_attributes#

( actual_identifier = value_expression , )
         ::= '(' actual_identifier '=' value_expression ( ',' actual_identifier '=' value_expression )* ')'

or_replace#

OR REPLACE
         ::= 'OR' 'REPLACE'

udaf_filter#

filter_clause
         ::= filter_clause
Referenced by:

extra_args_to_agg#

, value_expression
         ::= ( ',' value_expression )+
Referenced by:

identifier_starting_with_underscore#

_ regular_identifier
         ::= '_'+ regular_identifier?
Not referenced by any.

generic_unicode#

U&' [^'] '' '
         ::= "U&'" ( [^'] | "''" )* "'"
Not referenced by any.

regular_identifier#

identifier_body
         ::= identifier_body

identifier_body#

identifier_start identifier_part
         ::= identifier_start identifier_part*
Referenced by:

identifier_part#

identifier_start identifier_extend
         ::= identifier_start
           | identifier_extend
Referenced by:

identifier_start#

[a-z]
         ::= [a-z]

identifier_extend#

[0-9] _ [#xB7]
         ::= [0-9_#xB7]
Referenced by:

large_object_length_token#

digit multiplier
         ::= digit+ multiplier
Referenced by:

multiplier#

K M G T P
         ::= [KMGTP]

delimited_identifier#

" delimited_identifier_body "
         ::= '"' delimited_identifier_body? '"'
Referenced by:

delimited_identifier_body#

delimited_identifier_part
         ::= delimited_identifier_part+
Referenced by:

delimited_identifier_part#

nondoublequote_character ""
         ::= nondoublequote_character
           | '""'

Unicode_delimited_identifier#

U & " Unicode_delimiter_body " Unicode_escape_specifier
         ::= 'U' '&' '"' Unicode_delimiter_body '"' Unicode_escape_specifier?
Referenced by:

Unicode_escape_specifier#

UESCAPE ' Unicode_escape_character '
         ::= 'UESCAPE' "'" Unicode_escape_character "'"

Unicode_delimiter_body#

Unicode_identifier_part
         ::= Unicode_identifier_part+

Unicode_identifier_part#

delimited_identifier_part Unicode_escape_value
         ::= delimited_identifier_part
           | Unicode_escape_value
Referenced by:

Unicode_escape_value#

Unicode_4_digit_escape_value Unicode_6_digit_escape_value Unicode_character_escape_value
         ::= Unicode_4_digit_escape_value
           | Unicode_6_digit_escape_value
           | Unicode_character_escape_value

Unicode_4_digit_escape_value#

Unicode_escape_character hexit hexit hexit hexit
Referenced by:

Unicode_6_digit_escape_value#

Unicode_escape_character + hexit hexit hexit hexit hexit hexit
Referenced by:

Unicode_character_escape_value#

Unicode_escape_character Unicode_escape_character
Referenced by:

Unicode_escape_character#

[^a-z0-9+'" #xA#x9]
         ::= [^a-z0-9+'" #xA#x9]

nondoublequote_character#

[^"]
         ::= [^"]

white_space#

newline [#x9]
         ::= newline
           | [ #x9]
Referenced by:

newline#

[#xA] [#xD]
newline  ::= [#xA#xD]+

comment#

simple_comment
Not referenced by any.

simple_comment#

-- comment_character newline
         ::= '--' comment_character* newline?
Referenced by:

comment_character#

[^#xA#xD] '
         ::= [^#xA#xD]
           | "'"
Referenced by:

skip_separator#

white_space
         ::= white_space+
Not referenced by any.

separator#

white_space
         ::= white_space+

digit#

[0-9]
digit    ::= [0-9]

character_representation#

nonquote_character ''
         ::= nonquote_character
           | "''"

nonquote_character#

[^']
         ::= [^']
Referenced by:

quoted_string#

' character_representation '
         ::= "'" character_representation* "'"
Referenced by:

national_character_string_literal#

N ' character_representation ' separator
         ::= 'N' "'" character_representation* "'" ( separator "'" character_representation* "'" )*
Referenced by:

unicode_literal#

U & ' Unicode_representation ' separator Unicode_escape_specifier
         ::= 'U' '&' "'" Unicode_representation* "'" ( separator "'" Unicode_representation* "'" )* Unicode_escape_specifier

Unicode_representation#

character_representation Unicode_escape_value
         ::= character_representation
           | Unicode_escape_value
Referenced by:

binary_string_literal#

X ' hexit hexit ' separator
         ::= 'X' "'" ' '* ( hexit ' '* hexit ' '* )* "'" ( separator "'" ' '* ( hexit ' '* hexit ' '* )* "'" )*
Referenced by:

hexit#

[a-f] [0-9]
hexit    ::= [a-f0-9]

unsigned_integer#

digit
         ::= digit+

float_literal#

unsigned_integer . unsigned_integer . unsigned_integer
         ::= unsigned_integer '.' unsigned_integer?
           | '.' unsigned_integer

approximate_numeric_literal#

mantissa E exponent
         ::= mantissa 'E' exponent
Referenced by:

mantissa#

unsigned_integer float_literal
           | float_literal

exponent#

signed_integer

signed_integer#

+ [#x2D] unsigned_integer
         ::= [+#x2D]? unsigned_integer
Referenced by:

SQL_language_identifier#

SQL_language_identifier_start SQL_language_identifier_part
Referenced by:

simple_Latin_letter#

[a-z]
         ::= [a-z]

SQL_language_identifier_start#

simple_Latin_letter
         ::= simple_Latin_letter
Referenced by:

SQL_language_identifier_part#

simple_Latin_letter digit _
         ::= simple_Latin_letter
           | digit
           | '_'
Referenced by:

illegal_input_char#

.
         ::= .
Not referenced by any.

EOF#

$
EOF      ::= $
Referenced by: