OBParser.g4

select_stmt

select_no_parens select_with_parens select_into with_select

select_no_parens

select_clause FOR UPDATE opt_for_update_wait select_clause_set FOR UPDATE opt_for_update_wait select_clause_set_with_order_and_limit FOR UPDATE opt_for_update_wait

select_with_parens

( select_no_parens select_with_parens with_select )

select_into

select_no_parens into_clause

with_select

with_clause select_no_parens select_with_parens

select_clause

no_table_select no_table_select_with_order_and_limit simple_select simple_select_with_order_and_limit select_with_parens_with_order_and_limit

opt_for_update_wait

empty WAIT DECIMAL_VAL WAIT INTNUM NOWAIT NO_WAIT

select_clause_set

select_clause_set set_type select_clause_set_right select_clause_set order_by set_type select_clause_set_right select_clause_set order_by limit_clause set_type select_clause_set_right select_clause_set_left set_type select_clause_set_right

select_clause_set_with_order_and_limit

select_clause_set order_by select_clause_set order_by limit_clause

into_clause

INTO OUTFILE STRING_VALUE charset_key charset_name field_opt line_opt INTO DUMPFILE STRING_VALUE INTO into_var_list

with_clause

WITH RECURSIVE with_list

no_table_select

select_with_opt_hint query_expression_option_list select_expr_list into_opt select_with_opt_hint query_expression_option_list select_expr_list into_opt FROM DUAL WHERE opt_hint_value expr GROUP BY groupby_clause HAVING expr WINDOW named_windows

no_table_select_with_order_and_limit

no_table_select order_by no_table_select order_by limit_clause

simple_select

select_with_opt_hint query_expression_option_list select_expr_list into_opt FROM from_list WHERE opt_hint_value expr GROUP BY groupby_clause HAVING expr WINDOW named_windows

simple_select_with_order_and_limit

simple_select order_by simple_select order_by limit_clause

select_with_parens_with_order_and_limit

select_with_parens order_by select_with_parens order_by limit_clause

set_type

set_type_union set_expression_option set_type_other

select_clause_set_right

no_table_select simple_select select_with_parens

order_by

ORDER BY sort_list

limit_clause

LIMIT limit_expr OFFSET limit_expr , limit_expr

select_clause_set_left

no_table_select_with_order_and_limit simple_select_with_order_and_limit select_clause_set_right

charset_key

CHARSET CHARACTER SET

charset_name

NAME_OB STRING_VALUE BINARY

field_opt

columns_or_fields field_term_list empty

line_opt

LINES line_term_list empty

into_var_list

into_var , into_var

with_list

common_table_expr , common_table_expr

select_with_opt_hint

SELECT SELECT_HINT_BEGIN hint_list_with_end

query_expression_option_list

query_expression_option

select_expr_list

projection , projection

into_opt

into_clause

opt_hint_value

HINT_VALUE

groupby_clause

sort_list_for_group_by WITH ROLLUP

named_windows

named_window , named_window

from_list

table_references

set_type_union

UNION

set_expression_option

ALL DISTINCT UNIQUE

set_type_other

INTERSECT EXCEPT MINUS

sort_list

sort_key , sort_key

limit_expr

INTNUM QUESTIONMARK column_ref

columns_or_fields

COLUMNS FIELDS

field_term_list

field_term

line_term_list

line_term

into_var

USER_VARIABLE NAME_OB unreserved_keyword_normal

common_table_expr

relation_name ( alias_name_list ) AS ( select_no_parens ) relation_name ( alias_name_list ) AS ( with_select ) relation_name ( alias_name_list ) AS ( select_with_parens )

hint_list_with_end

hint_options opt_hint_list , hint_options HINT_END

query_expression_option

ALL DISTINCT UNIQUE SQL_CALC_FOUND_ROWS SQL_NO_CACHE SQL_CACHE

projection

expr expr column_label expr AS column_label expr AS STRING_VALUE *

sort_list_for_group_by

sort_key_for_group_by , sort_key_for_group_by

named_window

NAME_OB AS new_generalized_window_clause_with_blanket

table_references

table_reference , table_reference

sort_key

expr ASC DESC

column_ref

column_name . relation_name . relation_name . column_name mysql_reserved_keyword . relation_name . mysql_reserved_keyword . mysql_reserved_keyword relation_name . relation_name . *

field_term

OPTIONALLY ENCLOSED TERMINATED ESCAPED BY STRING_VALUE

line_term

STARTING TERMINATED BY STRING_VALUE

relation_name

NAME_OB unreserved_keyword

alias_name_list

column_alias_name , column_alias_name

hint_options

hint_option

opt_hint_list

hint_options empty opt_hint_list , hint_options

column_label

NAME_OB unreserved_keyword

sort_key_for_group_by

expr ASC DESC

new_generalized_window_clause_with_blanket

( NAME_OB generalized_window_clause )

table_reference

table_factor joined_table

column_name

NAME_OB unreserved_keyword

mysql_reserved_keyword

ACCESSIBLE ADD ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY BLOB BY CALL CASCADE CASE CHANGE CHAR CHARACTER CHECK COLLATE COLUMN CONDITION CONSTRAINT CONTINUE CONVERT CREATE CROSS CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURSOR DATABASE DATABASES DAY_HOUR DAY_MICROSECOND DAY_MINUTE DAY_SECOND DECLARE DECIMAL DEFAULT DELAYED DELETE DESC DESCRIBE DETERMINISTIC DISTINCTROW DIV DOUBLE DROP DUAL EACH ELSE ELSEIF ENCLOSED ESCAPED EXISTS EXIT EXPLAIN FETCH FLOAT FLOAT4 FLOAT8 FOR FORCE FOREIGN FULLTEXT GENERATED GET GRANT GROUP HAVING HIGH_PRIORITY HOUR_MICROSECOND HOUR_MINUTE HOUR_SECOND IF IGNORE IN INDEX INFILE INNER INOUT INSENSITIVE INSERT INT INT1 INT2 INT3 INT4 INT8 INTEGER INTERVAL INTO IO_AFTER_GTIDS IO_BEFORE_GTIDS IS ITERATE JOIN KEY KEYS KILL LEAVE LEFT LIKE LIMIT LINEAR LINES LOAD LOCALTIME LOCALTIMESTAMP LONG LONGBLOB LONGTEXT LOOP LOW_PRIORITY MASTER_BIND MASTER_SSL_VERIFY_SERVER_CERT MATCH MAXVALUE MEDIUMBLOB MEDIUMINT MEDIUMTEXT MIDDLEINT MINUTE_MICROSECOND MINUTE_SECOND MOD MODIFIES NATURAL NOT NO_WRITE_TO_BINLOG ON OPTIMIZE OPTION OPTIONALLY OR ORDER OUT OUTER OUTFILE PARTITION PRECISION PRIMARY PROCEDURE PURGE RANGE READ READS READ_WRITE REAL REFERENCES REGEXP RELEASE RENAME REPEAT REPLACE REQUIRE RESIGNAL RESTRICT RETURN REVOKE RIGHT RLIKE SCHEMA SCHEMAS SECOND_MICROSECOND SENSITIVE SEPARATOR SET SHOW SIGNAL SMALLINT SPATIAL SPECIFIC SQL SQLEXCEPTION SQLSTATE SQLWARNING SQL_BIG_RESULT SQL_SMALL_RESULT SSL STARTING STORED STRAIGHT_JOIN TABLE TERMINATED THEN TINYBLOB TINYINT TINYTEXT TO TRIGGER UNDO UNION UNLOCK UNSIGNED UPDATE USAGE USE USING UTC_DATE UTC_TIME UTC_TIMESTAMP VALUES VARBINARY VARCHAR VARCHARACTER VARYING VIRTUAL WHERE WHILE WITH WRITE XOR YEAR_MONTH ZEROFILL

column_alias_name

column_name

hint_option

NO_REWRITE READ_CONSISTENCY ( consistency_level ) INDEX_HINT ( qb_name_option relation_factor_in_hint NAME_OB ) QUERY_TIMEOUT ( INTNUM ) FROZEN_VERSION ( INTNUM ) TOPK ( INTNUM INTNUM ) HOTSPOT LOG_LEVEL ( NAME_OB ) LOG_LEVEL ( ' STRING_VALUE ' ) LEADING_HINT ( qb_name_option relation_factor_in_leading_hint_list_entry ) LEADING_HINT ( qb_name_option relation_factor_in_hint_list ) ORDERED FULL_HINT ( qb_name_option relation_factor_in_hint ) USE_PLAN_CACHE ( use_plan_cache_type ) USE_MERGE ( qb_name_option relation_factor_in_use_join_hint_list ) NO_USE_MERGE ( qb_name_option relation_factor_in_use_join_hint_list ) USE_HASH ( qb_name_option relation_factor_in_use_join_hint_list ) NO_USE_HASH ( qb_name_option relation_factor_in_use_join_hint_list ) USE_NL ( qb_name_option relation_factor_in_use_join_hint_list ) NO_USE_NL ( qb_name_option relation_factor_in_use_join_hint_list ) USE_BNL ( qb_name_option relation_factor_in_use_join_hint_list ) NO_USE_BNL ( qb_name_option relation_factor_in_use_join_hint_list ) USE_NL_MATERIALIZATION ( qb_name_option relation_factor_in_use_join_hint_list ) NO_USE_NL_MATERIALIZATION ( qb_name_option relation_factor_in_use_join_hint_list ) USE_HASH_AGGREGATION NO_USE_HASH_AGGREGATION MERGE_HINT ( qb_name_option ) NO_MERGE_HINT ( qb_name_option ) NO_EXPAND ( qb_name_option ) USE_CONCAT ( qb_name_option ) UNNEST ( qb_name_option ) NO_UNNEST ( qb_name_option ) PLACE_GROUP_BY ( qb_name_option ) NO_PLACE_GROUP_BY ( qb_name_option ) NO_PRED_DEDUCE ( qb_name_option ) USE_JIT ( use_jit_type ) NO_USE_JIT USE_LATE_MATERIALIZATION NO_USE_LATE_MATERIALIZATION TRACE_LOG STAT ( tracing_num_list ) TRACING ( tracing_num_list ) DOP ( INTNUM , INTNUM ) USE_PX NO_USE_PX TRANS_PARAM ( trans_param_name , trans_param_value ) PX_JOIN_FILTER ( qb_name_option relation_factor_in_use_join_hint_list ) NO_PX_JOIN_FILTER ( qb_name_option relation_factor_in_use_join_hint_list ) FORCE_REFRESH_LOCATION_CACHE QB_NAME ( NAME_OB ) MAX_CONCURRENT ( INTNUM ) PARALLEL ( INTNUM ) NO_PARALLEL MONITOR PQ_DISTRIBUTE ( qb_name_option relation_factor_in_pq_hint , distribute_method opt_comma distribute_method ) LOAD_BATCH_SIZE ( INTNUM ) PQ_MAP ( qb_name_option relation_factor_in_hint ) NAME_OB EOF PARSER_SYNTAX_ERROR ENABLE_PARALLEL_DML DISABLE_PARALLEL_DML INLINE ( qb_name_option ) MATERIALIZE ( qb_name_option )

generalized_window_clause

PARTITION BY expr_list order_by win_window

table_factor

tbl_name table_subquery select_with_parens use_flashback ( table_references )

joined_table

table_factor inner_join_type opt_full_table_factor ON expr table_factor inner_join_type opt_full_table_factor USING ( column_list ) table_factor except_full_outer_join_type opt_full_table_factor join_condition table_factor FULL OUTER JOIN opt_full_table_factor join_condition table_factor FULL natural_join_type opt_full_table_factor joined_table FULL joined_table inner_join_type natural_join_type opt_full_table_factor joined_table except_full_outer_join_type opt_full_table_factor join_condition joined_table inner_join_type opt_full_table_factor ON expr joined_table FULL JOIN opt_full_table_factor join_condition joined_table FULL OUTER JOIN opt_full_table_factor join_condition joined_table inner_join_type opt_full_table_factor USING ( column_list )

consistency_level

WEAK STRONG FROZEN

qb_name_option

@ NAME_OB empty

relation_factor_in_hint

normal_relation_factor qb_name_option

relation_factor_in_leading_hint_list_entry

relation_factor_in_hint_list relation_sep_option relation_factor_in_leading_hint_list

relation_factor_in_hint_list

relation_factor_in_hint relation_sep_option relation_factor_in_hint

use_plan_cache_type

NONE DEFAULT

relation_factor_in_use_join_hint_list

relation_factor_in_hint ( relation_factor_in_hint_list ) relation_factor_in_use_join_hint_list relation_sep_option relation_factor_in_hint relation_factor_in_use_join_hint_list relation_sep_option ( relation_factor_in_hint_list )

use_jit_type

AUTO FORCE

tracing_num_list

INTNUM relation_sep_option tracing_num_list

trans_param_name

' STRING_VALUE '

trans_param_value

' STRING_VALUE ' INTNUM

relation_factor_in_pq_hint

relation_factor_in_hint ( relation_factor_in_hint_list )

distribute_method

NONE PARTITION RANDOM RANDOM_LOCAL HASH BROADCAST LOCAL BC2HOST

opt_comma

,

expr_list

expr , expr

win_window

win_rows_or_range BETWEEN win_bounding AND win_bounding win_rows_or_range win_bounding

tbl_name

relation_factor use_partition sample_clause seed use_flashback relation_name relation_factor use_partition AS relation_name sample_clause sample_clause relation_name seed relation_name index_hint_list relation_factor use_partition use_flashback AS relation_name relation_factor use_partition sample_clause seed AS relation_name index_hint_list

table_subquery

select_with_parens use_flashback AS relation_name

use_flashback

AS OF SNAPSHOT bit_expr

inner_join_type

INNER JOIN CROSS JOIN

opt_full_table_factor

table_factor FULL

column_list

column_definition_ref , column_definition_ref

except_full_outer_join_type

LEFT OUTER JOIN RIGHT OUTER JOIN

join_condition

ON expr USING ( column_list )

natural_join_type

NATURAL outer_join_type NATURAL INNER JOIN

normal_relation_factor

relation_name . relation_name . mysql_reserved_keyword

relation_sep_option

,

relation_factor_in_leading_hint_list

relation_factor_in_leading_hint ( relation_factor_in_hint_list relation_sep_option relation_factor_in_leading_hint_list ) relation_factor_in_leading_hint_list relation_sep_option relation_factor_in_hint relation_factor_in_leading_hint relation_factor_in_leading_hint_list relation_sep_option ( relation_factor_in_hint_list relation_sep_option relation_factor_in_leading_hint_list )

win_rows_or_range

ROWS RANGE

win_bounding

CURRENT ROW win_interval win_preceding_or_following

relation_factor

normal_relation_factor dot_relation_factor

use_partition

PARTITION ( name_list )

sample_clause

SAMPLE BLOCK ALL BASE INCR ( sample_percent )

seed

SEED ( INTNUM )

index_hint_list

index_hint_definition index_hint_list

bit_expr

simple_expr bit_expr & ^ DIV / MOD - % | + SHIFT_LEFT SHIFT_RIGHT * bit_expr bit_expr - + INTERVAL expr date_unit

column_definition_ref

relation_name . column_name relation_name . relation_name . column_name

outer_join_type

FULL OUTER JOIN LEFT OUTER JOIN RIGHT OUTER JOIN

relation_factor_in_leading_hint

( relation_factor_in_hint_list )

win_interval

expr INTERVAL expr date_unit

win_preceding_or_following

PRECEDING FOLLOWING

dot_relation_factor

. relation_name . mysql_reserved_keyword

name_list

NAME_OB name_list NAME_OB name_list , NAME_OB

sample_percent

INTNUM DECIMAL_VAL

index_hint_definition

USE key_or_index index_hint_scope ( index_list ) index_hint_type key_or_index index_hint_scope ( index_list )

simple_expr

simple_expr collation BINARY simple_expr column_ref expr_const simple_expr CNNOP simple_expr + simple_expr - simple_expr ~ simple_expr not2 simple_expr select_with_parens ( expr ) ( expr_list , expr ) ROW ( expr_list , expr ) EXISTS select_with_parens MATCH ( column_list ) AGAINST ( STRING_VALUE IN NATURAL LANGUAGE MODE IN BOOLEAN MODE ) case_expr func_expr window_function USER_VARIABLE column_definition_ref JSON_EXTRACT complex_string_literal column_definition_ref JSON_EXTRACT_UNQUOTED complex_string_literal

date_unit

DAY DAY_HOUR DAY_MICROSECOND DAY_MINUTE DAY_SECOND HOUR HOUR_MICROSECOND HOUR_MINUTE HOUR_SECOND MICROSECOND MINUTE MINUTE_MICROSECOND MINUTE_SECOND MONTH QUARTER SECOND SECOND_MICROSECOND WEEK YEAR YEAR_MONTH

key_or_index

KEY INDEX

index_hint_scope

empty FOR JOIN ORDER BY GROUP BY

index_list

index_element , index_element

index_hint_type

FORCE IGNORE

collation

COLLATE collation_name

expr_const

literal SYSTEM_VARIABLE QUESTIONMARK global_or_session_alias . column_name

not2

! NOT

case_expr

CASE case_arg when_clause_list case_default END

func_expr

MOD ( expr , expr ) COUNT ( ALL * ) COUNT ( ALL expr ) COUNT ( DISTINCT expr_list ) COUNT ( UNIQUE expr_list ) APPROX_COUNT_DISTINCT ( expr_list ) APPROX_COUNT_DISTINCT_SYNOPSIS ( expr_list ) APPROX_COUNT_DISTINCT_SYNOPSIS_MERGE ( expr ) SUM ( ALL DISTINCT UNIQUE expr ) MAX ( ALL DISTINCT UNIQUE expr ) MIN ( ALL DISTINCT UNIQUE expr ) AVG ( ALL DISTINCT UNIQUE expr ) JSON_ARRAYAGG ( ALL DISTINCT UNIQUE expr ) JSON_OBJECTAGG ( expr , expr ) STD ( ALL expr ) STDDEV ( ALL expr ) VARIANCE ( ALL expr ) STDDEV_POP ( ALL expr ) STDDEV_SAMP ( ALL expr ) VAR_POP ( ALL expr ) VAR_SAMP ( ALL expr ) BIT_AND ( ALL expr ) BIT_OR ( ALL expr ) BIT_XOR ( ALL expr ) GROUPING ( expr ) GROUP_CONCAT ( DISTINCT UNIQUE expr_list order_by SEPARATOR STRING_VALUE ) TOP_K_FRE_HIST ( bit_expr , bit_expr , bit_expr ) HYBRID_HIST ( bit_expr , bit_expr ) IF ( expr , expr , expr ) ISNULL ( expr ) cur_timestamp_func sysdate_func cur_time_func cur_date_func utc_timestamp_func utc_time_func utc_date_func CAST ( expr AS cast_data_type ) INSERT ( expr , expr , expr , expr ) LEFT ( expr , expr ) CONVERT ( expr , cast_data_type ) CONVERT ( expr USING charset_name ) POSITION ( bit_expr IN expr ) substr_or_substring ( substr_params ) TRIM ( parameterized_trim ) DATE ( expr ) YEAR ( expr ) TIME ( expr ) TIMESTAMP ( expr ) TIMESTAMP ( expr , expr ) MONTH ( expr ) WEEK ( expr ) WEEK ( expr , expr ) QUARTER ( expr ) SECOND ( expr ) GET_FORMAT ( get_format_unit , expr ) MINUTE ( expr ) MICROSECOND ( expr ) HOUR ( expr ) DATE_ADD ( date_params ) DATE_SUB ( date_params ) ADDDATE ( date_params ) SUBDATE ( date_params ) ADDDATE ( expr , expr ) SUBDATE ( expr , expr ) TIMESTAMPDIFF ( timestamp_params ) TIMESTAMPADD ( timestamp_params ) EXTRACT ( date_unit FROM expr ) ASCII ( expr ) DEFAULT ( column_definition_ref ) VALUES ( column_definition_ref ) CHARACTER ( expr_list ) CHARACTER ( expr_list USING charset_name ) LOG ( expr , expr ) LOG ( expr ) LN ( expr ) function_name ( expr_as_list ) relation_name . function_name ( expr_as_list ) sys_interval_func CALC_PARTITION_ID ( bit_expr , bit_expr ) WEIGHT_STRING ( expr AS CHARACTER ws_nweights LEVEL ws_level_list_or_range ) WEIGHT_STRING ( expr AS BINARY ws_nweights ) WEIGHT_STRING ( expr , INTNUM , INTNUM , INTNUM , INTNUM ) json_value_expr

window_function

COUNT ( ALL * ) OVER new_generalized_window_clause COUNT ( ALL expr ) OVER new_generalized_window_clause COUNT ( DISTINCT expr_list ) OVER new_generalized_window_clause APPROX_COUNT_DISTINCT ( expr_list ) OVER new_generalized_window_clause APPROX_COUNT_DISTINCT_SYNOPSIS ( expr_list ) OVER new_generalized_window_clause APPROX_COUNT_DISTINCT_SYNOPSIS_MERGE ( expr ) OVER new_generalized_window_clause SUM ( ALL DISTINCT UNIQUE expr ) OVER new_generalized_window_clause MAX ( ALL DISTINCT UNIQUE expr ) OVER new_generalized_window_clause MIN ( ALL DISTINCT UNIQUE expr ) OVER new_generalized_window_clause AVG ( ALL DISTINCT UNIQUE expr ) OVER new_generalized_window_clause JSON_ARRAYAGG ( ALL DISTINCT UNIQUE expr ) OVER new_generalized_window_clause JSON_OBJECTAGG ( expr , expr ) OVER new_generalized_window_clause STD ( ALL expr ) OVER new_generalized_window_clause STDDEV ( ALL expr ) OVER new_generalized_window_clause VARIANCE ( ALL expr ) OVER new_generalized_window_clause STDDEV_POP ( ALL expr ) OVER new_generalized_window_clause STDDEV_SAMP ( ALL expr ) OVER new_generalized_window_clause VAR_POP ( ALL expr ) OVER new_generalized_window_clause VAR_SAMP ( ALL expr ) OVER new_generalized_window_clause GROUP_CONCAT ( DISTINCT UNIQUE expr_list order_by SEPARATOR STRING_VALUE ) OVER new_generalized_window_clause LISTAGG ( DISTINCT UNIQUE expr_list order_by SEPARATOR STRING_VALUE ) OVER new_generalized_window_clause RANK ( ) OVER new_generalized_window_clause DENSE_RANK ( ) OVER new_generalized_window_clause PERCENT_RANK ( ) OVER new_generalized_window_clause ROW_NUMBER ( ) OVER new_generalized_window_clause NTILE ( expr ) OVER new_generalized_window_clause CUME_DIST ( ) OVER new_generalized_window_clause FIRST_VALUE win_fun_first_last_params OVER new_generalized_window_clause LAST_VALUE win_fun_first_last_params OVER new_generalized_window_clause LEAD win_fun_lead_lag_params OVER new_generalized_window_clause LAG win_fun_lead_lag_params OVER new_generalized_window_clause NTH_VALUE ( expr , expr ) FROM first_or_last respect_or_ignore NULLS OVER new_generalized_window_clause TOP_K_FRE_HIST ( bit_expr , bit_expr , bit_expr ) OVER new_generalized_window_clause HYBRID_HIST ( bit_expr , bit_expr ) OVER new_generalized_window_clause

complex_string_literal

charset_introducer STRING_VALUE charset_introducer PARSER_SYNTAX_ERROR

index_element

NAME_OB PRIMARY

collation_name

NAME_OB STRING_VALUE

literal

complex_string_literal DATE_VALUE TIMESTAMP_VALUE INTNUM APPROXNUM DECIMAL_VAL BOOL_VALUE NULLX PARSER_SYNTAX_ERROR

global_or_session_alias

GLOBAL_ALIAS SESSION_ALIAS

case_arg

expr

when_clause_list

when_clause

case_default

ELSE expr empty

cur_timestamp_func

NOW ( ) NOW ( INTNUM ) now_synonyms_func ( INTNUM ) ( )

sysdate_func

SYSDATE ( INTNUM )

cur_time_func

CURTIME ( ) CURTIME ( INTNUM ) CURRENT_TIME ( INTNUM ) ( )

cur_date_func

CURDATE CURRENT_DATE ( ) CURRENT_DATE

utc_timestamp_func

UTC_TIMESTAMP UTC_TIMESTAMP ( INTNUM )

utc_time_func

UTC_TIME UTC_TIME ( INTNUM )

utc_date_func

UTC_DATE ( )

cast_data_type

BINARY string_length_i CHARACTER string_length_i BINARY cast_datetime_type_i ( INTNUM ) NUMBER ( INTNUM , INTNUM ) ( INTNUM ) DECIMAL ( INTNUM , INTNUM ) ( INTNUM ) FIXED ( INTNUM , INTNUM ) ( INTNUM ) SIGNED INTEGER UNSIGNED INTEGER DOUBLE FLOAT ( INTNUM ) JSON

substr_or_substring

SUBSTR SUBSTRING

substr_params

expr , expr , expr expr FROM expr FOR expr

parameterized_trim

BOTH FROM expr BOTH expr FROM expr LEADING TRAILING expr FROM expr

get_format_unit

DATETIME TIMESTAMP DATE TIME

date_params

expr , INTERVAL expr date_unit

timestamp_params

date_unit , expr , expr

function_name

NAME_OB DUMP CHARSET COLLATION KEY_VERSION USER DATABASE SCHEMA COALESCE REPEAT ROW_COUNT REVERSE RIGHT CURRENT_USER SYSTEM_USER SESSION_USER REPLACE TRUNCATE FORMAT

expr_as_list

expr_with_opt_alias , expr_with_opt_alias

sys_interval_func

INTERVAL ( expr , expr , expr_list )

ws_nweights

( INTNUM )

ws_level_list_or_range

ws_level_list ws_level_range

json_value_expr

JSON_VALUE ( simple_expr , complex_string_literal RETURNING cast_data_type on_empty on_error on_empty on_error )

new_generalized_window_clause

NAME_OB new_generalized_window_clause_with_blanket

win_fun_first_last_params

( expr respect_or_ignore NULLS ) ( expr ) respect_or_ignore NULLS

win_fun_lead_lag_params

( expr respect_or_ignore NULLS ) ( expr respect_or_ignore NULLS , expr_list ) ( expr_list ) respect_or_ignore NULLS

first_or_last

FIRST LAST

respect_or_ignore

RESPECT IGNORE

charset_introducer

UnderlineUTF8 UnderlineUTF8MB4 UnderlineBINARY UnderlineGBK UnderlineGB18030 UnderlineUTF16

when_clause

WHEN expr THEN expr

now_synonyms_func

CURRENT_TIMESTAMP LOCALTIME LOCALTIMESTAMP

string_length_i

( number_literal )

cast_datetime_type_i

DATETIME DATE TIME YEAR

expr_with_opt_alias

expr expr AS column_label expr AS STRING_VALUE

ws_level_list

ws_level_list_item , ws_level_list_item

ws_level_range

ws_level_number - ws_level_number

on_empty

json_on_response ON EMPTY

on_error

json_on_response ON ERROR_P

number_literal

INTNUM DECIMAL_VAL

ws_level_list_item

ws_level_number ws_level_flags

ws_level_number

INTNUM

json_on_response

ERROR_P NULLX DEFAULT signed_literal

ws_level_flags

empty ws_level_flag_desc ws_level_flag_reverse ws_level_flag_reverse

signed_literal

literal + number_literal - number_literal

ws_level_flag_desc

ASC DESC

ws_level_flag_reverse

REVERSE