And also I did the same for percona server but they have not enabled issues on their repository (where I normally post) so here it is for sqlite users to make comparison: EBNF for https://www.bottlecaps.de/rr/ui : ==== /* From https://raw.githubusercontent.com/percona/percona-server/8.0/sql/sql_yacc.yy */ start_entry ::= sql_statement | GRAMMAR_SELECTOR_EXPR bit_expr END_OF_INPUT | GRAMMAR_SELECTOR_PART partition_clause END_OF_INPUT | GRAMMAR_SELECTOR_GCOL IDENT_sys '(' expr ')' END_OF_INPUT | GRAMMAR_SELECTOR_CTE table_subquery END_OF_INPUT | GRAMMAR_SELECTOR_DERIVED_EXPR expr END_OF_INPUT sql_statement ::= END_OF_INPUT | simple_statement_or_begin ';' opt_end_of_input | simple_statement_or_begin END_OF_INPUT opt_end_of_input ::= /*empty*/ | END_OF_INPUT simple_statement_or_begin ::= simple_statement | begin_stmt simple_statement ::= alter_database_stmt | alter_event_stmt | alter_function_stmt | alter_instance_stmt | alter_logfile_stmt | alter_procedure_stmt | alter_resource_group_stmt | alter_server_stmt | alter_tablespace_stmt | alter_undo_tablespace_stmt | alter_table_stmt | alter_user_stmt | alter_view_stmt | analyze_table_stmt | binlog_base64_event | call_stmt | change | check_table_stmt | checksum | clone_stmt | commit | create | create_index_stmt | create_resource_group_stmt | create_role_stmt | create_srs_stmt | create_table_stmt | deallocate | delete_stmt | describe_stmt | do_stmt | drop_database_stmt | drop_event_stmt | drop_function_stmt | drop_index_stmt | drop_logfile_stmt | drop_procedure_stmt | drop_resource_group_stmt | drop_role_stmt | drop_server_stmt | drop_srs_stmt | drop_tablespace_stmt | drop_undo_tablespace_stmt | drop_table_stmt | drop_trigger_stmt | drop_user_stmt | drop_view_stmt | execute | explain_stmt | flush | get_diagnostics | group_replication | grant | handler_stmt | help | import_stmt | insert_stmt | install | kill | load_stmt | lock | optimize_table_stmt | keycache_stmt | preload_stmt | prepare | purge | release | rename | repair_table_stmt | replace_stmt | reset | resignal_stmt | restart_server_stmt | revoke | rollback | savepoint | select_stmt | set | set_resource_group_stmt | set_role_stmt | show_binary_logs_stmt | show_binlog_events_stmt | show_character_set_stmt | show_collation_stmt | show_columns_stmt | show_count_errors_stmt | show_count_warnings_stmt | show_create_database_stmt | show_create_event_stmt | show_create_function_stmt | show_create_procedure_stmt | show_create_table_stmt | show_create_trigger_stmt | show_create_user_stmt | show_create_view_stmt | show_databases_stmt | show_engine_logs_stmt | show_engine_mutex_stmt | show_engine_status_stmt | show_engines_stmt | show_errors_stmt | show_events_stmt | show_function_code_stmt | show_function_status_stmt | show_grants_stmt | show_keys_stmt | show_master_status_stmt | show_open_tables_stmt | show_plugins_stmt | show_privileges_stmt | show_procedure_code_stmt | show_procedure_status_stmt | show_processlist_stmt | show_profile_stmt | show_profiles_stmt | show_relaylog_events_stmt | show_replica_status_stmt | show_replicas_stmt | show_stats_stmt | show_status_stmt | show_table_status_stmt | show_tables_stmt | show_triggers_stmt | show_variables_stmt | show_warnings_stmt | shutdown_stmt | signal_stmt | start | start_replica_stmt | stop_replica_stmt | truncate_stmt | uninstall | unlock | update_stmt | use | xa deallocate ::= deallocate_or_drop PREPARE_SYM ident deallocate_or_drop ::= DEALLOCATE_SYM | DROP prepare ::= PREPARE_SYM ident FROM prepare_src prepare_src ::= TEXT_STRING_sys | '@' ident_or_text execute ::= EXECUTE_SYM ident execute_using execute_using ::= /*empty*/ | USING execute_var_list execute_var_list ::= execute_var_list ',' execute_var_ident | execute_var_ident execute_var_ident ::= '@' ident_or_text help ::= HELP_SYM ident_or_text change_replication_source ::= MASTER_SYM | REPLICATION SOURCE_SYM change ::= CHANGE change_replication_source TO_SYM source_defs opt_channel | CHANGE REPLICATION FILTER_SYM filter_defs opt_channel filter_defs ::= filter_def | filter_defs ',' filter_def filter_def ::= REPLICATE_DO_DB EQ opt_filter_db_list | REPLICATE_IGNORE_DB EQ opt_filter_db_list | REPLICATE_DO_TABLE EQ opt_filter_table_list | REPLICATE_IGNORE_TABLE EQ opt_filter_table_list | REPLICATE_WILD_DO_TABLE EQ opt_filter_string_list | REPLICATE_WILD_IGNORE_TABLE EQ opt_filter_string_list | REPLICATE_REWRITE_DB EQ opt_filter_db_pair_list opt_filter_db_list ::= '(' ')' | '(' filter_db_list ')' filter_db_list ::= filter_db_ident | filter_db_list ',' filter_db_ident filter_db_ident ::= ident opt_filter_db_pair_list ::= '(' ')' | '(' filter_db_pair_list ')' filter_db_pair_list ::= '(' filter_db_ident ',' filter_db_ident ')' | filter_db_pair_list ',' '(' filter_db_ident ',' filter_db_ident ')' opt_filter_table_list ::= '(' ')' | '(' filter_table_list ')' filter_table_list ::= filter_table_ident | filter_table_list ',' filter_table_ident filter_table_ident ::= schema '.' ident opt_filter_string_list ::= '(' ')' | '(' filter_string_list ')' filter_string_list ::= filter_string | filter_string_list ',' filter_string filter_string ::= filter_wild_db_table_string source_defs ::= source_def | source_defs ',' source_def change_replication_source_auto_position ::= MASTER_AUTO_POSITION_SYM | SOURCE_AUTO_POSITION_SYM change_replication_source_host ::= MASTER_HOST_SYM | SOURCE_HOST_SYM change_replication_source_bind ::= MASTER_BIND_SYM | SOURCE_BIND_SYM change_replication_source_user ::= MASTER_USER_SYM | SOURCE_USER_SYM change_replication_source_password ::= MASTER_PASSWORD_SYM | SOURCE_PASSWORD_SYM change_replication_source_port ::= MASTER_PORT_SYM | SOURCE_PORT_SYM change_replication_source_connect_retry ::= MASTER_CONNECT_RETRY_SYM | SOURCE_CONNECT_RETRY_SYM change_replication_source_retry_count ::= MASTER_RETRY_COUNT_SYM | SOURCE_RETRY_COUNT_SYM change_replication_source_delay ::= MASTER_DELAY_SYM | SOURCE_DELAY_SYM change_replication_source_ssl ::= MASTER_SSL_SYM | SOURCE_SSL_SYM change_replication_source_ssl_ca ::= MASTER_SSL_CA_SYM | SOURCE_SSL_CA_SYM change_replication_source_ssl_capath ::= MASTER_SSL_CAPATH_SYM | SOURCE_SSL_CAPATH_SYM change_replication_source_ssl_cipher ::= MASTER_SSL_CIPHER_SYM | SOURCE_SSL_CIPHER_SYM change_replication_source_ssl_crl ::= MASTER_SSL_CRL_SYM | SOURCE_SSL_CRL_SYM change_replication_source_ssl_crlpath ::= MASTER_SSL_CRLPATH_SYM | SOURCE_SSL_CRLPATH_SYM change_replication_source_ssl_key ::= MASTER_SSL_KEY_SYM | SOURCE_SSL_KEY_SYM change_replication_source_ssl_verify_server_cert ::= MASTER_SSL_VERIFY_SERVER_CERT_SYM | SOURCE_SSL_VERIFY_SERVER_CERT_SYM change_replication_source_tls_version ::= MASTER_TLS_VERSION_SYM | SOURCE_TLS_VERSION_SYM change_replication_source_tls_ciphersuites ::= MASTER_TLS_CIPHERSUITES_SYM | SOURCE_TLS_CIPHERSUITES_SYM change_replication_source_ssl_cert ::= MASTER_SSL_CERT_SYM | SOURCE_SSL_CERT_SYM change_replication_source_public_key ::= MASTER_PUBLIC_KEY_PATH_SYM | SOURCE_PUBLIC_KEY_PATH_SYM change_replication_source_get_source_public_key ::= GET_MASTER_PUBLIC_KEY_SYM | GET_SOURCE_PUBLIC_KEY_SYM change_replication_source_heartbeat_period ::= MASTER_HEARTBEAT_PERIOD_SYM | SOURCE_HEARTBEAT_PERIOD_SYM change_replication_source_compression_algorithm ::= MASTER_COMPRESSION_ALGORITHM_SYM | SOURCE_COMPRESSION_ALGORITHM_SYM change_replication_source_zstd_compression_level ::= MASTER_ZSTD_COMPRESSION_LEVEL_SYM | SOURCE_ZSTD_COMPRESSION_LEVEL_SYM source_def ::= change_replication_source_host EQ TEXT_STRING_sys_nonewline | NETWORK_NAMESPACE_SYM EQ TEXT_STRING_sys_nonewline | change_replication_source_bind EQ TEXT_STRING_sys_nonewline | change_replication_source_user EQ TEXT_STRING_sys_nonewline | change_replication_source_password EQ TEXT_STRING_sys_nonewline | change_replication_source_port EQ ulong_num | change_replication_source_connect_retry EQ ulong_num | change_replication_source_retry_count EQ ulong_num | change_replication_source_delay EQ ulong_num | change_replication_source_ssl EQ ulong_num | change_replication_source_ssl_ca EQ TEXT_STRING_sys_nonewline | change_replication_source_ssl_capath EQ TEXT_STRING_sys_nonewline | change_replication_source_tls_version EQ TEXT_STRING_sys_nonewline | change_replication_source_tls_ciphersuites EQ source_tls_ciphersuites_def | change_replication_source_ssl_cert EQ TEXT_STRING_sys_nonewline | change_replication_source_ssl_cipher EQ TEXT_STRING_sys_nonewline | change_replication_source_ssl_key EQ TEXT_STRING_sys_nonewline | change_replication_source_ssl_verify_server_cert EQ ulong_num | change_replication_source_ssl_crl EQ TEXT_STRING_sys_nonewline | change_replication_source_ssl_crlpath EQ TEXT_STRING_sys_nonewline | change_replication_source_public_key EQ TEXT_STRING_sys_nonewline | change_replication_source_get_source_public_key EQ ulong_num | change_replication_source_heartbeat_period EQ NUM_literal | IGNORE_SERVER_IDS_SYM EQ '(' ignore_server_id_list ')' | change_replication_source_compression_algorithm EQ TEXT_STRING_sys | change_replication_source_zstd_compression_level EQ ulong_num | change_replication_source_auto_position EQ ulong_num | PRIVILEGE_CHECKS_USER_SYM EQ privilege_check_def | REQUIRE_ROW_FORMAT_SYM EQ ulong_num | REQUIRE_TABLE_PRIMARY_KEY_CHECK_SYM EQ table_primary_key_check_def | SOURCE_CONNECTION_AUTO_FAILOVER_SYM EQ real_ulong_num | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS_SYM EQ assign_gtids_to_anonymous_transactions_def | source_file_def ignore_server_id_list ::= /*empty*/ | ignore_server_id | ignore_server_id_list ',' ignore_server_id ignore_server_id ::= ulong_num privilege_check_def ::= user_ident_or_text | NULL_SYM table_primary_key_check_def ::= STREAM_SYM | ON_SYM | OFF_SYM assign_gtids_to_anonymous_transactions_def ::= OFF_SYM | LOCAL_SYM | TEXT_STRING source_tls_ciphersuites_def ::= TEXT_STRING_sys_nonewline | NULL_SYM source_log_file ::= MASTER_LOG_FILE_SYM | SOURCE_LOG_FILE_SYM source_log_pos ::= MASTER_LOG_POS_SYM | SOURCE_LOG_POS_SYM source_file_def ::= source_log_file EQ TEXT_STRING_sys_nonewline | source_log_pos EQ ulonglong_num | RELAY_LOG_FILE_SYM EQ TEXT_STRING_sys_nonewline | RELAY_LOG_POS_SYM EQ ulong_num opt_channel ::= | FOR_SYM CHANNEL_SYM TEXT_STRING_sys_nonewline create_table_stmt ::= CREATE opt_temporary TABLE_SYM opt_if_not_exists table_ident '(' table_element_list ')' opt_create_table_options_etc | CREATE opt_temporary TABLE_SYM opt_if_not_exists table_ident opt_create_table_options_etc | CREATE opt_temporary TABLE_SYM opt_if_not_exists table_ident LIKE table_ident | CREATE opt_temporary TABLE_SYM opt_if_not_exists table_ident '(' LIKE table_ident ')' create_role_stmt ::= CREATE ROLE_SYM opt_if_not_exists role_list create_resource_group_stmt ::= CREATE RESOURCE_SYM GROUP_SYM ident TYPE_SYM opt_equal resource_group_types opt_resource_group_vcpu_list opt_resource_group_priority opt_resource_group_enable_disable create ::= CREATE DATABASE opt_if_not_exists ident opt_create_database_options | CREATE view_or_trigger_or_sp_or_event | CREATE USER opt_if_not_exists create_user_list default_role_clause require_clause connect_options opt_account_lock_password_expire_options opt_user_attribute | CREATE LOGFILE_SYM GROUP_SYM ident ADD lg_undofile opt_logfile_group_options | CREATE TABLESPACE_SYM ident opt_ts_datafile_name opt_logfile_group_name opt_tablespace_options | CREATE UNDO_SYM TABLESPACE_SYM ident ADD ts_datafile opt_undo_tablespace_options | CREATE SERVER_SYM ident_or_text FOREIGN DATA_SYM WRAPPER_SYM ident_or_text OPTIONS_SYM '(' server_options_list ')' | CREATE COMPRESSION_DICTIONARY_SYM opt_if_not_exists ident '(' create_compression_dictionary_allowed_expr ')' create_srs_stmt ::= CREATE OR_SYM REPLACE_SYM SPATIAL_SYM REFERENCE_SYM SYSTEM_SYM real_ulonglong_num srs_attributes | CREATE SPATIAL_SYM REFERENCE_SYM SYSTEM_SYM opt_if_not_exists real_ulonglong_num srs_attributes srs_attributes ::= | srs_attributes NAME_SYM TEXT_STRING_sys_nonewline | srs_attributes DEFINITION_SYM TEXT_STRING_sys_nonewline | srs_attributes ORGANIZATION_SYM TEXT_STRING_sys_nonewline IDENTIFIED_SYM BY real_ulonglong_num | srs_attributes DESCRIPTION_SYM TEXT_STRING_sys_nonewline default_role_clause ::= | DEFAULT_SYM ROLE_SYM role_list create_index_stmt ::= CREATE opt_unique_combo_clustering INDEX_SYM ident opt_index_type_clause ON_SYM table_ident '(' key_list_with_expression ')' opt_index_options opt_index_lock_and_algorithm | CREATE FULLTEXT_SYM INDEX_SYM ident ON_SYM table_ident '(' key_list_with_expression ')' opt_fulltext_index_options opt_index_lock_and_algorithm | CREATE SPATIAL_SYM INDEX_SYM ident ON_SYM table_ident '(' key_list_with_expression ')' opt_spatial_index_options opt_index_lock_and_algorithm create_compression_dictionary_allowed_expr ::= text_literal | variable server_options_list ::= server_option | server_options_list ',' server_option server_option ::= USER TEXT_STRING_sys | HOST_SYM TEXT_STRING_sys | DATABASE TEXT_STRING_sys | OWNER_SYM TEXT_STRING_sys | PASSWORD TEXT_STRING_sys | SOCKET_SYM TEXT_STRING_sys | PORT_SYM ulong_num event_tail ::= EVENT_SYM opt_if_not_exists sp_name ON_SYM SCHEDULE_SYM ev_schedule_time opt_ev_on_completion opt_ev_status opt_ev_comment DO_SYM ev_sql_stmt ev_schedule_time ::= EVERY_SYM expr interval ev_starts ev_ends | AT_SYM expr opt_ev_status ::= | ENABLE_SYM | DISABLE_SYM ON_SYM SLAVE | DISABLE_SYM ev_starts ::= | STARTS_SYM expr ev_ends ::= /*empty*/ | ENDS_SYM expr opt_ev_on_completion ::= | ev_on_completion ev_on_completion ::= ON_SYM COMPLETION_SYM PRESERVE_SYM | ON_SYM COMPLETION_SYM NOT_SYM PRESERVE_SYM opt_ev_comment ::= | COMMENT_SYM TEXT_STRING_sys ev_sql_stmt ::= ev_sql_stmt_inner ev_sql_stmt_inner ::= sp_proc_stmt_statement | sp_proc_stmt_return | sp_proc_stmt_if | case_stmt_specification | sp_labeled_block | sp_unlabeled_block | sp_labeled_control | sp_proc_stmt_unlabeled | sp_proc_stmt_leave | sp_proc_stmt_iterate | sp_proc_stmt_open | sp_proc_stmt_fetch | sp_proc_stmt_close sp_name ::= ident '.' ident | ident sp_a_chistics ::= | sp_a_chistics sp_chistic sp_c_chistics ::= | sp_c_chistics sp_c_chistic sp_chistic ::= COMMENT_SYM TEXT_STRING_sys | LANGUAGE_SYM SQL_SYM | NO_SYM SQL_SYM | CONTAINS_SYM SQL_SYM | READS_SYM SQL_SYM DATA_SYM | MODIFIES_SYM SQL_SYM DATA_SYM | sp_suid sp_c_chistic ::= sp_chistic | DETERMINISTIC_SYM | not DETERMINISTIC_SYM sp_suid ::= SQL_SYM SECURITY_SYM DEFINER_SYM | SQL_SYM SECURITY_SYM INVOKER_SYM call_stmt ::= CALL_SYM sp_name opt_paren_expr_list opt_paren_expr_list ::= | '(' opt_expr_list ')' sp_fdparam_list ::= /*empty*/ | sp_fdparams sp_fdparams ::= sp_fdparams ',' sp_fdparam | sp_fdparam sp_fdparam ::= ident type opt_collate sp_pdparam_list ::= /*empty*/ | sp_pdparams sp_pdparams ::= sp_pdparams ',' sp_pdparam | sp_pdparam sp_pdparam ::= sp_opt_inout ident type opt_collate sp_opt_inout ::= | IN_SYM | OUT_SYM | INOUT_SYM sp_proc_stmts ::= | sp_proc_stmts sp_proc_stmt ';' sp_proc_stmts1 ::= sp_proc_stmt ';' | sp_proc_stmts1 sp_proc_stmt ';' sp_decls ::= | sp_decls sp_decl ';' sp_decl ::= DECLARE_SYM sp_decl_idents type opt_collate sp_opt_default | DECLARE_SYM ident CONDITION_SYM FOR_SYM sp_cond | DECLARE_SYM sp_handler_type HANDLER_SYM FOR_SYM sp_hcond_list sp_proc_stmt | DECLARE_SYM ident CURSOR_SYM FOR_SYM select_stmt sp_handler_type ::= EXIT_SYM | CONTINUE_SYM sp_hcond_list ::= sp_hcond_element | sp_hcond_list ',' sp_hcond_element sp_hcond_element ::= sp_hcond sp_cond ::= ulong_num | sqlstate sqlstate ::= SQLSTATE_SYM opt_value TEXT_STRING_literal opt_value ::= | VALUE_SYM sp_hcond ::= sp_cond | ident | SQLWARNING_SYM | not FOUND_SYM | SQLEXCEPTION_SYM signal_stmt ::= SIGNAL_SYM signal_value opt_set_signal_information signal_value ::= ident | sqlstate opt_signal_value ::= | signal_value opt_set_signal_information ::= | SET_SYM signal_information_item_list signal_information_item_list ::= signal_condition_information_item_name EQ signal_allowed_expr | signal_information_item_list ',' signal_condition_information_item_name EQ signal_allowed_expr signal_allowed_expr ::= literal_or_null | variable | simple_ident signal_condition_information_item_name ::= CLASS_ORIGIN_SYM | SUBCLASS_ORIGIN_SYM | CONSTRAINT_CATALOG_SYM | CONSTRAINT_SCHEMA_SYM | CONSTRAINT_NAME_SYM | CATALOG_NAME_SYM | SCHEMA_NAME_SYM | TABLE_NAME_SYM | COLUMN_NAME_SYM | CURSOR_NAME_SYM | MESSAGE_TEXT_SYM | MYSQL_ERRNO_SYM resignal_stmt ::= RESIGNAL_SYM opt_signal_value opt_set_signal_information get_diagnostics ::= GET_SYM which_area DIAGNOSTICS_SYM diagnostics_information which_area ::= | CURRENT_SYM | STACKED_SYM diagnostics_information ::= statement_information | CONDITION_SYM condition_number condition_information statement_information ::= statement_information_item | statement_information ',' statement_information_item statement_information_item ::= simple_target_specification EQ statement_information_item_name simple_target_specification ::= ident | '@' ident_or_text statement_information_item_name ::= NUMBER_SYM | ROW_COUNT_SYM condition_number ::= signal_allowed_expr condition_information ::= condition_information_item | condition_information ',' condition_information_item condition_information_item ::= simple_target_specification EQ condition_information_item_name condition_information_item_name ::= CLASS_ORIGIN_SYM | SUBCLASS_ORIGIN_SYM | CONSTRAINT_CATALOG_SYM | CONSTRAINT_SCHEMA_SYM | CONSTRAINT_NAME_SYM | CATALOG_NAME_SYM | SCHEMA_NAME_SYM | TABLE_NAME_SYM | COLUMN_NAME_SYM | CURSOR_NAME_SYM | MESSAGE_TEXT_SYM | MYSQL_ERRNO_SYM | RETURNED_SQLSTATE_SYM sp_decl_idents ::= ident | sp_decl_idents ',' ident sp_opt_default ::= | DEFAULT_SYM expr sp_proc_stmt ::= sp_proc_stmt_statement | sp_proc_stmt_return | sp_proc_stmt_if | case_stmt_specification | sp_labeled_block | sp_unlabeled_block | sp_labeled_control | sp_proc_stmt_unlabeled | sp_proc_stmt_leave | sp_proc_stmt_iterate | sp_proc_stmt_open | sp_proc_stmt_fetch | sp_proc_stmt_close sp_proc_stmt_if ::= IF sp_if END IF sp_proc_stmt_statement ::= simple_statement sp_proc_stmt_return ::= RETURN_SYM expr sp_proc_stmt_unlabeled ::= sp_unlabeled_control sp_proc_stmt_leave ::= LEAVE_SYM label_ident sp_proc_stmt_iterate ::= ITERATE_SYM label_ident sp_proc_stmt_open ::= OPEN_SYM ident sp_proc_stmt_fetch ::= FETCH_SYM sp_opt_fetch_noise ident INTO sp_fetch_list sp_proc_stmt_close ::= CLOSE_SYM ident sp_opt_fetch_noise ::= /*empty*/ | NEXT_SYM FROM | FROM sp_fetch_list ::= ident | sp_fetch_list ',' ident sp_if ::= expr THEN_SYM sp_proc_stmts1 sp_elseifs sp_elseifs ::= /*empty*/ | ELSEIF_SYM sp_if | ELSE sp_proc_stmts1 case_stmt_specification ::= simple_case_stmt | searched_case_stmt simple_case_stmt ::= CASE_SYM expr simple_when_clause_list else_clause_opt END CASE_SYM searched_case_stmt ::= CASE_SYM searched_when_clause_list else_clause_opt END CASE_SYM simple_when_clause_list ::= simple_when_clause | simple_when_clause_list simple_when_clause searched_when_clause_list ::= searched_when_clause | searched_when_clause_list searched_when_clause simple_when_clause ::= WHEN_SYM expr THEN_SYM sp_proc_stmts1 searched_when_clause ::= WHEN_SYM expr THEN_SYM sp_proc_stmts1 else_clause_opt ::= | ELSE sp_proc_stmts1 sp_labeled_control ::= label_ident ':' sp_unlabeled_control sp_opt_label sp_opt_label ::= | label_ident sp_labeled_block ::= label_ident ':' sp_block_content sp_opt_label sp_unlabeled_block ::= sp_block_content sp_block_content ::= BEGIN_SYM sp_decls sp_proc_stmts END sp_unlabeled_control ::= LOOP_SYM sp_proc_stmts1 END LOOP_SYM | WHILE_SYM expr DO_SYM sp_proc_stmts1 END WHILE_SYM | REPEAT_SYM sp_proc_stmts1 UNTIL_SYM expr END REPEAT_SYM trg_action_time ::= BEFORE_SYM | AFTER_SYM trg_event ::= INSERT_SYM | UPDATE_SYM | DELETE_SYM opt_ts_datafile_name ::= | ADD ts_datafile opt_logfile_group_name ::= | USE_SYM LOGFILE_SYM GROUP_SYM ident opt_tablespace_options ::= | tablespace_option_list tablespace_option_list ::= tablespace_option | tablespace_option_list opt_comma tablespace_option tablespace_option ::= ts_option_initial_size | ts_option_autoextend_size | ts_option_max_size | ts_option_extent_size | ts_option_nodegroup | ts_option_engine | ts_option_wait | ts_option_comment | ts_option_file_block_size | ts_option_encryption | ts_option_encryption_key_id | ts_option_engine_attribute opt_alter_tablespace_options ::= | alter_tablespace_option_list alter_tablespace_option_list ::= alter_tablespace_option | alter_tablespace_option_list opt_comma alter_tablespace_option alter_tablespace_option ::= ts_option_initial_size | ts_option_autoextend_size | ts_option_max_size | ts_option_engine | ts_option_wait | ts_option_encryption | ts_option_encryption_key_id | ts_option_engine_attribute opt_undo_tablespace_options ::= | undo_tablespace_option_list undo_tablespace_option_list ::= undo_tablespace_option | undo_tablespace_option_list opt_comma undo_tablespace_option undo_tablespace_option ::= ts_option_engine opt_logfile_group_options ::= | logfile_group_option_list logfile_group_option_list ::= logfile_group_option | logfile_group_option_list opt_comma logfile_group_option logfile_group_option ::= ts_option_initial_size | ts_option_undo_buffer_size | ts_option_redo_buffer_size | ts_option_nodegroup | ts_option_engine | ts_option_wait | ts_option_comment opt_alter_logfile_group_options ::= | alter_logfile_group_option_list alter_logfile_group_option_list ::= alter_logfile_group_option | alter_logfile_group_option_list opt_comma alter_logfile_group_option alter_logfile_group_option ::= ts_option_initial_size | ts_option_engine | ts_option_wait ts_datafile ::= DATAFILE_SYM TEXT_STRING_sys undo_tablespace_state ::= ACTIVE_SYM | INACTIVE_SYM lg_undofile ::= UNDOFILE_SYM TEXT_STRING_sys ts_option_initial_size ::= INITIAL_SIZE_SYM opt_equal size_number ts_option_autoextend_size ::= option_autoextend_size option_autoextend_size ::= AUTOEXTEND_SIZE_SYM opt_equal size_number ts_option_max_size ::= MAX_SIZE_SYM opt_equal size_number ts_option_extent_size ::= EXTENT_SIZE_SYM opt_equal size_number ts_option_undo_buffer_size ::= UNDO_BUFFER_SIZE_SYM opt_equal size_number ts_option_redo_buffer_size ::= REDO_BUFFER_SIZE_SYM opt_equal size_number ts_option_nodegroup ::= NODEGROUP_SYM opt_equal real_ulong_num ts_option_comment ::= COMMENT_SYM opt_equal TEXT_STRING_sys ts_option_engine ::= opt_storage ENGINE_SYM opt_equal ident_or_text ts_option_file_block_size ::= FILE_BLOCK_SIZE_SYM opt_equal size_number ts_option_wait ::= WAIT_SYM | NO_WAIT_SYM ts_option_encryption ::= ENCRYPTION_SYM opt_equal TEXT_STRING_sys ts_option_encryption_key_id ::= ENCRYPTION_KEY_ID_SYM opt_equal real_ulong_num ts_option_engine_attribute ::= ENGINE_ATTRIBUTE_SYM opt_equal json_attribute size_number ::= real_ulonglong_num | IDENT_sys opt_create_table_options_etc ::= create_table_options opt_create_partitioning_etc | opt_create_partitioning_etc opt_create_partitioning_etc ::= partition_clause opt_duplicate_as_qe | opt_duplicate_as_qe opt_duplicate_as_qe ::= | duplicate as_create_query_expression | as_create_query_expression as_create_query_expression ::= AS query_expression_or_parens | query_expression_or_parens partition_clause ::= PARTITION_SYM BY part_type_def opt_num_parts opt_sub_part opt_part_defs part_type_def ::= opt_linear KEY_SYM opt_key_algo '(' opt_name_list ')' | opt_linear HASH_SYM '(' bit_expr ')' | RANGE_SYM '(' bit_expr ')' | RANGE_SYM COLUMNS '(' name_list ')' | LIST_SYM '(' bit_expr ')' | LIST_SYM COLUMNS '(' name_list ')' opt_linear ::= | LINEAR_SYM opt_key_algo ::= | ALGORITHM_SYM EQ real_ulong_num opt_num_parts ::= | PARTITIONS_SYM real_ulong_num opt_sub_part ::= | SUBPARTITION_SYM BY opt_linear HASH_SYM '(' bit_expr ')' opt_num_subparts | SUBPARTITION_SYM BY opt_linear KEY_SYM opt_key_algo '(' name_list ')' opt_num_subparts opt_name_list ::= | name_list name_list ::= ident | name_list ',' ident opt_num_subparts ::= | SUBPARTITIONS_SYM real_ulong_num opt_part_defs ::= | '(' part_def_list ')' part_def_list ::= part_definition | part_def_list ',' part_definition part_definition ::= PARTITION_SYM ident opt_part_values opt_part_options opt_sub_partition opt_part_values ::= | VALUES LESS_SYM THAN_SYM part_func_max | VALUES IN_SYM part_values_in part_func_max ::= MAX_VALUE_SYM | part_value_item_list_paren part_values_in ::= part_value_item_list_paren | '(' part_value_list ')' part_value_list ::= part_value_item_list_paren | part_value_list ',' part_value_item_list_paren part_value_item_list_paren ::= '(' part_value_item_list ')' part_value_item_list ::= part_value_item | part_value_item_list ',' part_value_item part_value_item ::= MAX_VALUE_SYM | bit_expr opt_sub_partition ::= | '(' sub_part_list ')' sub_part_list ::= sub_part_definition | sub_part_list ',' sub_part_definition sub_part_definition ::= SUBPARTITION_SYM ident_or_text opt_part_options opt_part_options ::= | part_option_list part_option_list ::= part_option_list part_option | part_option part_option ::= TABLESPACE_SYM opt_equal ident | opt_storage ENGINE_SYM opt_equal ident_or_text | NODEGROUP_SYM opt_equal real_ulong_num | MAX_ROWS opt_equal real_ulonglong_num | MIN_ROWS opt_equal real_ulonglong_num | DATA_SYM DIRECTORY_SYM opt_equal TEXT_STRING_sys | INDEX_SYM DIRECTORY_SYM opt_equal TEXT_STRING_sys | COMMENT_SYM opt_equal TEXT_STRING_sys alter_database_options ::= alter_database_option | alter_database_options alter_database_option alter_database_option ::= create_database_option | READ_SYM ONLY_SYM opt_equal ternary_option opt_create_database_options ::= | create_database_options create_database_options ::= create_database_option | create_database_options create_database_option create_database_option ::= default_collation | default_charset | default_encryption opt_if_not_exists ::= | IF not EXISTS create_table_options_space_separated ::= create_table_option | create_table_options_space_separated create_table_option create_table_options ::= create_table_option | create_table_options opt_comma create_table_option opt_comma ::= /*empty*/ | ',' create_table_option ::= ENGINE_SYM opt_equal ident_or_text | SECONDARY_ENGINE_SYM opt_equal NULL_SYM | SECONDARY_ENGINE_SYM opt_equal ident_or_text | MAX_ROWS opt_equal ulonglong_num | MIN_ROWS opt_equal ulonglong_num | AVG_ROW_LENGTH opt_equal ulong_num | PASSWORD opt_equal TEXT_STRING_sys | COMMENT_SYM opt_equal TEXT_STRING_sys | COMPRESSION_SYM opt_equal TEXT_STRING_sys | ENCRYPTION_SYM opt_equal TEXT_STRING_sys | ENCRYPTION_KEY_ID_SYM opt_equal real_ulong_num | AUTO_INC opt_equal ulonglong_num | PACK_KEYS_SYM opt_equal ternary_option | STATS_AUTO_RECALC_SYM opt_equal ternary_option | STATS_PERSISTENT_SYM opt_equal ternary_option | STATS_SAMPLE_PAGES_SYM opt_equal ulong_num | STATS_SAMPLE_PAGES_SYM opt_equal DEFAULT_SYM | CHECKSUM_SYM opt_equal ulong_num | TABLE_CHECKSUM_SYM opt_equal ulong_num | DELAY_KEY_WRITE_SYM opt_equal ulong_num | ROW_FORMAT_SYM opt_equal row_types | UNION_SYM opt_equal '(' opt_table_list ')' | default_charset | default_collation | INSERT_METHOD opt_equal merge_insert_types | DATA_SYM DIRECTORY_SYM opt_equal TEXT_STRING_sys | INDEX_SYM DIRECTORY_SYM opt_equal TEXT_STRING_sys | TABLESPACE_SYM opt_equal ident | STORAGE_SYM DISK_SYM | STORAGE_SYM MEMORY_SYM | CONNECTION_SYM opt_equal TEXT_STRING_sys | KEY_BLOCK_SIZE opt_equal ulong_num | START_SYM TRANSACTION_SYM | ENGINE_ATTRIBUTE_SYM opt_equal json_attribute | SECONDARY_ENGINE_ATTRIBUTE_SYM opt_equal json_attribute | option_autoextend_size ternary_option ::= ulong_num | DEFAULT_SYM default_charset ::= opt_default character_set opt_equal charset_name default_collation ::= opt_default COLLATE_SYM opt_equal collation_name default_encryption ::= opt_default ENCRYPTION_SYM opt_equal TEXT_STRING_sys row_types ::= DEFAULT_SYM | FIXED_SYM | DYNAMIC_SYM | COMPRESSED_SYM | REDUNDANT_SYM | COMPACT_SYM merge_insert_types ::= NO_SYM | FIRST_SYM | LAST_SYM udf_type ::= STRING_SYM | REAL_SYM | DECIMAL_SYM | INT_SYM table_element_list ::= table_element | table_element_list ',' table_element table_element ::= column_def | table_constraint_def column_def ::= ident field_def opt_references opt_references ::= | references table_constraint_def ::= key_or_index opt_index_name_and_type '(' key_list_with_expression ')' opt_index_options | FULLTEXT_SYM opt_key_or_index opt_ident '(' key_list_with_expression ')' opt_fulltext_index_options | SPATIAL_SYM opt_key_or_index opt_ident '(' key_list_with_expression ')' opt_spatial_index_options | opt_constraint_name constraint_key_type opt_index_name_and_type '(' key_list_with_expression ')' opt_index_options | opt_constraint_name FOREIGN KEY_SYM opt_ident '(' key_list ')' references | opt_constraint_name check_constraint opt_constraint_enforcement check_constraint ::= CHECK_SYM '(' expr ')' opt_constraint_name ::= | CONSTRAINT opt_ident opt_not ::= | NOT_SYM opt_constraint_enforcement ::= | constraint_enforcement constraint_enforcement ::= opt_not ENFORCED_SYM field_def ::= type opt_column_attribute_list | type opt_collate opt_generated_always AS '(' expr ')' opt_stored_attribute opt_column_attribute_list opt_generated_always ::= /*empty*/ | GENERATED ALWAYS_SYM opt_stored_attribute ::= | VIRTUAL_SYM | STORED_SYM type ::= int_type opt_field_length field_options | real_type opt_precision field_options | numeric_type float_options field_options | BIT_SYM | BIT_SYM field_length | BOOL_SYM | BOOLEAN_SYM | CHAR_SYM field_length opt_charset_with_opt_binary | CHAR_SYM opt_charset_with_opt_binary | nchar field_length opt_bin_mod | nchar opt_bin_mod | BINARY_SYM field_length | BINARY_SYM | varchar field_length opt_charset_with_opt_binary | nvarchar field_length opt_bin_mod | VARBINARY_SYM field_length | YEAR_SYM opt_field_length field_options | DATE_SYM | TIME_SYM type_datetime_precision | TIMESTAMP_SYM type_datetime_precision | DATETIME_SYM type_datetime_precision | TINYBLOB_SYM | BLOB_SYM opt_field_length | spatial_type | MEDIUMBLOB_SYM | LONGBLOB_SYM | LONG_SYM VARBINARY_SYM | LONG_SYM varchar opt_charset_with_opt_binary | TINYTEXT_SYN opt_charset_with_opt_binary | TEXT_SYM opt_field_length opt_charset_with_opt_binary | MEDIUMTEXT_SYM opt_charset_with_opt_binary | LONGTEXT_SYM opt_charset_with_opt_binary | ENUM_SYM '(' string_list ')' opt_charset_with_opt_binary | SET_SYM '(' string_list ')' opt_charset_with_opt_binary | LONG_SYM opt_charset_with_opt_binary | SERIAL_SYM | JSON_SYM spatial_type ::= GEOMETRY_SYM | GEOMETRYCOLLECTION_SYM | POINT_SYM | MULTIPOINT_SYM | LINESTRING_SYM | MULTILINESTRING_SYM | POLYGON_SYM | MULTIPOLYGON_SYM nchar ::= NCHAR_SYM | NATIONAL_SYM CHAR_SYM varchar ::= CHAR_SYM VARYING | VARCHAR_SYM nvarchar ::= NATIONAL_SYM VARCHAR_SYM | NVARCHAR_SYM | NCHAR_SYM VARCHAR_SYM | NATIONAL_SYM CHAR_SYM VARYING | NCHAR_SYM VARYING int_type ::= INT_SYM | TINYINT_SYM | SMALLINT_SYM | MEDIUMINT_SYM | BIGINT_SYM real_type ::= REAL_SYM | DOUBLE_SYM opt_PRECISION opt_PRECISION ::= /*empty*/ | PRECISION numeric_type ::= FLOAT_SYM | DECIMAL_SYM | NUMERIC_SYM | FIXED_SYM standard_float_options ::= | field_length float_options ::= | field_length | precision precision ::= '(' NUM ',' NUM ')' type_datetime_precision ::= | '(' NUM ')' func_datetime_precision ::= | '(' ')' | '(' NUM ')' field_options ::= | field_opt_list field_opt_list ::= field_opt_list field_option | field_option field_option ::= SIGNED_SYM | UNSIGNED_SYM | ZEROFILL_SYM field_length ::= '(' LONG_NUM ')' | '(' ULONGLONG_NUM ')' | '(' DECIMAL_NUM ')' | '(' NUM ')' opt_field_length ::= | field_length opt_precision ::= | precision opt_column_attribute_list ::= | column_attribute_list column_attribute_list ::= column_attribute_list column_attribute | column_attribute column_attribute ::= NULL_SYM | not NULL_SYM | not SECONDARY_SYM | DEFAULT_SYM now_or_signed_literal | DEFAULT_SYM '(' expr ')' | ON_SYM UPDATE_SYM now | AUTO_INC | SERIAL_SYM DEFAULT_SYM VALUE_SYM | opt_primary KEY_SYM | UNIQUE_SYM | UNIQUE_SYM KEY_SYM | CLUSTERING_SYM | CLUSTERING_SYM KEY_SYM | COMMENT_SYM TEXT_STRING_sys | COLLATE_SYM collation_name | COLUMN_FORMAT_SYM column_format | COLUMN_FORMAT_SYM COMPRESSED_SYM opt_with_compression_dictionary | STORAGE_SYM storage_media | SRID_SYM real_ulonglong_num | opt_constraint_name check_constraint | constraint_enforcement | ENGINE_ATTRIBUTE_SYM opt_equal json_attribute | SECONDARY_ENGINE_ATTRIBUTE_SYM opt_equal json_attribute | visibility opt_with_compression_dictionary ::= | WITH COMPRESSION_DICTIONARY_SYM ident column_format ::= DEFAULT_SYM | FIXED_SYM | DYNAMIC_SYM storage_media ::= DEFAULT_SYM | DISK_SYM | MEMORY_SYM now ::= NOW_SYM func_datetime_precision now_or_signed_literal ::= now | signed_literal_or_null character_set ::= CHAR_SYM SET_SYM | CHARSET charset_name ::= ident_or_text | BINARY_SYM opt_load_data_charset ::= | character_set charset_name old_or_new_charset_name ::= ident_or_text | BINARY_SYM old_or_new_charset_name_or_default ::= old_or_new_charset_name | DEFAULT_SYM collation_name ::= ident_or_text | BINARY_SYM opt_collate ::= | COLLATE_SYM collation_name opt_default ::= | DEFAULT_SYM ascii ::= ASCII_SYM | BINARY_SYM ASCII_SYM | ASCII_SYM BINARY_SYM unicode ::= UNICODE_SYM | UNICODE_SYM BINARY_SYM | BINARY_SYM UNICODE_SYM opt_charset_with_opt_binary ::= | ascii | unicode | BYTE_SYM | character_set charset_name opt_bin_mod | BINARY_SYM | BINARY_SYM character_set charset_name opt_bin_mod ::= | BINARY_SYM ws_num_codepoints ::= '(' real_ulong_num ')' opt_primary ::= /*empty*/ | PRIMARY_SYM references ::= REFERENCES table_ident opt_ref_list opt_match_clause opt_on_update_delete opt_ref_list ::= | '(' reference_list ')' reference_list ::= reference_list ',' ident | ident opt_match_clause ::= | MATCH FULL | MATCH PARTIAL | MATCH SIMPLE_SYM opt_on_update_delete ::= | ON_SYM UPDATE_SYM delete_option | ON_SYM DELETE_SYM delete_option | ON_SYM UPDATE_SYM delete_option ON_SYM DELETE_SYM delete_option | ON_SYM DELETE_SYM delete_option ON_SYM UPDATE_SYM delete_option delete_option ::= RESTRICT | CASCADE | SET_SYM NULL_SYM | NO_SYM ACTION | SET_SYM DEFAULT_SYM constraint_key_type ::= PRIMARY_SYM KEY_SYM | unique_combo_clustering opt_key_or_index key_or_index ::= KEY_SYM | INDEX_SYM opt_key_or_index ::= | key_or_index keys_or_index ::= KEYS | INDEX_SYM | INDEXES opt_unique_combo_clustering ::= | unique_combo_clustering unique_combo_clustering ::= UNIQUE_SYM | UNIQUE_SYM KEY_SYM | CLUSTERING_SYM | CLUSTERING_SYM KEY_SYM | UNIQUE_SYM CLUSTERING_SYM | UNIQUE_SYM CLUSTERING_SYM KEY_SYM | CLUSTERING_SYM UNIQUE_SYM | CLUSTERING_SYM UNIQUE_SYM KEY_SYM opt_fulltext_index_options ::= | fulltext_index_options fulltext_index_options ::= fulltext_index_option | fulltext_index_options fulltext_index_option fulltext_index_option ::= common_index_option | WITH PARSER_SYM IDENT_sys opt_spatial_index_options ::= | spatial_index_options spatial_index_options ::= spatial_index_option | spatial_index_options spatial_index_option spatial_index_option ::= common_index_option opt_index_options ::= | index_options index_options ::= index_option | index_options index_option index_option ::= common_index_option | index_type_clause common_index_option ::= KEY_BLOCK_SIZE opt_equal ulong_num | COMMENT_SYM TEXT_STRING_sys | visibility | ENGINE_ATTRIBUTE_SYM opt_equal json_attribute | SECONDARY_ENGINE_ATTRIBUTE_SYM opt_equal json_attribute opt_index_name_and_type ::= opt_ident | opt_ident USING index_type | ident TYPE_SYM index_type opt_index_type_clause ::= | index_type_clause index_type_clause ::= USING index_type | TYPE_SYM index_type visibility ::= VISIBLE_SYM | INVISIBLE_SYM index_type ::= BTREE_SYM | RTREE_SYM | HASH_SYM key_list ::= key_list ',' key_part | key_part key_part ::= ident opt_ordering_direction | ident '(' NUM ')' opt_ordering_direction key_list_with_expression ::= key_list_with_expression ',' key_part_with_expression | key_part_with_expression key_part_with_expression ::= key_part | '(' expr ')' opt_ordering_direction opt_ident ::= | ident opt_component ::= | '.' ident string_list ::= text_string | string_list ',' text_string alter_table_stmt ::= ALTER TABLE_SYM table_ident opt_alter_table_actions | ALTER TABLE_SYM table_ident standalone_alter_table_action alter_database_stmt ::= ALTER DATABASE ident_or_empty alter_database_options alter_procedure_stmt ::= ALTER PROCEDURE_SYM sp_name sp_a_chistics alter_function_stmt ::= ALTER FUNCTION_SYM sp_name sp_a_chistics alter_view_stmt ::= ALTER view_algorithm definer_opt view_tail | ALTER definer_opt view_tail alter_event_stmt ::= ALTER definer_opt EVENT_SYM sp_name ev_alter_on_schedule_completion opt_ev_rename_to opt_ev_status opt_ev_comment opt_ev_sql_stmt alter_logfile_stmt ::= ALTER LOGFILE_SYM GROUP_SYM ident ADD lg_undofile opt_alter_logfile_group_options alter_tablespace_stmt ::= ALTER TABLESPACE_SYM ident ADD ts_datafile opt_alter_tablespace_options | ALTER TABLESPACE_SYM ident DROP ts_datafile opt_alter_tablespace_options | ALTER TABLESPACE_SYM ident RENAME TO_SYM ident | ALTER TABLESPACE_SYM ident alter_tablespace_option_list alter_undo_tablespace_stmt ::= ALTER UNDO_SYM TABLESPACE_SYM ident SET_SYM undo_tablespace_state opt_undo_tablespace_options alter_server_stmt ::= ALTER SERVER_SYM ident_or_text OPTIONS_SYM '(' server_options_list ')' alter_user_stmt ::= alter_user_command alter_user_list require_clause connect_options opt_account_lock_password_expire_options opt_user_attribute | alter_user_command user_func IDENTIFIED_SYM BY RANDOM_SYM PASSWORD opt_replace_password opt_retain_current_password | alter_user_command user_func IDENTIFIED_SYM BY TEXT_STRING opt_replace_password opt_retain_current_password | alter_user_command user_func DISCARD_SYM OLD_SYM PASSWORD | alter_user_command user DEFAULT_SYM ROLE_SYM ALL | alter_user_command user DEFAULT_SYM ROLE_SYM NONE_SYM | alter_user_command user DEFAULT_SYM ROLE_SYM role_list opt_replace_password ::= | REPLACE_SYM TEXT_STRING_password alter_resource_group_stmt ::= ALTER RESOURCE_SYM GROUP_SYM ident opt_resource_group_vcpu_list opt_resource_group_priority opt_resource_group_enable_disable opt_force alter_user_command ::= ALTER USER if_exists opt_user_attribute ::= | ATTRIBUTE_SYM TEXT_STRING_literal | COMMENT_SYM TEXT_STRING_literal opt_account_lock_password_expire_options ::= | opt_account_lock_password_expire_option_list opt_account_lock_password_expire_option_list ::= opt_account_lock_password_expire_option | opt_account_lock_password_expire_option_list opt_account_lock_password_expire_option opt_account_lock_password_expire_option ::= ACCOUNT_SYM UNLOCK_SYM | ACCOUNT_SYM LOCK_SYM | PASSWORD EXPIRE_SYM | PASSWORD EXPIRE_SYM INTERVAL_SYM real_ulong_num DAY_SYM | PASSWORD EXPIRE_SYM NEVER_SYM | PASSWORD EXPIRE_SYM DEFAULT_SYM | PASSWORD HISTORY_SYM real_ulong_num | PASSWORD HISTORY_SYM DEFAULT_SYM | PASSWORD REUSE_SYM INTERVAL_SYM real_ulong_num DAY_SYM | PASSWORD REUSE_SYM INTERVAL_SYM DEFAULT_SYM | PASSWORD REQUIRE_SYM CURRENT_SYM | PASSWORD REQUIRE_SYM CURRENT_SYM DEFAULT_SYM | PASSWORD REQUIRE_SYM CURRENT_SYM OPTIONAL_SYM | FAILED_LOGIN_ATTEMPTS_SYM real_ulong_num | PASSWORD_LOCK_TIME_SYM real_ulong_num | PASSWORD_LOCK_TIME_SYM UNBOUNDED_SYM connect_options ::= | WITH connect_option_list connect_option_list ::= connect_option_list connect_option | connect_option connect_option ::= MAX_QUERIES_PER_HOUR ulong_num | MAX_UPDATES_PER_HOUR ulong_num | MAX_CONNECTIONS_PER_HOUR ulong_num | MAX_USER_CONNECTIONS_SYM ulong_num user_func ::= USER '(' ')' ev_alter_on_schedule_completion ::= | ON_SYM SCHEDULE_SYM ev_schedule_time | ev_on_completion | ON_SYM SCHEDULE_SYM ev_schedule_time ev_on_completion opt_ev_rename_to ::= | RENAME TO_SYM sp_name opt_ev_sql_stmt ::= | DO_SYM ev_sql_stmt ident_or_empty ::= | ident opt_alter_table_actions ::= opt_alter_command_list | opt_alter_command_list alter_table_partition_options standalone_alter_table_action ::= standalone_alter_commands | alter_commands_modifier_list ',' standalone_alter_commands alter_table_partition_options ::= partition_clause | REMOVE_SYM PARTITIONING_SYM opt_alter_command_list ::= | alter_commands_modifier_list | alter_list | alter_commands_modifier_list ',' alter_list standalone_alter_commands ::= DISCARD_SYM TABLESPACE_SYM | IMPORT TABLESPACE_SYM | ADD PARTITION_SYM opt_no_write_to_binlog | ADD PARTITION_SYM opt_no_write_to_binlog '(' part_def_list ')' | ADD PARTITION_SYM opt_no_write_to_binlog PARTITIONS_SYM real_ulong_num | DROP PARTITION_SYM ident_string_list | REBUILD_SYM PARTITION_SYM opt_no_write_to_binlog all_or_alt_part_name_list | OPTIMIZE PARTITION_SYM opt_no_write_to_binlog all_or_alt_part_name_list | ANALYZE_SYM PARTITION_SYM opt_no_write_to_binlog all_or_alt_part_name_list | CHECK_SYM PARTITION_SYM all_or_alt_part_name_list opt_mi_check_types | REPAIR PARTITION_SYM opt_no_write_to_binlog all_or_alt_part_name_list opt_mi_repair_types | COALESCE PARTITION_SYM opt_no_write_to_binlog real_ulong_num | TRUNCATE_SYM PARTITION_SYM all_or_alt_part_name_list | REORGANIZE_SYM PARTITION_SYM opt_no_write_to_binlog | REORGANIZE_SYM PARTITION_SYM opt_no_write_to_binlog ident_string_list INTO '(' part_def_list ')' | EXCHANGE_SYM PARTITION_SYM ident WITH TABLE_SYM table_ident opt_with_validation | DISCARD_SYM PARTITION_SYM all_or_alt_part_name_list TABLESPACE_SYM | IMPORT PARTITION_SYM all_or_alt_part_name_list TABLESPACE_SYM | SECONDARY_LOAD_SYM | SECONDARY_UNLOAD_SYM opt_with_validation ::= | with_validation with_validation ::= WITH VALIDATION_SYM | WITHOUT_SYM VALIDATION_SYM all_or_alt_part_name_list ::= ALL | ident_string_list alter_list ::= alter_list_item | alter_list ',' alter_list_item | alter_list ',' alter_commands_modifier | create_table_options_space_separated | alter_list ',' create_table_options_space_separated alter_commands_modifier_list ::= alter_commands_modifier | alter_commands_modifier_list ',' alter_commands_modifier alter_list_item ::= ADD opt_column ident field_def opt_references opt_place | ADD opt_column '(' table_element_list ')' | ADD table_constraint_def | CHANGE opt_column ident ident field_def opt_place | MODIFY_SYM opt_column ident field_def opt_place | DROP opt_column ident opt_restrict | DROP FOREIGN KEY_SYM ident | DROP PRIMARY_SYM KEY_SYM | DROP key_or_index ident | DROP CHECK_SYM ident | DROP CONSTRAINT ident | DISABLE_SYM KEYS | ENABLE_SYM KEYS | ALTER opt_column ident SET_SYM DEFAULT_SYM signed_literal_or_null | ALTER opt_column ident SET_SYM DEFAULT_SYM '(' expr ')' | ALTER opt_column ident DROP DEFAULT_SYM | ALTER opt_column ident SET_SYM visibility | ALTER INDEX_SYM ident visibility | ALTER CHECK_SYM ident constraint_enforcement | ALTER CONSTRAINT ident constraint_enforcement | RENAME opt_to table_ident | RENAME key_or_index ident TO_SYM ident | RENAME COLUMN_SYM ident TO_SYM ident | CONVERT_SYM TO_SYM character_set charset_name opt_collate | CONVERT_SYM TO_SYM character_set DEFAULT_SYM opt_collate | FORCE_SYM | ORDER_SYM BY alter_order_list alter_commands_modifier ::= alter_algorithm_option | alter_lock_option | with_validation opt_index_lock_and_algorithm ::= | alter_lock_option | alter_algorithm_option | alter_lock_option alter_algorithm_option | alter_algorithm_option alter_lock_option alter_algorithm_option ::= ALGORITHM_SYM opt_equal alter_algorithm_option_value alter_algorithm_option_value ::= DEFAULT_SYM | ident alter_lock_option ::= LOCK_SYM opt_equal alter_lock_option_value alter_lock_option_value ::= DEFAULT_SYM | ident opt_column ::= /*empty*/ | COLUMN_SYM opt_ignore ::= | IGNORE_SYM opt_restrict ::= | RESTRICT | CASCADE opt_place ::= | AFTER_SYM ident | FIRST_SYM opt_to ::= | TO_SYM | EQ | AS group_replication ::= group_replication_start opt_group_replication_start_options | STOP_SYM GROUP_REPLICATION group_replication_start ::= START_SYM GROUP_REPLICATION opt_group_replication_start_options ::= /*empty*/ | group_replication_start_options group_replication_start_options ::= group_replication_start_option | group_replication_start_options ',' group_replication_start_option group_replication_start_option ::= group_replication_user | group_replication_password | group_replication_plugin_auth group_replication_user ::= USER EQ TEXT_STRING_sys_nonewline group_replication_password ::= PASSWORD EQ TEXT_STRING_sys_nonewline group_replication_plugin_auth ::= DEFAULT_AUTH_SYM EQ TEXT_STRING_sys_nonewline replica ::= SLAVE | REPLICA_SYM stop_replica_stmt ::= STOP_SYM replica opt_replica_thread_option_list opt_channel start_replica_stmt ::= START_SYM replica opt_replica_thread_option_list opt_replica_until opt_user_option opt_password_option opt_default_auth_option opt_plugin_dir_option opt_channel start ::= START_SYM TRANSACTION_SYM opt_start_transaction_option_list opt_start_transaction_option_list ::= | start_transaction_option_list start_transaction_option_list ::= start_transaction_option | start_transaction_option_list ',' start_transaction_option start_transaction_option ::= WITH CONSISTENT_SYM SNAPSHOT_SYM | WITH CONSISTENT_SYM SNAPSHOT_SYM FROM SESSION_SYM expr | READ_SYM ONLY_SYM | READ_SYM WRITE_SYM opt_user_option ::= | USER EQ TEXT_STRING_sys opt_password_option ::= | PASSWORD EQ TEXT_STRING_sys opt_default_auth_option ::= | DEFAULT_AUTH_SYM EQ TEXT_STRING_sys opt_plugin_dir_option ::= | PLUGIN_DIR_SYM EQ TEXT_STRING_sys opt_replica_thread_option_list ::= | replica_thread_option_list replica_thread_option_list ::= replica_thread_option | replica_thread_option_list ',' replica_thread_option replica_thread_option ::= SQL_THREAD | RELAY_THREAD opt_replica_until ::= | UNTIL_SYM replica_until replica_until ::= source_file_def | replica_until ',' source_file_def | SQL_BEFORE_GTIDS EQ TEXT_STRING_sys | SQL_AFTER_GTIDS EQ TEXT_STRING_sys | SQL_AFTER_MTS_GAPS checksum ::= CHECKSUM_SYM table_or_tables table_list opt_checksum_type opt_checksum_type ::= | QUICK | EXTENDED_SYM repair_table_stmt ::= REPAIR opt_no_write_to_binlog table_or_tables table_list opt_mi_repair_types opt_mi_repair_types ::= | mi_repair_types mi_repair_types ::= mi_repair_type | mi_repair_types mi_repair_type mi_repair_type ::= QUICK | EXTENDED_SYM | USE_FRM analyze_table_stmt ::= ANALYZE_SYM opt_no_write_to_binlog table_or_tables table_list opt_histogram opt_num_buckets ::= | WITH NUM BUCKETS_SYM opt_histogram ::= | UPDATE_SYM HISTOGRAM_SYM ON_SYM ident_string_list opt_num_buckets | DROP HISTOGRAM_SYM ON_SYM ident_string_list binlog_base64_event ::= BINLOG_SYM TEXT_STRING_sys check_table_stmt ::= CHECK_SYM table_or_tables table_list opt_mi_check_types opt_mi_check_types ::= | mi_check_types mi_check_types ::= mi_check_type | mi_check_type mi_check_types mi_check_type ::= QUICK | FAST_SYM | MEDIUM_SYM | EXTENDED_SYM | CHANGED | FOR_SYM UPGRADE_SYM optimize_table_stmt ::= OPTIMIZE opt_no_write_to_binlog table_or_tables table_list opt_no_write_to_binlog ::= | NO_WRITE_TO_BINLOG | LOCAL_SYM rename ::= RENAME table_or_tables table_to_table_list | RENAME USER rename_list rename_list ::= user TO_SYM user | rename_list ',' user TO_SYM user table_to_table_list ::= table_to_table | table_to_table_list ',' table_to_table table_to_table ::= table_ident TO_SYM table_ident keycache_stmt ::= CACHE_SYM INDEX_SYM keycache_list IN_SYM key_cache_name | CACHE_SYM INDEX_SYM table_ident adm_partition opt_cache_key_list IN_SYM key_cache_name keycache_list ::= assign_to_keycache | keycache_list ',' assign_to_keycache assign_to_keycache ::= table_ident opt_cache_key_list key_cache_name ::= ident | DEFAULT_SYM preload_stmt ::= LOAD INDEX_SYM INTO CACHE_SYM table_ident adm_partition opt_cache_key_list opt_ignore_leaves | LOAD INDEX_SYM INTO CACHE_SYM preload_list preload_list ::= preload_keys | preload_list ',' preload_keys preload_keys ::= table_ident opt_cache_key_list opt_ignore_leaves adm_partition ::= PARTITION_SYM '(' all_or_alt_part_name_list ')' opt_cache_key_list ::= | key_or_index '(' opt_key_usage_list ')' opt_ignore_leaves ::= | IGNORE_SYM LEAVES select_stmt ::= query_expression | query_expression locking_clause_list | query_expression_parens | select_stmt_with_into select_stmt_with_into ::= '(' select_stmt_with_into ')' | query_expression into_clause | query_expression into_clause locking_clause_list | query_expression locking_clause_list into_clause | query_expression_parens into_clause query_expression ::= query_expression_body opt_order_clause opt_limit_clause | with_clause query_expression_body opt_order_clause opt_limit_clause | query_expression_parens order_clause opt_limit_clause | with_clause query_expression_parens order_clause opt_limit_clause | query_expression_parens limit_clause | with_clause query_expression_parens limit_clause | with_clause query_expression_parens query_expression_body ::= query_primary | query_expression_body UNION_SYM union_option query_primary | query_expression_parens UNION_SYM union_option query_primary | query_expression_body UNION_SYM union_option query_expression_parens | query_expression_parens UNION_SYM union_option query_expression_parens query_expression_parens ::= '(' query_expression_parens ')' | '(' query_expression ')' | '(' query_expression locking_clause_list ')' query_primary ::= query_specification | table_value_constructor | explicit_table query_specification ::= SELECT_SYM select_options select_item_list into_clause opt_from_clause opt_where_clause opt_group_clause opt_having_clause opt_window_clause | SELECT_SYM select_options select_item_list opt_from_clause opt_where_clause opt_group_clause opt_having_clause opt_window_clause opt_from_clause ::= | from_clause from_clause ::= FROM from_tables from_tables ::= DUAL_SYM | table_reference_list table_reference_list ::= table_reference | table_reference_list ',' table_reference table_value_constructor ::= VALUES values_row_list explicit_table ::= TABLE_SYM table_ident select_options ::= | select_option_list select_option_list ::= select_option_list select_option | select_option select_option ::= query_spec_option | SQL_NO_CACHE_SYM locking_clause_list ::= locking_clause_list locking_clause | locking_clause locking_clause ::= FOR_SYM lock_strength opt_locked_row_action | FOR_SYM lock_strength table_locking_list opt_locked_row_action | LOCK_SYM IN_SYM SHARE_SYM MODE_SYM lock_strength ::= UPDATE_SYM | SHARE_SYM table_locking_list ::= OF_SYM table_alias_ref_list opt_locked_row_action ::= | locked_row_action locked_row_action ::= SKIP_SYM LOCKED_SYM | NOWAIT_SYM select_item_list ::= select_item_list ',' select_item | select_item | '*' select_item ::= table_wild | expr select_alias select_alias ::= | AS ident | AS TEXT_STRING_validated | ident | TEXT_STRING_validated optional_braces ::= | '(' ')' expr ::= expr or expr | expr XOR expr | expr and expr | NOT_SYM expr | bool_pri IS TRUE_SYM | bool_pri IS not TRUE_SYM | bool_pri IS FALSE_SYM | bool_pri IS not FALSE_SYM | bool_pri IS UNKNOWN_SYM | bool_pri IS not UNKNOWN_SYM | bool_pri bool_pri ::= bool_pri IS NULL_SYM | bool_pri IS not NULL_SYM | bool_pri comp_op predicate | bool_pri comp_op all_or_any table_subquery | predicate predicate ::= bit_expr IN_SYM table_subquery | bit_expr not IN_SYM table_subquery | bit_expr IN_SYM '(' expr ')' | bit_expr IN_SYM '(' expr ',' expr_list ')' | bit_expr not IN_SYM '(' expr ')' | bit_expr not IN_SYM '(' expr ',' expr_list ')' | bit_expr MEMBER_SYM opt_of '(' simple_expr ')' | bit_expr BETWEEN_SYM bit_expr AND_SYM predicate | bit_expr not BETWEEN_SYM bit_expr AND_SYM predicate | bit_expr SOUNDS_SYM LIKE bit_expr | bit_expr LIKE simple_expr | bit_expr LIKE simple_expr ESCAPE_SYM simple_expr | bit_expr not LIKE simple_expr | bit_expr not LIKE simple_expr ESCAPE_SYM simple_expr | bit_expr REGEXP bit_expr | bit_expr not REGEXP bit_expr | bit_expr opt_of ::= OF_SYM | /*empty*/ bit_expr ::= bit_expr '|' bit_expr | bit_expr '&' bit_expr | bit_expr SHIFT_LEFT bit_expr | bit_expr SHIFT_RIGHT bit_expr | bit_expr '+' bit_expr | bit_expr '-' bit_expr | bit_expr '+' INTERVAL_SYM expr interval | bit_expr '-' INTERVAL_SYM expr interval | bit_expr '*' bit_expr | bit_expr '/' bit_expr | bit_expr '%' bit_expr | bit_expr DIV_SYM bit_expr | bit_expr MOD_SYM bit_expr | bit_expr '^' bit_expr | simple_expr or ::= OR_SYM | OR2_SYM and ::= AND_SYM | AND_AND_SYM not ::= NOT_SYM | NOT2_SYM not2 ::= '!' | NOT2_SYM comp_op ::= EQ | EQUAL_SYM | GE | GT_SYM | LE | LT | NE all_or_any ::= ALL | ANY_SYM simple_expr ::= simple_ident | function_call_keyword | function_call_nonkeyword | function_call_generic | function_call_conflict | simple_expr COLLATE_SYM ident_or_text | literal_or_null | param_marker | variable | set_function_specification | window_func_call | simple_expr OR_OR_SYM simple_expr | '+' simple_expr | '-' simple_expr | '~' simple_expr | not2 simple_expr | row_subquery | '(' expr ')' | '(' expr ',' expr_list ')' | ROW_SYM '(' expr ',' expr_list ')' | EXISTS table_subquery | '{' ident expr '}' | MATCH ident_list_arg AGAINST '(' bit_expr fulltext_options ')' | BINARY_SYM simple_expr | CAST_SYM '(' expr AS cast_type opt_array_cast ')' | CAST_SYM '(' expr AT_SYM LOCAL_SYM AS cast_type opt_array_cast ')' | CAST_SYM '(' expr AT_SYM TIME_SYM ZONE_SYM opt_interval TEXT_STRING_literal AS DATETIME_SYM type_datetime_precision ')' | CASE_SYM opt_expr when_list opt_else END | CONVERT_SYM '(' expr ',' cast_type ')' | CONVERT_SYM '(' expr USING charset_name ')' | DEFAULT_SYM '(' simple_ident ')' | VALUES '(' simple_ident_nospvar ')' | INTERVAL_SYM expr interval '+' expr | simple_ident JSON_SEPARATOR_SYM TEXT_STRING_literal | simple_ident JSON_UNQUOTED_SEPARATOR_SYM TEXT_STRING_literal opt_array_cast ::= | ARRAY_SYM function_call_keyword ::= CHAR_SYM '(' expr_list ')' | CHAR_SYM '(' expr_list USING charset_name ')' | CURRENT_USER optional_braces | DATE_SYM '(' expr ')' | DAY_SYM '(' expr ')' | HOUR_SYM '(' expr ')' | INSERT_SYM '(' expr ',' expr ',' expr ',' expr ')' | INTERVAL_SYM '(' expr ',' expr ')' | INTERVAL_SYM '(' expr ',' expr ',' expr_list ')' | JSON_VALUE_SYM '(' simple_expr ',' text_literal opt_returning_type opt_on_empty_or_error ')' | LEFT '(' expr ',' expr ')' | MINUTE_SYM '(' expr ')' | MONTH_SYM '(' expr ')' | RIGHT '(' expr ',' expr ')' | SECOND_SYM '(' expr ')' | TIME_SYM '(' expr ')' | TIMESTAMP_SYM '(' expr ')' | TIMESTAMP_SYM '(' expr ',' expr ')' | TRIM '(' expr ')' | TRIM '(' LEADING expr FROM expr ')' | TRIM '(' TRAILING expr FROM expr ')' | TRIM '(' BOTH expr FROM expr ')' | TRIM '(' LEADING FROM expr ')' | TRIM '(' TRAILING FROM expr ')' | TRIM '(' BOTH FROM expr ')' | TRIM '(' expr FROM expr ')' | USER '(' ')' | YEAR_SYM '(' expr ')' function_call_nonkeyword ::= ADDDATE_SYM '(' expr ',' expr ')' | ADDDATE_SYM '(' expr ',' INTERVAL_SYM expr interval ')' | CURDATE optional_braces | CURTIME func_datetime_precision | DATE_ADD_INTERVAL '(' expr ',' INTERVAL_SYM expr interval ')' | DATE_SUB_INTERVAL '(' expr ',' INTERVAL_SYM expr interval ')' | EXTRACT_SYM '(' interval FROM expr ')' | GET_FORMAT '(' date_time_type ',' expr ')' | now | POSITION_SYM '(' bit_expr IN_SYM expr ')' | SUBDATE_SYM '(' expr ',' expr ')' | SUBDATE_SYM '(' expr ',' INTERVAL_SYM expr interval ')' | SUBSTRING '(' expr ',' expr ',' expr ')' | SUBSTRING '(' expr ',' expr ')' | SUBSTRING '(' expr FROM expr FOR_SYM expr ')' | SUBSTRING '(' expr FROM expr ')' | SYSDATE func_datetime_precision | TIMESTAMP_ADD '(' interval_time_stamp ',' expr ',' expr ')' | TIMESTAMP_DIFF '(' interval_time_stamp ',' expr ',' expr ')' | UTC_DATE_SYM optional_braces | UTC_TIME_SYM func_datetime_precision | UTC_TIMESTAMP_SYM func_datetime_precision opt_returning_type ::= | RETURNING_SYM cast_type function_call_conflict ::= ASCII_SYM '(' expr ')' | CHARSET '(' expr ')' | COALESCE '(' expr_list ')' | COLLATION_SYM '(' expr ')' | DATABASE '(' ')' | IF '(' expr ',' expr ',' expr ')' | FORMAT_SYM '(' expr ',' expr ')' | FORMAT_SYM '(' expr ',' expr ',' expr ')' | MICROSECOND_SYM '(' expr ')' | MOD_SYM '(' expr ',' expr ')' | QUARTER_SYM '(' expr ')' | REPEAT_SYM '(' expr ',' expr ')' | REPLACE_SYM '(' expr ',' expr ',' expr ')' | REVERSE_SYM '(' expr ')' | ROW_COUNT_SYM '(' ')' | TRUNCATE_SYM '(' expr ',' expr ')' | WEEK_SYM '(' expr ')' | WEEK_SYM '(' expr ',' expr ')' | WEIGHT_STRING_SYM '(' expr ')' | WEIGHT_STRING_SYM '(' expr AS CHAR_SYM ws_num_codepoints ')' | WEIGHT_STRING_SYM '(' expr AS BINARY_SYM ws_num_codepoints ')' | WEIGHT_STRING_SYM '(' expr ',' ulong_num ',' ulong_num ',' ulong_num ')' | geometry_function geometry_function ::= GEOMETRYCOLLECTION_SYM '(' opt_expr_list ')' | LINESTRING_SYM '(' expr_list ')' | MULTILINESTRING_SYM '(' expr_list ')' | MULTIPOINT_SYM '(' expr_list ')' | MULTIPOLYGON_SYM '(' expr_list ')' | POINT_SYM '(' expr ',' expr ')' | POLYGON_SYM '(' expr_list ')' function_call_generic ::= IDENT_sys '(' opt_udf_expr_list ')' | ident '.' ident '(' opt_expr_list ')' fulltext_options ::= opt_natural_language_mode opt_query_expansion | IN_SYM BOOLEAN_SYM MODE_SYM opt_natural_language_mode ::= | IN_SYM NATURAL LANGUAGE_SYM MODE_SYM opt_query_expansion ::= | WITH QUERY_SYM EXPANSION_SYM opt_udf_expr_list ::= | udf_expr_list udf_expr_list ::= udf_expr | udf_expr_list ',' udf_expr udf_expr ::= expr select_alias set_function_specification ::= sum_expr | grouping_operation sum_expr ::= AVG_SYM '(' in_sum_expr ')' opt_windowing_clause | AVG_SYM '(' DISTINCT in_sum_expr ')' opt_windowing_clause | BIT_AND_SYM '(' in_sum_expr ')' opt_windowing_clause | BIT_OR_SYM '(' in_sum_expr ')' opt_windowing_clause | JSON_ARRAYAGG '(' in_sum_expr ')' opt_windowing_clause | JSON_OBJECTAGG '(' in_sum_expr ',' in_sum_expr ')' opt_windowing_clause | BIT_XOR_SYM '(' in_sum_expr ')' opt_windowing_clause | COUNT_SYM '(' opt_all '*' ')' opt_windowing_clause | COUNT_SYM '(' in_sum_expr ')' opt_windowing_clause | COUNT_SYM '(' DISTINCT expr_list ')' opt_windowing_clause | MIN_SYM '(' in_sum_expr ')' opt_windowing_clause | MIN_SYM '(' DISTINCT in_sum_expr ')' opt_windowing_clause | MAX_SYM '(' in_sum_expr ')' opt_windowing_clause | MAX_SYM '(' DISTINCT in_sum_expr ')' opt_windowing_clause | STD_SYM '(' in_sum_expr ')' opt_windowing_clause | VARIANCE_SYM '(' in_sum_expr ')' opt_windowing_clause | STDDEV_SAMP_SYM '(' in_sum_expr ')' opt_windowing_clause | VAR_SAMP_SYM '(' in_sum_expr ')' opt_windowing_clause | SUM_SYM '(' in_sum_expr ')' opt_windowing_clause | SUM_SYM '(' DISTINCT in_sum_expr ')' opt_windowing_clause | GROUP_CONCAT_SYM '(' opt_distinct expr_list opt_gorder_clause opt_gconcat_separator ')' opt_windowing_clause window_func_call ::= ROW_NUMBER_SYM '(' ')' windowing_clause | RANK_SYM '(' ')' windowing_clause | DENSE_RANK_SYM '(' ')' windowing_clause | CUME_DIST_SYM '(' ')' windowing_clause | PERCENT_RANK_SYM '(' ')' windowing_clause | NTILE_SYM '(' stable_integer ')' windowing_clause | LEAD_SYM '(' expr opt_lead_lag_info ')' opt_null_treatment windowing_clause | LAG_SYM '(' expr opt_lead_lag_info ')' opt_null_treatment windowing_clause | FIRST_VALUE_SYM '(' expr ')' opt_null_treatment windowing_clause | LAST_VALUE_SYM '(' expr ')' opt_null_treatment windowing_clause | NTH_VALUE_SYM '(' expr ',' simple_expr ')' opt_from_first_last opt_null_treatment windowing_clause opt_lead_lag_info ::= | ',' stable_integer opt_ll_default stable_integer ::= int64_literal | param_or_var param_or_var ::= param_marker | ident | '@' ident_or_text opt_ll_default ::= | ',' expr opt_null_treatment ::= | RESPECT_SYM NULLS_SYM | IGNORE_SYM NULLS_SYM opt_from_first_last ::= | FROM FIRST_SYM | FROM LAST_SYM opt_windowing_clause ::= | windowing_clause windowing_clause ::= OVER_SYM window_name_or_spec window_name_or_spec ::= window_name | window_spec window_name ::= ident window_spec ::= '(' window_spec_details ')' window_spec_details ::= opt_existing_window_name opt_partition_clause opt_window_order_by_clause opt_window_frame_clause opt_existing_window_name ::= | window_name opt_partition_clause ::= | PARTITION_SYM BY group_list opt_window_order_by_clause ::= | ORDER_SYM BY order_list opt_window_frame_clause ::= | window_frame_units window_frame_extent opt_window_frame_exclusion window_frame_extent ::= window_frame_start | window_frame_between window_frame_start ::= UNBOUNDED_SYM PRECEDING_SYM | NUM_literal PRECEDING_SYM | param_marker PRECEDING_SYM | INTERVAL_SYM expr interval PRECEDING_SYM | CURRENT_SYM ROW_SYM window_frame_between ::= BETWEEN_SYM window_frame_bound AND_SYM window_frame_bound window_frame_bound ::= window_frame_start | UNBOUNDED_SYM FOLLOWING_SYM | NUM_literal FOLLOWING_SYM | param_marker FOLLOWING_SYM | INTERVAL_SYM expr interval FOLLOWING_SYM opt_window_frame_exclusion ::= | EXCLUDE_SYM CURRENT_SYM ROW_SYM | EXCLUDE_SYM GROUP_SYM | EXCLUDE_SYM TIES_SYM | EXCLUDE_SYM NO_SYM OTHERS_SYM window_frame_units ::= ROWS_SYM | RANGE_SYM | GROUPS_SYM grouping_operation ::= GROUPING_SYM '(' expr_list ')' variable ::= '@' variable_aux variable_aux ::= ident_or_text SET_VAR expr | ident_or_text | '@' opt_var_ident_type ident_or_text opt_component opt_distinct ::= | DISTINCT opt_gconcat_separator ::= | SEPARATOR_SYM text_string opt_gorder_clause ::= | ORDER_SYM BY gorder_list gorder_list ::= gorder_list ',' order_expr | order_expr in_sum_expr ::= opt_all expr cast_type ::= BINARY_SYM opt_field_length | CHAR_SYM opt_field_length opt_charset_with_opt_binary | nchar opt_field_length | SIGNED_SYM | SIGNED_SYM INT_SYM | UNSIGNED_SYM | UNSIGNED_SYM INT_SYM | DATE_SYM | YEAR_SYM | TIME_SYM type_datetime_precision | DATETIME_SYM type_datetime_precision | DECIMAL_SYM float_options | JSON_SYM | real_type | FLOAT_SYM standard_float_options opt_expr_list ::= | expr_list expr_list ::= expr | expr_list ',' expr ident_list_arg ::= ident_list | '(' ident_list ')' ident_list ::= simple_ident | ident_list ',' simple_ident opt_expr ::= | expr opt_else ::= | ELSE expr when_list ::= WHEN_SYM expr THEN_SYM expr | when_list WHEN_SYM expr THEN_SYM expr table_reference ::= table_factor | joined_table | '{' OJ_SYM esc_table_reference '}' esc_table_reference ::= table_factor | joined_table joined_table ::= table_reference inner_join_type table_reference ON_SYM expr | table_reference inner_join_type table_reference USING '(' using_list ')' | table_reference outer_join_type table_reference ON_SYM expr | table_reference outer_join_type table_reference USING '(' using_list ')' | table_reference inner_join_type table_reference | table_reference natural_join_type table_factor natural_join_type ::= NATURAL opt_inner JOIN_SYM | NATURAL RIGHT opt_outer JOIN_SYM | NATURAL LEFT opt_outer JOIN_SYM inner_join_type ::= JOIN_SYM | INNER_SYM JOIN_SYM | CROSS JOIN_SYM | STRAIGHT_JOIN outer_join_type ::= LEFT opt_outer JOIN_SYM | RIGHT opt_outer JOIN_SYM opt_inner ::= /*empty*/ | INNER_SYM opt_outer ::= /*empty*/ | OUTER_SYM opt_use_partition ::= | use_partition use_partition ::= PARTITION_SYM '(' using_list ')' table_factor ::= single_table | single_table_parens | derived_table | joined_table_parens | table_reference_list_parens | table_function table_reference_list_parens ::= '(' table_reference_list_parens ')' | '(' table_reference_list ',' table_reference ')' single_table_parens ::= '(' single_table_parens ')' | '(' single_table ')' single_table ::= table_ident opt_use_partition opt_table_alias opt_key_definition joined_table_parens ::= '(' joined_table_parens ')' | '(' joined_table ')' derived_table ::= table_subquery opt_table_alias opt_derived_column_list | LATERAL_SYM table_subquery opt_table_alias opt_derived_column_list table_function ::= JSON_TABLE_SYM '(' expr ',' text_literal columns_clause ')' opt_table_alias | SEQUENCE_TABLE_SYM '(' expr ')' opt_table_alias columns_clause ::= COLUMNS '(' columns_list ')' columns_list ::= jt_column | columns_list ',' jt_column jt_column ::= ident FOR_SYM ORDINALITY_SYM | ident type opt_collate jt_column_type PATH_SYM text_literal opt_on_empty_or_error_json_table | NESTED_SYM PATH_SYM text_literal columns_clause jt_column_type ::= | EXISTS opt_on_empty_or_error ::= | on_empty | on_error | on_empty on_error opt_on_empty_or_error_json_table ::= opt_on_empty_or_error | on_error on_empty on_empty ::= json_on_response ON_SYM EMPTY_SYM on_error ::= json_on_response ON_SYM ERROR_SYM json_on_response ::= ERROR_SYM | NULL_SYM | DEFAULT_SYM signed_literal index_hint_clause ::= | FOR_SYM JOIN_SYM | FOR_SYM ORDER_SYM BY | FOR_SYM GROUP_SYM BY index_hint_type ::= FORCE_SYM | IGNORE_SYM index_hint_definition ::= index_hint_type key_or_index index_hint_clause '(' key_usage_list ')' | USE_SYM key_or_index index_hint_clause '(' opt_key_usage_list ')' index_hints_list ::= index_hint_definition | index_hints_list index_hint_definition opt_index_hints_list ::= | index_hints_list opt_key_definition ::= opt_index_hints_list opt_key_usage_list ::= | key_usage_list key_usage_element ::= ident | PRIMARY_SYM key_usage_list ::= key_usage_element | key_usage_list ',' key_usage_element using_list ::= ident_string_list ident_string_list ::= ident | ident_string_list ',' ident interval ::= interval_time_stamp | DAY_HOUR_SYM | DAY_MICROSECOND_SYM | DAY_MINUTE_SYM | DAY_SECOND_SYM | HOUR_MICROSECOND_SYM | HOUR_MINUTE_SYM | HOUR_SECOND_SYM | MINUTE_MICROSECOND_SYM | MINUTE_SECOND_SYM | SECOND_MICROSECOND_SYM | YEAR_MONTH_SYM interval_time_stamp ::= DAY_SYM | WEEK_SYM | HOUR_SYM | MINUTE_SYM | MONTH_SYM | QUARTER_SYM | SECOND_SYM | MICROSECOND_SYM | YEAR_SYM date_time_type ::= DATE_SYM | TIME_SYM | TIMESTAMP_SYM | DATETIME_SYM opt_as ::= /*empty*/ | AS opt_table_alias ::= | opt_as ident opt_all ::= /*empty*/ | ALL opt_where_clause ::= | where_clause where_clause ::= WHERE expr opt_having_clause ::= | HAVING expr with_clause ::= WITH with_list | WITH RECURSIVE_SYM with_list with_list ::= with_list ',' common_table_expr | common_table_expr common_table_expr ::= ident opt_derived_column_list AS table_subquery opt_derived_column_list ::= | '(' simple_ident_list ')' simple_ident_list ::= ident | simple_ident_list ',' ident opt_window_clause ::= | WINDOW_SYM window_definition_list window_definition_list ::= window_definition | window_definition_list ',' window_definition window_definition ::= window_name AS window_spec opt_group_clause ::= | GROUP_SYM BY group_list olap_opt group_list ::= group_list ',' grouping_expr | grouping_expr olap_opt ::= | WITH_ROLLUP_SYM alter_order_list ::= alter_order_list ',' alter_order_item | alter_order_item alter_order_item ::= simple_ident_nospvar opt_ordering_direction opt_order_clause ::= | order_clause order_clause ::= ORDER_SYM BY order_list order_list ::= order_list ',' order_expr | order_expr opt_ordering_direction ::= | ordering_direction ordering_direction ::= ASC | DESC opt_limit_clause ::= | limit_clause limit_clause ::= LIMIT limit_options limit_options ::= limit_option | limit_option ',' limit_option | limit_option OFFSET_SYM limit_option limit_option ::= ident | param_marker | ULONGLONG_NUM | LONG_NUM | NUM opt_simple_limit ::= | LIMIT limit_option ulong_num ::= NUM | HEX_NUM | LONG_NUM | ULONGLONG_NUM | DECIMAL_NUM | FLOAT_NUM real_ulong_num ::= NUM | HEX_NUM | LONG_NUM | ULONGLONG_NUM | dec_num_error ulonglong_num ::= NUM | ULONGLONG_NUM | LONG_NUM | DECIMAL_NUM | FLOAT_NUM real_ulonglong_num ::= NUM | HEX_NUM | ULONGLONG_NUM | LONG_NUM | dec_num_error dec_num_error ::= dec_num dec_num ::= DECIMAL_NUM | FLOAT_NUM select_var_list ::= select_var_list ',' select_var_ident | select_var_ident select_var_ident ::= '@' ident_or_text | ident_or_text into_clause ::= INTO into_destination into_destination ::= OUTFILE TEXT_STRING_filesystem opt_load_data_charset opt_field_term opt_line_term | DUMPFILE TEXT_STRING_filesystem | select_var_list do_stmt ::= DO_SYM select_item_list drop_table_stmt ::= DROP opt_temporary table_or_tables if_exists table_list opt_restrict drop_index_stmt ::= DROP INDEX_SYM ident ON_SYM table_ident opt_index_lock_and_algorithm drop_database_stmt ::= DROP DATABASE if_exists ident drop_function_stmt ::= DROP FUNCTION_SYM if_exists ident '.' ident | DROP FUNCTION_SYM if_exists ident drop_resource_group_stmt ::= DROP RESOURCE_SYM GROUP_SYM ident opt_force drop_procedure_stmt ::= DROP PROCEDURE_SYM if_exists sp_name drop_user_stmt ::= DROP USER if_exists user_list drop_view_stmt ::= DROP VIEW_SYM if_exists table_list opt_restrict drop_event_stmt ::= DROP EVENT_SYM if_exists sp_name drop_trigger_stmt ::= DROP TRIGGER_SYM if_exists sp_name drop_tablespace_stmt ::= DROP TABLESPACE_SYM ident opt_drop_ts_options drop_undo_tablespace_stmt ::= DROP UNDO_SYM TABLESPACE_SYM ident opt_undo_tablespace_options drop_logfile_stmt ::= DROP LOGFILE_SYM GROUP_SYM ident opt_drop_ts_options drop_server_stmt ::= DROP SERVER_SYM if_exists ident_or_text | DROP COMPRESSION_DICTIONARY_SYM if_exists ident drop_srs_stmt ::= DROP SPATIAL_SYM REFERENCE_SYM SYSTEM_SYM if_exists real_ulonglong_num drop_role_stmt ::= DROP ROLE_SYM if_exists role_list table_list ::= table_ident | table_list ',' table_ident table_alias_ref_list ::= table_ident_opt_wild | table_alias_ref_list ',' table_ident_opt_wild if_exists ::= | IF EXISTS opt_temporary ::= | TEMPORARY opt_drop_ts_options ::= | drop_ts_option_list drop_ts_option_list ::= drop_ts_option | drop_ts_option_list opt_comma drop_ts_option drop_ts_option ::= ts_option_engine | ts_option_wait insert_stmt ::= INSERT_SYM insert_lock_option opt_ignore opt_INTO table_ident opt_use_partition insert_from_constructor opt_values_reference opt_insert_update_list | INSERT_SYM insert_lock_option opt_ignore opt_INTO table_ident opt_use_partition SET_SYM update_list opt_values_reference opt_insert_update_list | INSERT_SYM insert_lock_option opt_ignore opt_INTO table_ident opt_use_partition insert_query_expression opt_insert_update_list replace_stmt ::= REPLACE_SYM replace_lock_option opt_INTO table_ident opt_use_partition insert_from_constructor | REPLACE_SYM replace_lock_option opt_INTO table_ident opt_use_partition SET_SYM update_list | REPLACE_SYM replace_lock_option opt_INTO table_ident opt_use_partition insert_query_expression insert_lock_option ::= | LOW_PRIORITY | DELAYED_SYM | HIGH_PRIORITY replace_lock_option ::= opt_low_priority | DELAYED_SYM opt_INTO ::= /*empty*/ | INTO insert_from_constructor ::= insert_values | '(' ')' insert_values | '(' fields ')' insert_values insert_query_expression ::= query_expression_or_parens | '(' ')' query_expression_or_parens | '(' fields ')' query_expression_or_parens fields ::= fields ',' insert_ident | insert_ident insert_values ::= value_or_values values_list query_expression_or_parens ::= query_expression | query_expression locking_clause_list | query_expression_parens value_or_values ::= VALUE_SYM | VALUES values_list ::= values_list ',' row_value | row_value values_row_list ::= values_row_list ',' row_value_explicit | row_value_explicit equal ::= EQ | SET_VAR opt_equal ::= /*empty*/ | equal row_value ::= '(' opt_values ')' row_value_explicit ::= ROW_SYM '(' opt_values ')' opt_values ::= | values values ::= values ',' expr_or_default | expr_or_default expr_or_default ::= expr | DEFAULT_SYM opt_values_reference ::= | AS ident opt_derived_column_list opt_insert_update_list ::= | ON_SYM DUPLICATE_SYM KEY_SYM UPDATE_SYM update_list update_stmt ::= opt_with_clause UPDATE_SYM opt_low_priority opt_ignore table_reference_list SET_SYM update_list opt_where_clause opt_order_clause opt_simple_limit opt_with_clause ::= | with_clause update_list ::= update_list ',' update_elem | update_elem update_elem ::= simple_ident_nospvar equal expr_or_default opt_low_priority ::= | LOW_PRIORITY delete_stmt ::= opt_with_clause DELETE_SYM opt_delete_options FROM table_ident opt_table_alias opt_use_partition opt_where_clause opt_order_clause opt_simple_limit | opt_with_clause DELETE_SYM opt_delete_options table_alias_ref_list FROM table_reference_list opt_where_clause | opt_with_clause DELETE_SYM opt_delete_options FROM table_alias_ref_list USING table_reference_list opt_where_clause opt_wild ::= /*empty*/ | '.' '*' opt_delete_options ::= | opt_delete_option opt_delete_options opt_delete_option ::= QUICK | LOW_PRIORITY | IGNORE_SYM truncate_stmt ::= TRUNCATE_SYM opt_table table_ident opt_table ::= /*empty*/ | TABLE_SYM opt_profile_defs ::= | profile_defs profile_defs ::= profile_def | profile_defs ',' profile_def profile_def ::= CPU_SYM | MEMORY_SYM | BLOCK_SYM IO_SYM | CONTEXT_SYM SWITCHES_SYM | PAGE_SYM FAULTS_SYM | IPC_SYM | SWAPS_SYM | SOURCE_SYM | ALL opt_for_query ::= | FOR_SYM QUERY_SYM NUM show_databases_stmt ::= SHOW DATABASES opt_wild_or_where show_tables_stmt ::= SHOW opt_show_cmd_type TABLES opt_db opt_wild_or_where show_triggers_stmt ::= SHOW opt_full TRIGGERS_SYM opt_db opt_wild_or_where show_events_stmt ::= SHOW EVENTS_SYM opt_db opt_wild_or_where show_table_status_stmt ::= SHOW TABLE_SYM STATUS_SYM opt_db opt_wild_or_where show_open_tables_stmt ::= SHOW OPEN_SYM TABLES opt_db opt_wild_or_where show_plugins_stmt ::= SHOW PLUGINS_SYM show_engine_logs_stmt ::= SHOW ENGINE_SYM engine_or_all LOGS_SYM show_engine_mutex_stmt ::= SHOW ENGINE_SYM engine_or_all MUTEX_SYM show_engine_status_stmt ::= SHOW ENGINE_SYM engine_or_all STATUS_SYM show_columns_stmt ::= SHOW opt_show_cmd_type COLUMNS from_or_in table_ident opt_db opt_wild_or_where show_binary_logs_stmt ::= SHOW master_or_binary LOGS_SYM show_replicas_stmt ::= SHOW SLAVE HOSTS_SYM | SHOW REPLICAS_SYM show_binlog_events_stmt ::= SHOW BINLOG_SYM EVENTS_SYM opt_binlog_in binlog_from opt_limit_clause show_relaylog_events_stmt ::= SHOW RELAYLOG_SYM EVENTS_SYM opt_binlog_in binlog_from opt_limit_clause opt_channel show_keys_stmt ::= SHOW opt_extended keys_or_index from_or_in table_ident opt_db opt_where_clause show_engines_stmt ::= SHOW opt_storage ENGINES_SYM show_count_warnings_stmt ::= SHOW COUNT_SYM '(' '*' ')' WARNINGS show_count_errors_stmt ::= SHOW COUNT_SYM '(' '*' ')' ERRORS show_warnings_stmt ::= SHOW WARNINGS opt_limit_clause show_errors_stmt ::= SHOW ERRORS opt_limit_clause show_profiles_stmt ::= SHOW PROFILES_SYM show_profile_stmt ::= SHOW PROFILE_SYM opt_profile_defs opt_for_query opt_limit_clause show_status_stmt ::= SHOW opt_var_type STATUS_SYM opt_wild_or_where show_processlist_stmt ::= SHOW opt_full PROCESSLIST_SYM show_variables_stmt ::= SHOW opt_var_type VARIABLES opt_wild_or_where show_character_set_stmt ::= SHOW character_set opt_wild_or_where show_collation_stmt ::= SHOW COLLATION_SYM opt_wild_or_where show_privileges_stmt ::= SHOW PRIVILEGES show_grants_stmt ::= SHOW GRANTS | SHOW GRANTS FOR_SYM user | SHOW GRANTS FOR_SYM user USING user_list | SHOW EFFECTIVE_SYM GRANTS | SHOW EFFECTIVE_SYM GRANTS FOR_SYM user | SHOW EFFECTIVE_SYM GRANTS FOR_SYM user USING user_list show_create_database_stmt ::= SHOW CREATE DATABASE opt_if_not_exists ident show_create_table_stmt ::= SHOW CREATE TABLE_SYM table_ident show_create_view_stmt ::= SHOW CREATE VIEW_SYM table_ident show_master_status_stmt ::= SHOW MASTER_SYM STATUS_SYM show_replica_status_stmt ::= SHOW replica STATUS_SYM opt_channel show_stats_stmt ::= SHOW CLIENT_STATS_SYM opt_wild_or_where | SHOW USER_STATS_SYM opt_wild_or_where | SHOW THREAD_STATS_SYM opt_wild_or_where | SHOW TABLE_STATS_SYM opt_wild_or_where | SHOW INDEX_STATS_SYM opt_wild_or_where show_create_procedure_stmt ::= SHOW CREATE PROCEDURE_SYM sp_name show_create_function_stmt ::= SHOW CREATE FUNCTION_SYM sp_name show_create_trigger_stmt ::= SHOW CREATE TRIGGER_SYM sp_name show_procedure_status_stmt ::= SHOW PROCEDURE_SYM STATUS_SYM opt_wild_or_where show_function_status_stmt ::= SHOW FUNCTION_SYM STATUS_SYM opt_wild_or_where show_procedure_code_stmt ::= SHOW PROCEDURE_SYM CODE_SYM sp_name show_function_code_stmt ::= SHOW FUNCTION_SYM CODE_SYM sp_name show_create_event_stmt ::= SHOW CREATE EVENT_SYM sp_name show_create_user_stmt ::= SHOW CREATE USER user engine_or_all ::= ident_or_text | ALL master_or_binary ::= MASTER_SYM | BINARY_SYM opt_storage ::= /*empty*/ | STORAGE_SYM opt_db ::= | from_or_in ident opt_full ::= | FULL opt_extended ::= | EXTENDED_SYM opt_show_cmd_type ::= | FULL | EXTENDED_SYM | EXTENDED_SYM FULL from_or_in ::= FROM | IN_SYM opt_binlog_in ::= | IN_SYM TEXT_STRING_sys binlog_from ::= | FROM ulonglong_num opt_wild_or_where ::= | LIKE TEXT_STRING_literal | where_clause describe_stmt ::= describe_command table_ident opt_describe_column explain_stmt ::= describe_command opt_explain_analyze_type explainable_stmt explainable_stmt ::= select_stmt | insert_stmt | replace_stmt | update_stmt | delete_stmt | FOR_SYM CONNECTION_SYM real_ulong_num describe_command ::= DESC | DESCRIBE opt_explain_format_type ::= | FORMAT_SYM EQ ident_or_text opt_explain_analyze_type ::= ANALYZE_SYM opt_explain_format_type | opt_explain_format_type opt_describe_column ::= | text_string | ident flush ::= FLUSH_SYM opt_no_write_to_binlog flush_options flush_options ::= table_or_tables opt_table_list opt_flush_lock | flush_options_list opt_flush_lock ::= | WITH READ_SYM LOCK_SYM | FOR_SYM EXPORT_SYM flush_options_list ::= flush_options_list ',' flush_option | flush_option flush_option ::= ERROR_SYM LOGS_SYM | ENGINE_SYM LOGS_SYM | GENERAL LOGS_SYM | SLOW LOGS_SYM | BINARY_SYM LOGS_SYM | RELAY LOGS_SYM opt_channel | HOSTS_SYM | PRIVILEGES | LOGS_SYM | STATUS_SYM | CLIENT_STATS_SYM | USER_STATS_SYM | THREAD_STATS_SYM | TABLE_STATS_SYM | INDEX_STATS_SYM | RESOURCES | OPTIMIZER_COSTS_SYM | CHANGED_PAGE_BITMAPS_SYM | MEMORY_SYM PROFILE_SYM opt_table_list ::= | table_list reset ::= RESET_SYM reset_options | RESET_SYM PERSIST_SYM opt_if_exists_ident reset_options ::= reset_options ',' reset_option | reset_option opt_if_exists_ident ::= | if_exists ident reset_option ::= SLAVE opt_replica_reset_options opt_channel | REPLICA_SYM opt_replica_reset_options opt_channel | MASTER_SYM source_reset_options | CHANGED_PAGE_BITMAPS_SYM opt_replica_reset_options ::= | ALL source_reset_options ::= | TO_SYM real_ulonglong_num purge ::= PURGE purge_options purge_options ::= master_or_binary LOGS_SYM purge_option | CHANGED_PAGE_BITMAPS_SYM BEFORE_SYM real_ulonglong_num purge_option ::= TO_SYM TEXT_STRING_sys | BEFORE_SYM expr kill ::= KILL_SYM kill_option expr kill_option ::= | CONNECTION_SYM | QUERY_SYM use ::= USE_SYM ident load_stmt ::= LOAD data_or_xml load_data_lock opt_local INFILE TEXT_STRING_filesystem opt_duplicate INTO TABLE_SYM table_ident opt_use_partition opt_load_data_charset opt_xml_rows_identified_by opt_field_term opt_line_term opt_ignore_lines opt_field_or_var_spec opt_load_data_set_spec data_or_xml ::= DATA_SYM | XML_SYM opt_local ::= | LOCAL_SYM load_data_lock ::= | CONCURRENT | LOW_PRIORITY opt_duplicate ::= | duplicate duplicate ::= REPLACE_SYM | IGNORE_SYM opt_field_term ::= | COLUMNS field_term_list field_term_list ::= field_term_list field_term | field_term field_term ::= TERMINATED BY text_string | OPTIONALLY ENCLOSED BY text_string | ENCLOSED BY text_string | ESCAPED BY text_string opt_line_term ::= | LINES line_term_list line_term_list ::= line_term_list line_term | line_term line_term ::= TERMINATED BY text_string | STARTING BY text_string opt_xml_rows_identified_by ::= | ROWS_SYM IDENTIFIED_SYM BY text_string opt_ignore_lines ::= | IGNORE_SYM NUM lines_or_rows lines_or_rows ::= LINES | ROWS_SYM opt_field_or_var_spec ::= | '(' fields_or_vars ')' | '(' ')' fields_or_vars ::= fields_or_vars ',' field_or_var | field_or_var field_or_var ::= simple_ident_nospvar | '@' ident_or_text opt_load_data_set_spec ::= | SET_SYM load_data_set_list load_data_set_list ::= load_data_set_list ',' load_data_set_elem | load_data_set_elem load_data_set_elem ::= simple_ident_nospvar equal expr_or_default text_literal ::= TEXT_STRING | NCHAR_STRING | UNDERSCORE_CHARSET TEXT_STRING | text_literal TEXT_STRING_literal text_string ::= TEXT_STRING_literal | HEX_NUM | BIN_NUM param_marker ::= PARAM_MARKER signed_literal ::= literal | '+' NUM_literal | '-' NUM_literal signed_literal_or_null ::= signed_literal | null_as_literal null_as_literal ::= NULL_SYM literal ::= text_literal | NUM_literal | temporal_literal | FALSE_SYM | TRUE_SYM | HEX_NUM | BIN_NUM | UNDERSCORE_CHARSET HEX_NUM | UNDERSCORE_CHARSET BIN_NUM literal_or_null ::= literal | null_as_literal NUM_literal ::= int64_literal | DECIMAL_NUM | FLOAT_NUM int64_literal ::= NUM | LONG_NUM | ULONGLONG_NUM temporal_literal ::= DATE_SYM TEXT_STRING | TIME_SYM TEXT_STRING | TIMESTAMP_SYM TEXT_STRING opt_interval ::= | INTERVAL_SYM insert_ident ::= simple_ident_nospvar | table_wild table_wild ::= ident '.' '*' | ident '.' ident '.' '*' order_expr ::= expr opt_ordering_direction grouping_expr ::= expr simple_ident ::= ident | simple_ident_q simple_ident_nospvar ::= ident | simple_ident_q simple_ident_q ::= ident '.' ident | ident '.' ident '.' ident table_ident ::= ident | ident '.' ident table_ident_opt_wild ::= ident opt_wild | ident '.' ident opt_wild IDENT_sys ::= IDENT | IDENT_QUOTED TEXT_STRING_sys_nonewline ::= TEXT_STRING_sys filter_wild_db_table_string ::= TEXT_STRING_sys_nonewline TEXT_STRING_sys ::= TEXT_STRING TEXT_STRING_literal ::= TEXT_STRING TEXT_STRING_filesystem ::= TEXT_STRING TEXT_STRING_password ::= TEXT_STRING TEXT_STRING_hash ::= TEXT_STRING_sys | HEX_NUM TEXT_STRING_validated ::= TEXT_STRING ident ::= IDENT_sys | ident_keyword role_ident ::= IDENT_sys | role_keyword label_ident ::= IDENT_sys | label_keyword lvalue_ident ::= IDENT_sys | lvalue_keyword ident_or_text ::= ident | TEXT_STRING_sys | LEX_HOSTNAME role_ident_or_text ::= role_ident | TEXT_STRING_sys | LEX_HOSTNAME user_ident_or_text ::= ident_or_text | ident_or_text '@' ident_or_text user ::= user_ident_or_text | CURRENT_USER optional_braces role ::= role_ident_or_text | role_ident_or_text '@' ident_or_text schema ::= ident ident_keyword ::= ident_keywords_unambiguous | ident_keywords_ambiguous_1_roles_and_labels | ident_keywords_ambiguous_2_labels | ident_keywords_ambiguous_3_roles | ident_keywords_ambiguous_4_system_variables ident_keywords_ambiguous_1_roles_and_labels ::= EXECUTE_SYM | RESTART_SYM | SHUTDOWN ident_keywords_ambiguous_2_labels ::= ASCII_SYM | BEGIN_SYM | BYTE_SYM | CACHE_SYM | CHARSET | CHECKSUM_SYM | CLONE_SYM | COMMENT_SYM | COMMIT_SYM | COMPRESSION_DICTIONARY_SYM | CONTAINS_SYM | DEALLOCATE_SYM | DO_SYM | END | FLUSH_SYM | FOLLOWS_SYM | HANDLER_SYM | HELP_SYM | IMPORT | INSTALL_SYM | LANGUAGE_SYM | NO_SYM | PRECEDES_SYM | PREPARE_SYM | REPAIR | RESET_SYM | ROLLBACK_SYM | SAVEPOINT_SYM | SIGNED_SYM | SLAVE | START_SYM | STOP_SYM | TRUNCATE_SYM | UNICODE_SYM | UNINSTALL_SYM | XA_SYM label_keyword ::= ident_keywords_unambiguous | ident_keywords_ambiguous_3_roles | ident_keywords_ambiguous_4_system_variables ident_keywords_ambiguous_3_roles ::= EVENT_SYM | FILE_SYM | NONE_SYM | PROCESS | PROXY_SYM | RELOAD | REPLICATION | RESOURCE_SYM | SUPER_SYM ident_keywords_unambiguous ::= ACTION | ACCOUNT_SYM | ACTIVE_SYM | ADDDATE_SYM | ADMIN_SYM | AFTER_SYM | AGAINST | AGGREGATE_SYM | ALGORITHM_SYM | ALWAYS_SYM | ANY_SYM | ARRAY_SYM | AT_SYM | ATTRIBUTE_SYM | AUTOEXTEND_SIZE_SYM | AUTO_INC | AVG_ROW_LENGTH | AVG_SYM | BACKUP_SYM | BINLOG_SYM | BIT_SYM | BLOCK_SYM | BOOLEAN_SYM | BOOL_SYM | BTREE_SYM | BUCKETS_SYM | CASCADED | CATALOG_NAME_SYM | CHAIN_SYM | CHANGED | CHANGED_PAGE_BITMAPS_SYM | CHANNEL_SYM | CIPHER_SYM | CLASS_ORIGIN_SYM | CLIENT_SYM | CLIENT_STATS_SYM | CLOSE_SYM | COALESCE | CODE_SYM | COLLATION_SYM | COLUMNS | COLUMN_FORMAT_SYM | COLUMN_NAME_SYM | COMMITTED_SYM | COMPACT_SYM | COMPLETION_SYM | COMPONENT_SYM | COMPRESSED_SYM | COMPRESSION_SYM | CONCURRENT | CONNECTION_SYM | CONSISTENT_SYM | CONSTRAINT_CATALOG_SYM | CONSTRAINT_NAME_SYM | CONSTRAINT_SCHEMA_SYM | CONTEXT_SYM | CPU_SYM | CURRENT_SYM | CURSOR_NAME_SYM | DATAFILE_SYM | DATA_SYM | DATETIME_SYM | DATE_SYM | DAY_SYM | DEFAULT_AUTH_SYM | DEFINER_SYM | DEFINITION_SYM | DELAY_KEY_WRITE_SYM | DESCRIPTION_SYM | DIAGNOSTICS_SYM | DIRECTORY_SYM | DISABLE_SYM | DISCARD_SYM | DISK_SYM | DUMPFILE | DUPLICATE_SYM | DYNAMIC_SYM | EFFECTIVE_SYM | ENABLE_SYM | ENCRYPTION_KEY_ID_SYM | ENCRYPTION_SYM | ENDS_SYM | ENFORCED_SYM | ENGINES_SYM | ENGINE_SYM | ENGINE_ATTRIBUTE_SYM | ENUM_SYM | ERRORS | ERROR_SYM | ESCAPE_SYM | EVENTS_SYM | EVERY_SYM | EXCHANGE_SYM | EXCLUDE_SYM | EXPANSION_SYM | EXPIRE_SYM | EXPORT_SYM | EXTENDED_SYM | EXTENT_SIZE_SYM | FAILED_LOGIN_ATTEMPTS_SYM | FAST_SYM | FAULTS_SYM | FILE_BLOCK_SIZE_SYM | FILTER_SYM | FIRST_SYM | FIXED_SYM | FOLLOWING_SYM | FORMAT_SYM | FOUND_SYM | FULL | GENERAL | GEOMETRYCOLLECTION_SYM | GEOMETRY_SYM | GET_FORMAT | GET_MASTER_PUBLIC_KEY_SYM | GET_SOURCE_PUBLIC_KEY_SYM | GRANTS | GROUP_REPLICATION | HASH_SYM | HISTOGRAM_SYM | HISTORY_SYM | HOSTS_SYM | HOST_SYM | HOUR_SYM | IDENTIFIED_SYM | IGNORE_SERVER_IDS_SYM | INACTIVE_SYM | INDEX_STATS_SYM | INDEXES | INITIAL_SIZE_SYM | INSERT_METHOD | INSTANCE_SYM | INVISIBLE_SYM | INVOKER_SYM | IO_SYM | IPC_SYM | ISOLATION | ISSUER_SYM | JSON_SYM | JSON_VALUE_SYM | KEY_BLOCK_SIZE | LAST_SYM | LEAVES | LESS_SYM | LEVEL_SYM | LINESTRING_SYM | LIST_SYM | LOCKED_SYM | LOCKS_SYM | LOGFILE_SYM | LOGS_SYM | MASTER_AUTO_POSITION_SYM | MASTER_COMPRESSION_ALGORITHM_SYM | MASTER_CONNECT_RETRY_SYM | MASTER_DELAY_SYM | MASTER_HEARTBEAT_PERIOD_SYM | MASTER_HOST_SYM | NETWORK_NAMESPACE_SYM | MASTER_LOG_FILE_SYM | MASTER_LOG_POS_SYM | MASTER_PASSWORD_SYM | MASTER_PORT_SYM | MASTER_PUBLIC_KEY_PATH_SYM | MASTER_RETRY_COUNT_SYM | MASTER_SSL_CAPATH_SYM | MASTER_SSL_CA_SYM | MASTER_SSL_CERT_SYM | MASTER_SSL_CIPHER_SYM | MASTER_SSL_CRLPATH_SYM | MASTER_SSL_CRL_SYM | MASTER_SSL_KEY_SYM | MASTER_SSL_SYM | MASTER_SYM | MASTER_TLS_CIPHERSUITES_SYM | MASTER_TLS_VERSION_SYM | MASTER_USER_SYM | MASTER_ZSTD_COMPRESSION_LEVEL_SYM | MAX_CONNECTIONS_PER_HOUR | MAX_QUERIES_PER_HOUR | MAX_ROWS | MAX_SIZE_SYM | MAX_UPDATES_PER_HOUR | MAX_USER_CONNECTIONS_SYM | MEDIUM_SYM | MEMBER_SYM | MEMORY_SYM | MERGE_SYM | MESSAGE_TEXT_SYM | MICROSECOND_SYM | MIGRATE_SYM | MINUTE_SYM | MIN_ROWS | MODE_SYM | MODIFY_SYM | MONTH_SYM | MULTILINESTRING_SYM | MULTIPOINT_SYM | MULTIPOLYGON_SYM | MUTEX_SYM | MYSQL_ERRNO_SYM | NAMES_SYM | NAME_SYM | NATIONAL_SYM | NCHAR_SYM | NDBCLUSTER_SYM | NESTED_SYM | NEVER_SYM | NEW_SYM | NEXT_SYM | NODEGROUP_SYM | NOWAIT_SYM | NO_WAIT_SYM | NULLS_SYM | NUMBER_SYM | NVARCHAR_SYM | OFF_SYM | OFFSET_SYM | OJ_SYM | OLD_SYM | ONE_SYM | ONLY_SYM | OPEN_SYM | OPTIONAL_SYM | OPTIONS_SYM | ORDINALITY_SYM | ORGANIZATION_SYM | OTHERS_SYM | OWNER_SYM | PACK_KEYS_SYM | PAGE_SYM | PARSER_SYM | PARTIAL | PARTITIONING_SYM | PARTITIONS_SYM | PASSWORD | PASSWORD_LOCK_TIME_SYM | PATH_SYM | PHASE_SYM | PLUGINS_SYM | PLUGIN_DIR_SYM | PLUGIN_SYM | POINT_SYM | POLYGON_SYM | PORT_SYM | PRECEDING_SYM | PRESERVE_SYM | PREV_SYM | PRIVILEGES | PRIVILEGE_CHECKS_USER_SYM | PROCESSLIST_SYM | PROFILES_SYM | PROFILE_SYM | QUARTER_SYM | QUERY_SYM | QUICK | RANDOM_SYM | READ_ONLY_SYM | REBUILD_SYM | RECOVER_SYM | REDO_BUFFER_SIZE_SYM | REDUNDANT_SYM | REFERENCE_SYM | RELAY | RELAYLOG_SYM | RELAY_LOG_FILE_SYM | RELAY_LOG_POS_SYM | RELAY_THREAD | REMOVE_SYM | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS_SYM | REORGANIZE_SYM | REPEATABLE_SYM | REPLICAS_SYM | REPLICATE_DO_DB | REPLICATE_DO_TABLE | REPLICATE_IGNORE_DB | REPLICATE_IGNORE_TABLE | REPLICATE_REWRITE_DB | REPLICATE_WILD_DO_TABLE | REPLICATE_WILD_IGNORE_TABLE | REPLICA_SYM | REQUIRE_ROW_FORMAT_SYM | REQUIRE_TABLE_PRIMARY_KEY_CHECK_SYM | RESOURCES | RESPECT_SYM | RESTORE_SYM | RESUME_SYM | RETAIN_SYM | RETURNED_SQLSTATE_SYM | RETURNING_SYM | RETURNS_SYM | REUSE_SYM | REVERSE_SYM | ROLE_SYM | ROLLUP_SYM | ROTATE_SYM | ROUTINE_SYM | ROW_COUNT_SYM | ROW_FORMAT_SYM | RTREE_SYM | SCHEDULE_SYM | SCHEMA_NAME_SYM | SECONDARY_ENGINE_SYM | SECONDARY_ENGINE_ATTRIBUTE_SYM | SECONDARY_LOAD_SYM | SECONDARY_SYM | SECONDARY_UNLOAD_SYM | SECOND_SYM | SECURITY_SYM | SERIALIZABLE_SYM | SERIAL_SYM | SERVER_SYM | SHARE_SYM | SIMPLE_SYM | SKIP_SYM | SLOW | SNAPSHOT_SYM | SOCKET_SYM | SONAME_SYM | SOUNDS_SYM | SOURCE_AUTO_POSITION_SYM | SOURCE_BIND_SYM | SOURCE_COMPRESSION_ALGORITHM_SYM | SOURCE_CONNECTION_AUTO_FAILOVER_SYM | SOURCE_CONNECT_RETRY_SYM | SOURCE_DELAY_SYM | SOURCE_HEARTBEAT_PERIOD_SYM | SOURCE_HOST_SYM | SOURCE_LOG_FILE_SYM | SOURCE_LOG_POS_SYM | SOURCE_PASSWORD_SYM | SOURCE_PORT_SYM | SOURCE_PUBLIC_KEY_PATH_SYM | SOURCE_RETRY_COUNT_SYM | SOURCE_SSL_CAPATH_SYM | SOURCE_SSL_CA_SYM | SOURCE_SSL_CERT_SYM | SOURCE_SSL_CIPHER_SYM | SOURCE_SSL_CRLPATH_SYM | SOURCE_SSL_CRL_SYM | SOURCE_SSL_KEY_SYM | SOURCE_SSL_SYM | SOURCE_SSL_VERIFY_SERVER_CERT_SYM | SOURCE_SYM | SOURCE_TLS_CIPHERSUITES_SYM | SOURCE_TLS_VERSION_SYM | SOURCE_USER_SYM | SOURCE_ZSTD_COMPRESSION_LEVEL_SYM | SQL_AFTER_GTIDS | SQL_AFTER_MTS_GAPS | SQL_BEFORE_GTIDS | SQL_BUFFER_RESULT | SQL_NO_CACHE_SYM | SQL_THREAD | SRID_SYM | STACKED_SYM | STARTS_SYM | STATS_AUTO_RECALC_SYM | STATS_PERSISTENT_SYM | STATS_SAMPLE_PAGES_SYM | STATUS_SYM | STORAGE_SYM | STREAM_SYM | STRING_SYM | SUBCLASS_ORIGIN_SYM | SUBDATE_SYM | SUBJECT_SYM | SUBPARTITIONS_SYM | SUBPARTITION_SYM | SUSPEND_SYM | SWAPS_SYM | SWITCHES_SYM | TABLES | TABLESPACE_SYM | TABLE_CHECKSUM_SYM | TABLE_NAME_SYM | TABLE_STATS_SYM | TEMPORARY | TEMPTABLE_SYM | TEXT_SYM | THAN_SYM | THREAD_PRIORITY_SYM | THREAD_STATS_SYM | TIES_SYM | TIMESTAMP_ADD | TIMESTAMP_DIFF | TIMESTAMP_SYM | TIME_SYM | TLS_SYM | TRANSACTION_SYM | TRIGGERS_SYM | TYPES_SYM | TYPE_SYM | UNBOUNDED_SYM | UNCOMMITTED_SYM | UNDEFINED_SYM | UNDOFILE_SYM | UNDO_BUFFER_SIZE_SYM | UNKNOWN_SYM | UNTIL_SYM | UPGRADE_SYM | USER | USER_STATS_SYM | USE_FRM | VALIDATION_SYM | VALUE_SYM | VARIABLES | VCPU_SYM | VIEW_SYM | VISIBLE_SYM | WAIT_SYM | WARNINGS | WEEK_SYM | WEIGHT_STRING_SYM | WITHOUT_SYM | WORK_SYM | WRAPPER_SYM | X509_SYM | XID_SYM | XML_SYM | YEAR_SYM | ZONE_SYM role_keyword ::= ident_keywords_unambiguous | ident_keywords_ambiguous_2_labels | ident_keywords_ambiguous_4_system_variables lvalue_keyword ::= ident_keywords_unambiguous | ident_keywords_ambiguous_1_roles_and_labels | ident_keywords_ambiguous_2_labels | ident_keywords_ambiguous_3_roles ident_keywords_ambiguous_4_system_variables ::= GLOBAL_SYM | LOCAL_SYM | PERSIST_SYM | PERSIST_ONLY_SYM | SESSION_SYM set ::= SET_SYM start_option_value_list start_option_value_list ::= option_value_no_option_type option_value_list_continued | TRANSACTION_SYM transaction_characteristics | option_type start_option_value_list_following_option_type | PASSWORD equal TEXT_STRING_password opt_replace_password opt_retain_current_password | PASSWORD TO_SYM RANDOM_SYM opt_replace_password opt_retain_current_password | PASSWORD FOR_SYM user equal TEXT_STRING_password opt_replace_password opt_retain_current_password | PASSWORD FOR_SYM user TO_SYM RANDOM_SYM opt_replace_password opt_retain_current_password set_role_stmt ::= SET_SYM ROLE_SYM role_list | SET_SYM ROLE_SYM NONE_SYM | SET_SYM ROLE_SYM DEFAULT_SYM | SET_SYM DEFAULT_SYM ROLE_SYM role_list TO_SYM role_list | SET_SYM DEFAULT_SYM ROLE_SYM NONE_SYM TO_SYM role_list | SET_SYM DEFAULT_SYM ROLE_SYM ALL TO_SYM role_list | SET_SYM ROLE_SYM ALL opt_except_role_list opt_except_role_list ::= | EXCEPT_SYM role_list set_resource_group_stmt ::= SET_SYM RESOURCE_SYM GROUP_SYM ident | SET_SYM RESOURCE_SYM GROUP_SYM ident FOR_SYM thread_id_list_options thread_id_list ::= real_ulong_num | thread_id_list opt_comma real_ulong_num thread_id_list_options ::= thread_id_list start_option_value_list_following_option_type ::= option_value_following_option_type option_value_list_continued | TRANSACTION_SYM transaction_characteristics option_value_list_continued ::= | ',' option_value_list option_value_list ::= option_value | option_value_list ',' option_value option_value ::= option_type option_value_following_option_type | option_value_no_option_type option_type ::= GLOBAL_SYM | PERSIST_SYM | PERSIST_ONLY_SYM | LOCAL_SYM | SESSION_SYM opt_var_type ::= | GLOBAL_SYM | LOCAL_SYM | SESSION_SYM opt_var_ident_type ::= | GLOBAL_SYM '.' | LOCAL_SYM '.' | SESSION_SYM '.' opt_set_var_ident_type ::= | PERSIST_SYM '.' | PERSIST_ONLY_SYM '.' | GLOBAL_SYM '.' | LOCAL_SYM '.' | SESSION_SYM '.' option_value_following_option_type ::= internal_variable_name equal set_expr_or_default option_value_no_option_type ::= internal_variable_name equal set_expr_or_default | '@' ident_or_text equal expr | '@' '@' opt_set_var_ident_type internal_variable_name equal set_expr_or_default | character_set old_or_new_charset_name_or_default | NAMES_SYM equal expr | NAMES_SYM charset_name opt_collate | NAMES_SYM DEFAULT_SYM internal_variable_name ::= lvalue_ident | lvalue_ident '.' ident | DEFAULT_SYM '.' ident transaction_characteristics ::= transaction_access_mode opt_isolation_level | isolation_level opt_transaction_access_mode transaction_access_mode ::= transaction_access_mode_types opt_transaction_access_mode ::= | ',' transaction_access_mode isolation_level ::= ISOLATION LEVEL_SYM isolation_types opt_isolation_level ::= | ',' isolation_level transaction_access_mode_types ::= READ_SYM ONLY_SYM | READ_SYM WRITE_SYM isolation_types ::= READ_SYM UNCOMMITTED_SYM | READ_SYM COMMITTED_SYM | REPEATABLE_SYM READ_SYM | SERIALIZABLE_SYM set_expr_or_default ::= expr | DEFAULT_SYM | ON_SYM | ALL | BINARY_SYM | ROW_SYM | SYSTEM_SYM | FORCE_SYM lock ::= LOCK_SYM lock_variant lock_variant ::= TABLES FOR_SYM BACKUP_SYM | table_or_tables table_lock_list | INSTANCE_SYM FOR_SYM BACKUP_SYM table_or_tables ::= TABLE_SYM | TABLES table_lock_list ::= table_lock | table_lock_list ',' table_lock table_lock ::= table_ident opt_table_alias lock_option lock_option ::= READ_SYM | WRITE_SYM | LOW_PRIORITY WRITE_SYM | READ_SYM LOCAL_SYM unlock ::= UNLOCK_SYM unlock_variant unlock_variant ::= INSTANCE_SYM | table_or_tables shutdown_stmt ::= SHUTDOWN restart_server_stmt ::= RESTART_SYM alter_instance_stmt ::= ALTER INSTANCE_SYM alter_instance_action alter_instance_action ::= ROTATE_SYM ident_or_text MASTER_SYM KEY_SYM | ROTATE_SYM ident_or_text SYSTEM_SYM KEY_SYM ulong_num | ROTATE_SYM ident_or_text SYSTEM_SYM KEY_SYM | RELOAD TLS_SYM | RELOAD TLS_SYM NO_SYM ROLLBACK_SYM ON_SYM ERROR_SYM | RELOAD TLS_SYM FOR_SYM CHANNEL_SYM ident | RELOAD TLS_SYM FOR_SYM CHANNEL_SYM ident NO_SYM ROLLBACK_SYM ON_SYM ERROR_SYM | ENABLE_SYM ident ident | DISABLE_SYM ident ident handler_stmt ::= HANDLER_SYM table_ident OPEN_SYM opt_table_alias | HANDLER_SYM ident CLOSE_SYM | HANDLER_SYM ident READ_SYM handler_scan_function opt_where_clause opt_limit_clause | HANDLER_SYM ident READ_SYM ident handler_rkey_function opt_where_clause opt_limit_clause | HANDLER_SYM ident READ_SYM ident handler_rkey_mode '(' values ')' opt_where_clause opt_limit_clause handler_scan_function ::= FIRST_SYM | NEXT_SYM handler_rkey_function ::= FIRST_SYM | NEXT_SYM | PREV_SYM | LAST_SYM handler_rkey_mode ::= EQ | GE | LE | GT_SYM | LT revoke ::= REVOKE role_or_privilege_list FROM user_list | REVOKE role_or_privilege_list ON_SYM opt_acl_type grant_ident FROM user_list | REVOKE ALL opt_privileges ON_SYM opt_acl_type grant_ident FROM user_list | REVOKE ALL opt_privileges ',' GRANT OPTION FROM user_list | REVOKE PROXY_SYM ON_SYM user FROM user_list grant ::= GRANT role_or_privilege_list TO_SYM user_list opt_with_admin_option | GRANT role_or_privilege_list ON_SYM opt_acl_type grant_ident TO_SYM user_list grant_options opt_grant_as | GRANT ALL opt_privileges ON_SYM opt_acl_type grant_ident TO_SYM user_list grant_options opt_grant_as | GRANT PROXY_SYM ON_SYM user TO_SYM user_list opt_grant_option opt_acl_type ::= | TABLE_SYM | FUNCTION_SYM | PROCEDURE_SYM opt_privileges ::= /*empty*/ | PRIVILEGES role_or_privilege_list ::= role_or_privilege | role_or_privilege_list ',' role_or_privilege role_or_privilege ::= role_ident_or_text opt_column_list | role_ident_or_text '@' ident_or_text | SELECT_SYM opt_column_list | INSERT_SYM opt_column_list | UPDATE_SYM opt_column_list | REFERENCES opt_column_list | DELETE_SYM | USAGE | INDEX_SYM | ALTER | CREATE | DROP | EXECUTE_SYM | RELOAD | SHUTDOWN | PROCESS | FILE_SYM | GRANT OPTION | SHOW DATABASES | SUPER_SYM | CREATE TEMPORARY TABLES | LOCK_SYM TABLES | REPLICATION SLAVE | REPLICATION CLIENT_SYM | CREATE VIEW_SYM | SHOW VIEW_SYM | CREATE ROUTINE_SYM | ALTER ROUTINE_SYM | CREATE USER | EVENT_SYM | TRIGGER_SYM | CREATE TABLESPACE_SYM | CREATE ROLE_SYM | DROP ROLE_SYM opt_with_admin_option ::= | WITH ADMIN_SYM OPTION opt_and ::= /*empty*/ | AND_SYM require_list ::= require_list_element opt_and require_list | require_list_element require_list_element ::= SUBJECT_SYM TEXT_STRING | ISSUER_SYM TEXT_STRING | CIPHER_SYM TEXT_STRING grant_ident ::= '*' | schema '.' '*' | '*' '.' '*' | ident | schema '.' ident user_list ::= user | user_list ',' user role_list ::= role | role_list ',' role opt_retain_current_password ::= | RETAIN_SYM CURRENT_SYM PASSWORD opt_discard_old_password ::= | DISCARD_SYM OLD_SYM PASSWORD create_user ::= user IDENTIFIED_SYM BY TEXT_STRING_password | user IDENTIFIED_SYM BY RANDOM_SYM PASSWORD | user IDENTIFIED_SYM WITH ident_or_text | user IDENTIFIED_SYM WITH ident_or_text AS TEXT_STRING_hash | user IDENTIFIED_SYM WITH ident_or_text BY TEXT_STRING_password | user IDENTIFIED_SYM WITH ident_or_text BY RANDOM_SYM PASSWORD | user alter_user ::= user IDENTIFIED_SYM BY TEXT_STRING REPLACE_SYM TEXT_STRING_password opt_retain_current_password | user IDENTIFIED_SYM WITH ident_or_text BY TEXT_STRING_password REPLACE_SYM TEXT_STRING_password opt_retain_current_password | user IDENTIFIED_SYM BY TEXT_STRING_password opt_retain_current_password | user IDENTIFIED_SYM BY RANDOM_SYM PASSWORD opt_retain_current_password | user IDENTIFIED_SYM BY RANDOM_SYM PASSWORD REPLACE_SYM TEXT_STRING_password opt_retain_current_password | user IDENTIFIED_SYM WITH ident_or_text | user IDENTIFIED_SYM WITH ident_or_text AS TEXT_STRING_hash opt_retain_current_password | user IDENTIFIED_SYM WITH ident_or_text BY TEXT_STRING_password opt_retain_current_password | user IDENTIFIED_SYM WITH ident_or_text BY RANDOM_SYM PASSWORD opt_retain_current_password | user opt_discard_old_password create_user_list ::= create_user | create_user_list ',' create_user alter_user_list ::= alter_user | alter_user_list ',' alter_user opt_column_list ::= | '(' column_list ')' column_list ::= ident | column_list ',' ident require_clause ::= /*empty*/ | REQUIRE_SYM require_list | REQUIRE_SYM SSL_SYM | REQUIRE_SYM X509_SYM | REQUIRE_SYM NONE_SYM grant_options ::= | WITH GRANT OPTION opt_grant_option ::= | WITH GRANT OPTION opt_with_roles ::= | WITH ROLE_SYM role_list | WITH ROLE_SYM ALL opt_except_role_list | WITH ROLE_SYM NONE_SYM | WITH ROLE_SYM DEFAULT_SYM opt_grant_as ::= | AS user opt_with_roles begin_stmt ::= BEGIN_SYM opt_work opt_work ::= | WORK_SYM opt_chain ::= | AND_SYM NO_SYM CHAIN_SYM | AND_SYM CHAIN_SYM opt_release ::= | RELEASE_SYM | NO_SYM RELEASE_SYM opt_savepoint ::= | SAVEPOINT_SYM commit ::= COMMIT_SYM opt_work opt_chain opt_release rollback ::= ROLLBACK_SYM opt_work opt_chain opt_release | ROLLBACK_SYM opt_work TO_SYM opt_savepoint ident savepoint ::= SAVEPOINT_SYM ident release ::= RELEASE_SYM SAVEPOINT_SYM ident union_option ::= | DISTINCT | ALL row_subquery ::= subquery table_subquery ::= subquery subquery ::= query_expression_parens query_spec_option ::= STRAIGHT_JOIN | HIGH_PRIORITY | DISTINCT | SQL_SMALL_RESULT | SQL_BIG_RESULT | SQL_BUFFER_RESULT | SQL_CALC_FOUND_ROWS | ALL init_lex_create_info ::= view_or_trigger_or_sp_or_event ::= definer init_lex_create_info definer_tail | no_definer init_lex_create_info no_definer_tail | view_replace_or_algorithm definer_opt init_lex_create_info view_tail definer_tail ::= view_tail | trigger_tail | sp_tail | sf_tail | event_tail no_definer_tail ::= view_tail | trigger_tail | sp_tail | sf_tail | udf_tail | event_tail definer_opt ::= no_definer | definer no_definer ::= definer ::= DEFINER_SYM EQ user view_replace_or_algorithm ::= view_replace | view_replace view_algorithm | view_algorithm view_replace ::= OR_SYM REPLACE_SYM view_algorithm ::= ALGORITHM_SYM EQ UNDEFINED_SYM | ALGORITHM_SYM EQ MERGE_SYM | ALGORITHM_SYM EQ TEMPTABLE_SYM view_suid ::= | SQL_SYM SECURITY_SYM DEFINER_SYM | SQL_SYM SECURITY_SYM INVOKER_SYM view_tail ::= view_suid VIEW_SYM table_ident opt_derived_column_list AS view_select view_select ::= query_expression_or_parens view_check_option view_check_option ::= | WITH CHECK_SYM OPTION | WITH CASCADED CHECK_SYM OPTION | WITH LOCAL_SYM CHECK_SYM OPTION trigger_action_order ::= FOLLOWS_SYM | PRECEDES_SYM trigger_follows_precedes_clause ::= | trigger_action_order ident_or_text trigger_tail ::= TRIGGER_SYM sp_name trg_action_time trg_event ON_SYM table_ident FOR_SYM EACH_SYM ROW_SYM trigger_follows_precedes_clause sp_proc_stmt udf_tail ::= AGGREGATE_SYM FUNCTION_SYM ident RETURNS_SYM udf_type SONAME_SYM TEXT_STRING_sys | FUNCTION_SYM ident RETURNS_SYM udf_type SONAME_SYM TEXT_STRING_sys sf_tail ::= FUNCTION_SYM sp_name '(' sp_fdparam_list ')' RETURNS_SYM type opt_collate sp_c_chistics sp_proc_stmt sp_tail ::= PROCEDURE_SYM sp_name '(' sp_pdparam_list ')' sp_c_chistics sp_proc_stmt xa ::= XA_SYM begin_or_start xid opt_join_or_resume | XA_SYM END xid opt_suspend | XA_SYM PREPARE_SYM xid | XA_SYM COMMIT_SYM xid opt_one_phase | XA_SYM ROLLBACK_SYM xid | XA_SYM RECOVER_SYM opt_convert_xid opt_convert_xid ::= | CONVERT_SYM XID_SYM xid ::= text_string | text_string ',' text_string | text_string ',' text_string ',' ulong_num begin_or_start ::= BEGIN_SYM | START_SYM opt_join_or_resume ::= | JOIN_SYM | RESUME_SYM opt_one_phase ::= | ONE_SYM PHASE_SYM opt_suspend ::= | SUSPEND_SYM | SUSPEND_SYM FOR_SYM MIGRATE_SYM install ::= INSTALL_SYM PLUGIN_SYM ident SONAME_SYM TEXT_STRING_sys | INSTALL_SYM COMPONENT_SYM TEXT_STRING_sys_list uninstall ::= UNINSTALL_SYM PLUGIN_SYM ident | UNINSTALL_SYM COMPONENT_SYM TEXT_STRING_sys_list TEXT_STRING_sys_list ::= TEXT_STRING_sys | TEXT_STRING_sys_list ',' TEXT_STRING_sys import_stmt ::= IMPORT TABLE_SYM FROM TEXT_STRING_sys_list clone_stmt ::= CLONE_SYM LOCAL_SYM DATA_SYM DIRECTORY_SYM opt_equal TEXT_STRING_filesystem | CLONE_SYM INSTANCE_SYM FROM user ':' ulong_num IDENTIFIED_SYM BY TEXT_STRING_sys opt_datadir_ssl opt_datadir_ssl ::= opt_ssl | DATA_SYM DIRECTORY_SYM opt_equal TEXT_STRING_filesystem opt_ssl opt_ssl ::= | REQUIRE_SYM SSL_SYM | REQUIRE_SYM NO_SYM SSL_SYM resource_group_types ::= USER | SYSTEM_SYM opt_resource_group_vcpu_list ::= | VCPU_SYM opt_equal vcpu_range_spec_list vcpu_range_spec_list ::= vcpu_num_or_range | vcpu_range_spec_list opt_comma vcpu_num_or_range vcpu_num_or_range ::= NUM | NUM '-' NUM signed_num ::= NUM | '-' NUM opt_resource_group_priority ::= | THREAD_PRIORITY_SYM opt_equal signed_num opt_resource_group_enable_disable ::= | ENABLE_SYM | DISABLE_SYM opt_force ::= | FORCE_SYM json_attribute ::= TEXT_STRING_sys // Tokens from https://raw.githubusercontent.com/percona/percona-server/8.0/sql/lex.h AND_AND_SYM ::= "&&" LT ::= "<" LE ::= "<=" NE ::= "<>" NE ::= "!=" EQ ::= "=" GT_SYM ::= ">" GE ::= ">=" SHIFT_LEFT ::= "<<" SHIFT_RIGHT ::= ">>" EQUAL_SYM ::= "<=>" ACCESSIBLE_SYM ::= "ACCESSIBLE" ACCOUNT_SYM ::= "ACCOUNT" ACTION ::= "ACTION" ACTIVE_SYM ::= "ACTIVE" ADD ::= "ADD" ADMIN_SYM ::= "ADMIN" AFTER_SYM ::= "AFTER" AGAINST ::= "AGAINST" AGGREGATE_SYM ::= "AGGREGATE" ALL ::= "ALL" ALGORITHM_SYM ::= "ALGORITHM" ALWAYS_SYM ::= "ALWAYS" AND_SYM ::= "AND" ANY_SYM ::= "ANY" ARRAY_SYM ::= "ARRAY" AS ::= "AS" ASC ::= "ASC" ASCII_SYM ::= "ASCII" ASENSITIVE_SYM ::= "ASENSITIVE" AT_SYM ::= "AT" ATTRIBUTE_SYM ::= "ATTRIBUTE" AUTO_INC ::= "AUTO_INCREMENT" AUTOEXTEND_SIZE_SYM ::= "AUTOEXTEND_SIZE" AVG_SYM ::= "AVG" AVG_ROW_LENGTH ::= "AVG_ROW_LENGTH" BACKUP_SYM ::= "BACKUP" BEFORE_SYM ::= "BEFORE" BEGIN_SYM ::= "BEGIN" BETWEEN_SYM ::= "BETWEEN" BIGINT_SYM ::= "BIGINT" BINARY_SYM ::= "BINARY" BINLOG_SYM ::= "BINLOG" BIT_SYM ::= "BIT" BLOB_SYM ::= "BLOB" BLOCK_SYM ::= "BLOCK" BOOL_SYM ::= "BOOL" BOOLEAN_SYM ::= "BOOLEAN" BOTH ::= "BOTH" BTREE_SYM ::= "BTREE" BUCKETS_SYM ::= "BUCKETS" BY ::= "BY" BYTE_SYM ::= "BYTE" CACHE_SYM ::= "CACHE" CASCADE ::= "CASCADE" CASCADED ::= "CASCADED" CASE_SYM ::= "CASE" CATALOG_NAME_SYM ::= "CATALOG_NAME" CHAIN_SYM ::= "CHAIN" CHANGE ::= "CHANGE" CHANGED ::= "CHANGED" CHANGED_PAGE_BITMAPS_SYM ::= "CHANGED_PAGE_BITMAPS" CHANNEL_SYM ::= "CHANNEL" CHAR_SYM ::= "CHAR" CHAR_SYM ::= "CHARACTER" CHARSET ::= "CHARSET" CHECKSUM_SYM ::= "CHECKSUM" CIPHER_SYM ::= "CIPHER" CLASS_ORIGIN_SYM ::= "CLASS_ORIGIN" CLIENT_SYM ::= "CLIENT" CLIENT_STATS_SYM ::= "CLIENT_STATISTICS" CLONE_SYM ::= "CLONE" CLOSE_SYM ::= "CLOSE" CLUSTERING_SYM ::= "CLUSTERING" COALESCE ::= "COALESCE" CODE_SYM ::= "CODE" COLLATE_SYM ::= "COLLATE" COLLATION_SYM ::= "COLLATION" COLUMN_SYM ::= "COLUMN" COLUMN_FORMAT_SYM ::= "COLUMN_FORMAT" COLUMN_NAME_SYM ::= "COLUMN_NAME" COLUMNS ::= "COLUMNS" COMMENT_SYM ::= "COMMENT" COMMIT_SYM ::= "COMMIT" COMMITTED_SYM ::= "COMMITTED" COMPACT_SYM ::= "COMPACT" COMPLETION_SYM ::= "COMPLETION" COMPONENT_SYM ::= "COMPONENT" COMPRESSION_SYM ::= "COMPRESSION" COMPRESSED_SYM ::= "COMPRESSED" COMPRESSION_DICTIONARY_SYM ::= "COMPRESSION_DICTIONARY" ENCRYPTION_SYM ::= "ENCRYPTION" ENCRYPTION_KEY_ID_SYM ::= "ENCRYPTION_KEY_ID" CONCURRENT ::= "CONCURRENT" CONDITION_SYM ::= "CONDITION" CONNECTION_SYM ::= "CONNECTION" CONSISTENT_SYM ::= "CONSISTENT" CONSTRAINT ::= "CONSTRAINT" CONSTRAINT_CATALOG_SYM ::= "CONSTRAINT_CATALOG" CONSTRAINT_NAME_SYM ::= "CONSTRAINT_NAME" CONSTRAINT_SCHEMA_SYM ::= "CONSTRAINT_SCHEMA" CONTAINS_SYM ::= "CONTAINS" CONTEXT_SYM ::= "CONTEXT" CONTINUE_SYM ::= "CONTINUE" CONVERT_SYM ::= "CONVERT" CPU_SYM ::= "CPU" CROSS ::= "CROSS" CUBE_SYM ::= "CUBE" CUME_DIST_SYM ::= "CUME_DIST" CURRENT_SYM ::= "CURRENT" CURDATE ::= "CURRENT_DATE" CURTIME ::= "CURRENT_TIME" NOW_SYM ::= "CURRENT_TIMESTAMP" CURRENT_USER ::= "CURRENT_USER" CURSOR_SYM ::= "CURSOR" CURSOR_NAME_SYM ::= "CURSOR_NAME" DATA_SYM ::= "DATA" DATABASE ::= "DATABASE" DATABASES ::= "DATABASES" DATAFILE_SYM ::= "DATAFILE" DATE_SYM ::= "DATE" DATETIME_SYM ::= "DATETIME" DAY_SYM ::= "DAY" DAY_HOUR_SYM ::= "DAY_HOUR" DAY_MICROSECOND_SYM ::= "DAY_MICROSECOND" DAY_MINUTE_SYM ::= "DAY_MINUTE" DAY_SECOND_SYM ::= "DAY_SECOND" DEALLOCATE_SYM ::= "DEALLOCATE" DECIMAL_SYM ::= "DEC" DECIMAL_SYM ::= "DECIMAL" DECLARE_SYM ::= "DECLARE" DEFAULT_SYM ::= "DEFAULT" DEFAULT_AUTH_SYM ::= "DEFAULT_AUTH" DEFINER_SYM ::= "DEFINER" DEFINITION_SYM ::= "DEFINITION" DELAYED_SYM ::= "DELAYED" DELAY_KEY_WRITE_SYM ::= "DELAY_KEY_WRITE" DENSE_RANK_SYM ::= "DENSE_RANK" DESC ::= "DESC" DESCRIBE ::= "DESCRIBE" DESCRIPTION_SYM ::= "DESCRIPTION" DETERMINISTIC_SYM ::= "DETERMINISTIC" DIAGNOSTICS_SYM ::= "DIAGNOSTICS" DIRECTORY_SYM ::= "DIRECTORY" DISABLE_SYM ::= "DISABLE" DISCARD_SYM ::= "DISCARD" DISK_SYM ::= "DISK" DISTINCT ::= "DISTINCT" DISTINCT ::= "DISTINCTROW" DIV_SYM ::= "DIV" DO_SYM ::= "DO" DOUBLE_SYM ::= "DOUBLE" DROP ::= "DROP" DUAL_SYM ::= "DUAL" DUMPFILE ::= "DUMPFILE" DUPLICATE_SYM ::= "DUPLICATE" DYNAMIC_SYM ::= "DYNAMIC" EACH_SYM ::= "EACH" EFFECTIVE_SYM ::= "EFFECTIVE" ELSE ::= "ELSE" ELSEIF_SYM ::= "ELSEIF" EMPTY_SYM ::= "EMPTY" ENABLE_SYM ::= "ENABLE" ENCLOSED ::= "ENCLOSED" END ::= "END" ENDS_SYM ::= "ENDS" ENFORCED_SYM ::= "ENFORCED" ENGINE_SYM ::= "ENGINE" ENGINE_ATTRIBUTE_SYM ::= "ENGINE_ATTRIBUTE" ENGINES_SYM ::= "ENGINES" ENUM_SYM ::= "ENUM" ERROR_SYM ::= "ERROR" ERRORS ::= "ERRORS" ESCAPE_SYM ::= "ESCAPE" ESCAPED ::= "ESCAPED" EVENT_SYM ::= "EVENT" EVENTS_SYM ::= "EVENTS" EVERY_SYM ::= "EVERY" EXCEPT_SYM ::= "EXCEPT" EXCHANGE_SYM ::= "EXCHANGE" EXCLUDE_SYM ::= "EXCLUDE" EXECUTE_SYM ::= "EXECUTE" EXISTS ::= "EXISTS" EXIT_SYM ::= "EXIT" EXPANSION_SYM ::= "EXPANSION" EXPORT_SYM ::= "EXPORT" EXPIRE_SYM ::= "EXPIRE" DESCRIBE ::= "EXPLAIN" EXTENDED_SYM ::= "EXTENDED" EXTENT_SIZE_SYM ::= "EXTENT_SIZE" FAILED_LOGIN_ATTEMPTS_SYM ::= "FAILED_LOGIN_ATTEMPTS" FALSE_SYM ::= "FALSE" FAST_SYM ::= "FAST" FAULTS_SYM ::= "FAULTS" FETCH_SYM ::= "FETCH" COLUMNS ::= "FIELDS" FILE_SYM ::= "FILE" FILE_BLOCK_SIZE_SYM ::= "FILE_BLOCK_SIZE" FILTER_SYM ::= "FILTER" FIRST_SYM ::= "FIRST" FIRST_VALUE_SYM ::= "FIRST_VALUE" FIXED_SYM ::= "FIXED" FLOAT_SYM ::= "FLOAT" FLOAT_SYM ::= "FLOAT4" DOUBLE_SYM ::= "FLOAT8" FLUSH_SYM ::= "FLUSH" FOLLOWS_SYM ::= "FOLLOWS" FOLLOWING_SYM ::= "FOLLOWING" FOR_SYM ::= "FOR" FORCE_SYM ::= "FORCE" FOREIGN ::= "FOREIGN" FORMAT_SYM ::= "FORMAT" FOUND_SYM ::= "FOUND" FROM ::= "FROM" FULL ::= "FULL" FULLTEXT_SYM ::= "FULLTEXT" FUNCTION_SYM ::= "FUNCTION" GENERAL ::= "GENERAL" GROUP_REPLICATION ::= "GROUP_REPLICATION" GEOMETRYCOLLECTION_SYM ::= "GEOMCOLLECTION" GEOMETRY_SYM ::= "GEOMETRY" GEOMETRYCOLLECTION_SYM ::= "GEOMETRYCOLLECTION" GET_FORMAT ::= "GET_FORMAT" GET_MASTER_PUBLIC_KEY_SYM ::= "GET_MASTER_PUBLIC_KEY" GET_SOURCE_PUBLIC_KEY_SYM ::= "GET_SOURCE_PUBLIC_KEY" GET_SYM ::= "GET" GENERATED ::= "GENERATED" GLOBAL_SYM ::= "GLOBAL" GRANT ::= "GRANT" GRANTS ::= "GRANTS" GROUP_SYM ::= "GROUP" GROUPING_SYM ::= "GROUPING" GROUPS_SYM ::= "GROUPS" HANDLER_SYM ::= "HANDLER" HASH_SYM ::= "HASH" HAVING ::= "HAVING" HELP_SYM ::= "HELP" HIGH_PRIORITY ::= "HIGH_PRIORITY" HISTOGRAM_SYM ::= "HISTOGRAM" HISTORY_SYM ::= "HISTORY" HOST_SYM ::= "HOST" HOSTS_SYM ::= "HOSTS" HOUR_SYM ::= "HOUR" HOUR_MICROSECOND_SYM ::= "HOUR_MICROSECOND" HOUR_MINUTE_SYM ::= "HOUR_MINUTE" HOUR_SECOND_SYM ::= "HOUR_SECOND" IDENTIFIED_SYM ::= "IDENTIFIED" IF ::= "IF" IGNORE_SYM ::= "IGNORE" IGNORE_SERVER_IDS_SYM ::= "IGNORE_SERVER_IDS" IMPORT ::= "IMPORT" IN_SYM ::= "IN" INACTIVE_SYM ::= "INACTIVE" INDEX_SYM ::= "INDEX" INDEX_STATS_SYM ::= "INDEX_STATISTICS" INDEXES ::= "INDEXES" INFILE ::= "INFILE" INITIAL_SIZE_SYM ::= "INITIAL_SIZE" INNER_SYM ::= "INNER" INOUT_SYM ::= "INOUT" INSENSITIVE_SYM ::= "INSENSITIVE" INSERT_METHOD ::= "INSERT_METHOD" INSTALL_SYM ::= "INSTALL" INSTANCE_SYM ::= "INSTANCE" INT_SYM ::= "INT" TINYINT_SYM ::= "INT1" SMALLINT_SYM ::= "INT2" MEDIUMINT_SYM ::= "INT3" INT_SYM ::= "INT4" BIGINT_SYM ::= "INT8" INT_SYM ::= "INTEGER" INTERVAL_SYM ::= "INTERVAL" INTO ::= "INTO" IO_SYM ::= "IO" IO_AFTER_GTIDS ::= "IO_AFTER_GTIDS" IO_BEFORE_GTIDS ::= "IO_BEFORE_GTIDS" RELAY_THREAD ::= "IO_THREAD" IPC_SYM ::= "IPC" IS ::= "IS" ISOLATION ::= "ISOLATION" ISSUER_SYM ::= "ISSUER" ITERATE_SYM ::= "ITERATE" INVISIBLE_SYM ::= "INVISIBLE" INVOKER_SYM ::= "INVOKER" JOIN_SYM ::= "JOIN" JSON_SYM ::= "JSON" JSON_TABLE_SYM ::= "JSON_TABLE" JSON_VALUE_SYM ::= "JSON_VALUE" KEY_SYM ::= "KEY" KEYS ::= "KEYS" KEY_BLOCK_SIZE ::= "KEY_BLOCK_SIZE" KILL_SYM ::= "KILL" LAG_SYM ::= "LAG" LANGUAGE_SYM ::= "LANGUAGE" LAST_SYM ::= "LAST" LAST_VALUE_SYM ::= "LAST_VALUE" LATERAL_SYM ::= "LATERAL" LEAD_SYM ::= "LEAD" LEADING ::= "LEADING" LEAVE_SYM ::= "LEAVE" LEAVES ::= "LEAVES" LEFT ::= "LEFT" LESS_SYM ::= "LESS" LEVEL_SYM ::= "LEVEL" LIKE ::= "LIKE" LIMIT ::= "LIMIT" LINEAR_SYM ::= "LINEAR" LINES ::= "LINES" LINESTRING_SYM ::= "LINESTRING" LIST_SYM ::= "LIST" LOCAL_SYM ::= "LOCAL" NOW_SYM ::= "LOCALTIME" NOW_SYM ::= "LOCALTIMESTAMP" LOCK_SYM ::= "LOCK" LOCKED_SYM ::= "LOCKED" LOCKS_SYM ::= "LOCKS" LOGFILE_SYM ::= "LOGFILE" LOGS_SYM ::= "LOGS" LONG_SYM ::= "LONG" LONGBLOB_SYM ::= "LONGBLOB" LONGTEXT_SYM ::= "LONGTEXT" LOOP_SYM ::= "LOOP" LOW_PRIORITY ::= "LOW_PRIORITY" MASTER_SYM ::= "MASTER" MASTER_AUTO_POSITION_SYM ::= "MASTER_AUTO_POSITION" MASTER_BIND_SYM ::= "MASTER_BIND" MASTER_CONNECT_RETRY_SYM ::= "MASTER_CONNECT_RETRY" MASTER_COMPRESSION_ALGORITHM_SYM ::= "MASTER_COMPRESSION_ALGORITHMS" MASTER_DELAY_SYM ::= "MASTER_DELAY" MASTER_HEARTBEAT_PERIOD_SYM ::= "MASTER_HEARTBEAT_PERIOD" MASTER_HOST_SYM ::= "MASTER_HOST" MASTER_LOG_FILE_SYM ::= "MASTER_LOG_FILE" MASTER_LOG_POS_SYM ::= "MASTER_LOG_POS" MASTER_PASSWORD_SYM ::= "MASTER_PASSWORD" MASTER_PORT_SYM ::= "MASTER_PORT" MASTER_PUBLIC_KEY_PATH_SYM ::= "MASTER_PUBLIC_KEY_PATH" MASTER_RETRY_COUNT_SYM ::= "MASTER_RETRY_COUNT" MASTER_SSL_SYM ::= "MASTER_SSL" MASTER_SSL_CA_SYM ::= "MASTER_SSL_CA" MASTER_SSL_CAPATH_SYM ::= "MASTER_SSL_CAPATH" MASTER_SSL_CERT_SYM ::= "MASTER_SSL_CERT" MASTER_SSL_CIPHER_SYM ::= "MASTER_SSL_CIPHER" MASTER_SSL_CRL_SYM ::= "MASTER_SSL_CRL" MASTER_SSL_CRLPATH_SYM ::= "MASTER_SSL_CRLPATH" MASTER_SSL_KEY_SYM ::= "MASTER_SSL_KEY" MASTER_SSL_VERIFY_SERVER_CERT_SYM ::= "MASTER_SSL_VERIFY_SERVER_CERT" MASTER_TLS_CIPHERSUITES_SYM ::= "MASTER_TLS_CIPHERSUITES" MASTER_TLS_VERSION_SYM ::= "MASTER_TLS_VERSION" MASTER_USER_SYM ::= "MASTER_USER" MASTER_ZSTD_COMPRESSION_LEVEL_SYM ::= "MASTER_ZSTD_COMPRESSION_LEVEL" MATCH ::= "MATCH" MAX_CONNECTIONS_PER_HOUR ::= "MAX_CONNECTIONS_PER_HOUR" MAX_QUERIES_PER_HOUR ::= "MAX_QUERIES_PER_HOUR" MAX_ROWS ::= "MAX_ROWS" MAX_SIZE_SYM ::= "MAX_SIZE" MAX_UPDATES_PER_HOUR ::= "MAX_UPDATES_PER_HOUR" MAX_USER_CONNECTIONS_SYM ::= "MAX_USER_CONNECTIONS" MAX_VALUE_SYM ::= "MAXVALUE" MEDIUM_SYM ::= "MEDIUM" MEDIUMBLOB_SYM ::= "MEDIUMBLOB" MEDIUMINT_SYM ::= "MEDIUMINT" MEDIUMTEXT_SYM ::= "MEDIUMTEXT" MEMBER_SYM ::= "MEMBER" MEMORY_SYM ::= "MEMORY" MERGE_SYM ::= "MERGE" MESSAGE_TEXT_SYM ::= "MESSAGE_TEXT" MICROSECOND_SYM ::= "MICROSECOND" MEDIUMINT_SYM ::= "MIDDLEINT" MIGRATE_SYM ::= "MIGRATE" MINUTE_SYM ::= "MINUTE" MINUTE_MICROSECOND_SYM ::= "MINUTE_MICROSECOND" MINUTE_SECOND_SYM ::= "MINUTE_SECOND" MIN_ROWS ::= "MIN_ROWS" MOD_SYM ::= "MOD" MODE_SYM ::= "MODE" MODIFIES_SYM ::= "MODIFIES" MODIFY_SYM ::= "MODIFY" MONTH_SYM ::= "MONTH" MULTILINESTRING_SYM ::= "MULTILINESTRING" MULTIPOINT_SYM ::= "MULTIPOINT" MULTIPOLYGON_SYM ::= "MULTIPOLYGON" MUTEX_SYM ::= "MUTEX" MYSQL_ERRNO_SYM ::= "MYSQL_ERRNO" NAME_SYM ::= "NAME" NAMES_SYM ::= "NAMES" NATIONAL_SYM ::= "NATIONAL" NATURAL ::= "NATURAL" NDBCLUSTER_SYM ::= "NDB" NDBCLUSTER_SYM ::= "NDBCLUSTER" NCHAR_SYM ::= "NCHAR" NESTED_SYM ::= "NESTED" NETWORK_NAMESPACE_SYM ::= "NETWORK_NAMESPACE" NEVER_SYM ::= "NEVER" NEW_SYM ::= "NEW" NEXT_SYM ::= "NEXT" NO_SYM ::= "NO" NO_WAIT_SYM ::= "NO_WAIT" NOWAIT_SYM ::= "NOWAIT" NODEGROUP_SYM ::= "NODEGROUP" NONE_SYM ::= "NONE" NOT_SYM ::= "NOT" NO_WRITE_TO_BINLOG ::= "NO_WRITE_TO_BINLOG" NTH_VALUE_SYM ::= "NTH_VALUE" NTILE_SYM ::= "NTILE" NULL_SYM ::= "NULL" NULLS_SYM ::= "NULLS" NUMBER_SYM ::= "NUMBER" NUMERIC_SYM ::= "NUMERIC" NVARCHAR_SYM ::= "NVARCHAR" OF_SYM ::= "OF" OFF_SYM ::= "OFF" OFFSET_SYM ::= "OFFSET" OJ_SYM ::= "OJ" OLD_SYM ::= "OLD" ON_SYM ::= "ON" ONE_SYM ::= "ONE" ONLY_SYM ::= "ONLY" OPEN_SYM ::= "OPEN" OPTIMIZER_COSTS_SYM ::= "OPTIMIZER_COSTS" OPTIONS_SYM ::= "OPTIONS" OPTION ::= "OPTION" OPTIONAL_SYM ::= "OPTIONAL" OPTIONALLY ::= "OPTIONALLY" OR_SYM ::= "OR" ORGANIZATION_SYM ::= "ORGANIZATION" OTHERS_SYM ::= "OTHERS" ORDER_SYM ::= "ORDER" ORDINALITY_SYM ::= "ORDINALITY" OUT_SYM ::= "OUT" OUTER_SYM ::= "OUTER" OUTFILE ::= "OUTFILE" OVER_SYM ::= "OVER" OWNER_SYM ::= "OWNER" PACK_KEYS_SYM ::= "PACK_KEYS" PATH_SYM ::= "PATH" PARSER_SYM ::= "PARSER" PAGE_SYM ::= "PAGE" PARTIAL ::= "PARTIAL" PARTITION_SYM ::= "PARTITION" PARTITIONING_SYM ::= "PARTITIONING" PARTITIONS_SYM ::= "PARTITIONS" PASSWORD ::= "PASSWORD" PASSWORD_LOCK_TIME_SYM ::= "PASSWORD_LOCK_TIME" PERCENT_RANK_SYM ::= "PERCENT_RANK" PERSIST_SYM ::= "PERSIST" PERSIST_ONLY_SYM ::= "PERSIST_ONLY" PHASE_SYM ::= "PHASE" PLUGIN_SYM ::= "PLUGIN" PLUGINS_SYM ::= "PLUGINS" PLUGIN_DIR_SYM ::= "PLUGIN_DIR" POINT_SYM ::= "POINT" POLYGON_SYM ::= "POLYGON" PORT_SYM ::= "PORT" PRECEDES_SYM ::= "PRECEDES" PRECEDING_SYM ::= "PRECEDING" PRECISION ::= "PRECISION" PREPARE_SYM ::= "PREPARE" PRESERVE_SYM ::= "PRESERVE" PREV_SYM ::= "PREV" PRIMARY_SYM ::= "PRIMARY" PRIVILEGES ::= "PRIVILEGES" PRIVILEGE_CHECKS_USER_SYM ::= "PRIVILEGE_CHECKS_USER" PROCEDURE_SYM ::= "PROCEDURE" PROCESS ::= "PROCESS" PROCESSLIST_SYM ::= "PROCESSLIST" PROFILE_SYM ::= "PROFILE" PROFILES_SYM ::= "PROFILES" PROXY_SYM ::= "PROXY" PURGE ::= "PURGE" QUARTER_SYM ::= "QUARTER" QUERY_SYM ::= "QUERY" QUICK ::= "QUICK" RANDOM_SYM ::= "RANDOM" RANK_SYM ::= "RANK" RANGE_SYM ::= "RANGE" READ_SYM ::= "READ" READ_ONLY_SYM ::= "READ_ONLY" READ_WRITE_SYM ::= "READ_WRITE" READS_SYM ::= "READS" REAL_SYM ::= "REAL" REBUILD_SYM ::= "REBUILD" RECOVER_SYM ::= "RECOVER" RECURSIVE_SYM ::= "RECURSIVE" REDO_BUFFER_SIZE_SYM ::= "REDO_BUFFER_SIZE" REDUNDANT_SYM ::= "REDUNDANT" REFERENCE_SYM ::= "REFERENCE" REFERENCES ::= "REFERENCES" REGEXP ::= "REGEXP" RELAY ::= "RELAY" RELAYLOG_SYM ::= "RELAYLOG" RELAY_LOG_FILE_SYM ::= "RELAY_LOG_FILE" RELAY_LOG_POS_SYM ::= "RELAY_LOG_POS" RELAY_THREAD ::= "RELAY_THREAD" RELEASE_SYM ::= "RELEASE" RELOAD ::= "RELOAD" REMOVE_SYM ::= "REMOVE" RENAME ::= "RENAME" ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS_SYM ::= "ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS" REORGANIZE_SYM ::= "REORGANIZE" REPAIR ::= "REPAIR" REPEATABLE_SYM ::= "REPEATABLE" REPLICA_SYM ::= "REPLICA" REPLICAS_SYM ::= "REPLICAS" REPLICATION ::= "REPLICATION" REPLICATE_DO_DB ::= "REPLICATE_DO_DB" REPLICATE_IGNORE_DB ::= "REPLICATE_IGNORE_DB" REPLICATE_DO_TABLE ::= "REPLICATE_DO_TABLE" REPLICATE_IGNORE_TABLE ::= "REPLICATE_IGNORE_TABLE" REPLICATE_WILD_DO_TABLE ::= "REPLICATE_WILD_DO_TABLE" REPLICATE_WILD_IGNORE_TABLE ::= "REPLICATE_WILD_IGNORE_TABLE" REPLICATE_REWRITE_DB ::= "REPLICATE_REWRITE_DB" REPEAT_SYM ::= "REPEAT" REQUIRE_SYM ::= "REQUIRE" REQUIRE_ROW_FORMAT_SYM ::= "REQUIRE_ROW_FORMAT" REQUIRE_TABLE_PRIMARY_KEY_CHECK_SYM ::= "REQUIRE_TABLE_PRIMARY_KEY_CHECK" RESET_SYM ::= "RESET" RESPECT_SYM ::= "RESPECT" RESIGNAL_SYM ::= "RESIGNAL" RESOURCE_SYM ::= "RESOURCE" RESTART_SYM ::= "RESTART" RESTORE_SYM ::= "RESTORE" RESTRICT ::= "RESTRICT" RESUME_SYM ::= "RESUME" RETAIN_SYM ::= "RETAIN" RETURNED_SQLSTATE_SYM ::= "RETURNED_SQLSTATE" RETURN_SYM ::= "RETURN" RETURNING_SYM ::= "RETURNING" RETURNS_SYM ::= "RETURNS" REUSE_SYM ::= "REUSE" REVERSE_SYM ::= "REVERSE" REVOKE ::= "REVOKE" RIGHT ::= "RIGHT" REGEXP ::= "RLIKE" ROLE_SYM ::= "ROLE" ROLLBACK_SYM ::= "ROLLBACK" ROLLUP_SYM ::= "ROLLUP" ROUTINE_SYM ::= "ROUTINE" ROTATE_SYM ::= "ROTATE" ROW_SYM ::= "ROW" ROW_COUNT_SYM ::= "ROW_COUNT" ROW_NUMBER_SYM ::= "ROW_NUMBER" ROWS_SYM ::= "ROWS" ROW_FORMAT_SYM ::= "ROW_FORMAT" RTREE_SYM ::= "RTREE" SAVEPOINT_SYM ::= "SAVEPOINT" SCHEDULE_SYM ::= "SCHEDULE" DATABASE ::= "SCHEMA" SCHEMA_NAME_SYM ::= "SCHEMA_NAME" DATABASES ::= "SCHEMAS" SECOND_SYM ::= "SECOND" SECOND_MICROSECOND_SYM ::= "SECOND_MICROSECOND" SECONDARY_SYM ::= "SECONDARY" SECONDARY_ENGINE_SYM ::= "SECONDARY_ENGINE" SECONDARY_ENGINE_ATTRIBUTE_SYM ::= "SECONDARY_ENGINE_ATTRIBUTE" SECONDARY_LOAD_SYM ::= "SECONDARY_LOAD" SECONDARY_UNLOAD_SYM ::= "SECONDARY_UNLOAD" SECURITY_SYM ::= "SECURITY" SENSITIVE_SYM ::= "SENSITIVE" SEPARATOR_SYM ::= "SEPARATOR" SERIAL_SYM ::= "SERIAL" SERIALIZABLE_SYM ::= "SERIALIZABLE" SESSION_SYM ::= "SESSION" SEQUENCE_TABLE_SYM ::= "SEQUENCE_TABLE" SERVER_SYM ::= "SERVER" SET_SYM ::= "SET" SHARE_SYM ::= "SHARE" SHOW ::= "SHOW" SHUTDOWN ::= "SHUTDOWN" SIGNAL_SYM ::= "SIGNAL" SIGNED_SYM ::= "SIGNED" SIMPLE_SYM ::= "SIMPLE" SKIP_SYM ::= "SKIP" SLAVE ::= "SLAVE" SLOW ::= "SLOW" SNAPSHOT_SYM ::= "SNAPSHOT" SMALLINT_SYM ::= "SMALLINT" SOCKET_SYM ::= "SOCKET" ANY_SYM ::= "SOME" SONAME_SYM ::= "SONAME" SOUNDS_SYM ::= "SOUNDS" SOURCE_SYM ::= "SOURCE" SOURCE_AUTO_POSITION_SYM ::= "SOURCE_AUTO_POSITION" SOURCE_BIND_SYM ::= "SOURCE_BIND" SOURCE_COMPRESSION_ALGORITHM_SYM ::= "SOURCE_COMPRESSION_ALGORITHMS" SOURCE_CONNECT_RETRY_SYM ::= "SOURCE_CONNECT_RETRY" SOURCE_CONNECTION_AUTO_FAILOVER_SYM ::= "SOURCE_CONNECTION_AUTO_FAILOVER" SOURCE_DELAY_SYM ::= "SOURCE_DELAY" SOURCE_HEARTBEAT_PERIOD_SYM ::= "SOURCE_HEARTBEAT_PERIOD" SOURCE_HOST_SYM ::= "SOURCE_HOST" SOURCE_LOG_FILE_SYM ::= "SOURCE_LOG_FILE" SOURCE_LOG_POS_SYM ::= "SOURCE_LOG_POS" SOURCE_PASSWORD_SYM ::= "SOURCE_PASSWORD" SOURCE_PORT_SYM ::= "SOURCE_PORT" SOURCE_PUBLIC_KEY_PATH_SYM ::= "SOURCE_PUBLIC_KEY_PATH" SOURCE_RETRY_COUNT_SYM ::= "SOURCE_RETRY_COUNT" SOURCE_SSL_CAPATH_SYM ::= "SOURCE_SSL_CAPATH" SOURCE_SSL_CA_SYM ::= "SOURCE_SSL_CA" SOURCE_SSL_CERT_SYM ::= "SOURCE_SSL_CERT" SOURCE_SSL_CIPHER_SYM ::= "SOURCE_SSL_CIPHER" SOURCE_SSL_CRL_SYM ::= "SOURCE_SSL_CRL" SOURCE_SSL_CRLPATH_SYM ::= "SOURCE_SSL_CRLPATH" SOURCE_SSL_KEY_SYM ::= "SOURCE_SSL_KEY" SOURCE_SSL_SYM ::= "SOURCE_SSL" SOURCE_SSL_VERIFY_SERVER_CERT_SYM ::= "SOURCE_SSL_VERIFY_SERVER_CERT" SOURCE_TLS_CIPHERSUITES_SYM ::= "SOURCE_TLS_CIPHERSUITES" SOURCE_TLS_VERSION_SYM ::= "SOURCE_TLS_VERSION" SOURCE_USER_SYM ::= "SOURCE_USER" SOURCE_ZSTD_COMPRESSION_LEVEL_SYM ::= "SOURCE_ZSTD_COMPRESSION_LEVEL" SPATIAL_SYM ::= "SPATIAL" SPECIFIC_SYM ::= "SPECIFIC" SQL_SYM ::= "SQL" SQLEXCEPTION_SYM ::= "SQLEXCEPTION" SQLSTATE_SYM ::= "SQLSTATE" SQLWARNING_SYM ::= "SQLWARNING" SQL_AFTER_GTIDS ::= "SQL_AFTER_GTIDS" SQL_AFTER_MTS_GAPS ::= "SQL_AFTER_MTS_GAPS" SQL_BEFORE_GTIDS ::= "SQL_BEFORE_GTIDS" SQL_BIG_RESULT ::= "SQL_BIG_RESULT" SQL_BUFFER_RESULT ::= "SQL_BUFFER_RESULT" SQL_CALC_FOUND_ROWS ::= "SQL_CALC_FOUND_ROWS" SQL_NO_CACHE_SYM ::= "SQL_NO_CACHE" SQL_SMALL_RESULT ::= "SQL_SMALL_RESULT" SQL_THREAD ::= "SQL_THREAD" SECOND_SYM ::= "SQL_TSI_SECOND" MINUTE_SYM ::= "SQL_TSI_MINUTE" HOUR_SYM ::= "SQL_TSI_HOUR" DAY_SYM ::= "SQL_TSI_DAY" WEEK_SYM ::= "SQL_TSI_WEEK" MONTH_SYM ::= "SQL_TSI_MONTH" QUARTER_SYM ::= "SQL_TSI_QUARTER" YEAR_SYM ::= "SQL_TSI_YEAR" SRID_SYM ::= "SRID" SSL_SYM ::= "SSL" STACKED_SYM ::= "STACKED" START_SYM ::= "START" STARTING ::= "STARTING" STARTS_SYM ::= "STARTS" STATS_AUTO_RECALC_SYM ::= "STATS_AUTO_RECALC" STATS_PERSISTENT_SYM ::= "STATS_PERSISTENT" STATS_SAMPLE_PAGES_SYM ::= "STATS_SAMPLE_PAGES" STATUS_SYM ::= "STATUS" STOP_SYM ::= "STOP" STORAGE_SYM ::= "STORAGE" STORED_SYM ::= "STORED" STRAIGHT_JOIN ::= "STRAIGHT_JOIN" STREAM_SYM ::= "STREAM" STRING_SYM ::= "STRING" SUBCLASS_ORIGIN_SYM ::= "SUBCLASS_ORIGIN" SUBJECT_SYM ::= "SUBJECT" SUBPARTITION_SYM ::= "SUBPARTITION" SUBPARTITIONS_SYM ::= "SUBPARTITIONS" SUPER_SYM ::= "SUPER" SUSPEND_SYM ::= "SUSPEND" SWAPS_SYM ::= "SWAPS" SWITCHES_SYM ::= "SWITCHES" SYSTEM_SYM ::= "SYSTEM" TABLE_SYM ::= "TABLE" TABLE_NAME_SYM ::= "TABLE_NAME" TABLES ::= "TABLES" TABLESPACE_SYM ::= "TABLESPACE" TABLE_CHECKSUM_SYM ::= "TABLE_CHECKSUM" TABLE_STATS_SYM ::= "TABLE_STATISTICS" TEMPORARY ::= "TEMPORARY" TEMPTABLE_SYM ::= "TEMPTABLE" TERMINATED ::= "TERMINATED" TEXT_SYM ::= "TEXT" THAN_SYM ::= "THAN" THEN_SYM ::= "THEN" THREAD_PRIORITY_SYM ::= "THREAD_PRIORITY" THREAD_STATS_SYM ::= "THREAD_STATISTICS" TIES_SYM ::= "TIES" TIME_SYM ::= "TIME" TIMESTAMP_SYM ::= "TIMESTAMP" TIMESTAMP_ADD ::= "TIMESTAMPADD" TIMESTAMP_DIFF ::= "TIMESTAMPDIFF" TINYBLOB_SYM ::= "TINYBLOB" TINYINT_SYM ::= "TINYINT" TINYTEXT_SYN ::= "TINYTEXT" TLS_SYM ::= "TLS" TO_SYM ::= "TO" TRAILING ::= "TRAILING" TRANSACTION_SYM ::= "TRANSACTION" TRIGGER_SYM ::= "TRIGGER" TRIGGERS_SYM ::= "TRIGGERS" TRUE_SYM ::= "TRUE" TRUNCATE_SYM ::= "TRUNCATE" TYPE_SYM ::= "TYPE" TYPES_SYM ::= "TYPES" UNBOUNDED_SYM ::= "UNBOUNDED" UNCOMMITTED_SYM ::= "UNCOMMITTED" UNDEFINED_SYM ::= "UNDEFINED" UNDO_BUFFER_SIZE_SYM ::= "UNDO_BUFFER_SIZE" UNDOFILE_SYM ::= "UNDOFILE" UNDO_SYM ::= "UNDO" UNICODE_SYM ::= "UNICODE" UNION_SYM ::= "UNION" UNIQUE_SYM ::= "UNIQUE" UNKNOWN_SYM ::= "UNKNOWN" UNLOCK_SYM ::= "UNLOCK" UNINSTALL_SYM ::= "UNINSTALL" UNSIGNED_SYM ::= "UNSIGNED" UNTIL_SYM ::= "UNTIL" UPGRADE_SYM ::= "UPGRADE" USAGE ::= "USAGE" USE_SYM ::= "USE" USER ::= "USER" RESOURCES ::= "USER_RESOURCES" USER_STATS_SYM ::= "USER_STATISTICS" USE_FRM ::= "USE_FRM" USING ::= "USING" UTC_DATE_SYM ::= "UTC_DATE" UTC_TIME_SYM ::= "UTC_TIME" UTC_TIMESTAMP_SYM ::= "UTC_TIMESTAMP" VALIDATION_SYM ::= "VALIDATION" VALUE_SYM ::= "VALUE" VALUES ::= "VALUES" VARBINARY_SYM ::= "VARBINARY" VARCHAR_SYM ::= "VARCHAR" VARCHAR_SYM ::= "VARCHARACTER" VARIABLES ::= "VARIABLES" VARYING ::= "VARYING" WAIT_SYM ::= "WAIT" WARNINGS ::= "WARNINGS" WEEK_SYM ::= "WEEK" WEIGHT_STRING_SYM ::= "WEIGHT_STRING" WHEN_SYM ::= "WHEN" WHERE ::= "WHERE" WHILE_SYM ::= "WHILE" WINDOW_SYM ::= "WINDOW" VCPU_SYM ::= "VCPU" VIEW_SYM ::= "VIEW" VIRTUAL_SYM ::= "VIRTUAL" VISIBLE_SYM ::= "VISIBLE" WITH ::= "WITH" WITHOUT_SYM ::= "WITHOUT" WORK_SYM ::= "WORK" WRAPPER_SYM ::= "WRAPPER" WRITE_SYM ::= "WRITE" X509_SYM ::= "X509" XOR ::= "XOR" XA_SYM ::= "XA" XID_SYM ::= "XID" XML_SYM ::= "XML" YEAR_SYM ::= "YEAR" YEAR_MONTH_SYM ::= "YEAR_MONTH" ZEROFILL_SYM ::= "ZEROFILL" ZONE_SYM ::= "ZONE" OR_OR_SYM ::= "||" /* Place keywords that accept optimizer hints below this comment. */ DELETE_SYM ::= "DELETE" INSERT_SYM ::= "INSERT" REPLACE_SYM ::= "REPLACE" SELECT_SYM ::= "SELECT" UPDATE_SYM ::= "UPDATE" OPTIMIZE ::= "OPTIMIZE" CALL_SYM ::= "CALL" ALTER ::= "ALTER" ANALYZE_SYM ::= "ANALYZE" CHECK_SYM ::= "CHECK" LOAD ::= "LOAD" CREATE ::= "CREATE" /* Insert new function definitions after that commentary (by alphabetical order) */ ADDDATE_SYM ::= "ADDDATE" BIT_AND_SYM ::= "BIT_AND" BIT_OR_SYM ::= "BIT_OR" BIT_XOR_SYM ::= "BIT_XOR" CAST_SYM ::= "CAST" COUNT_SYM ::= "COUNT" CURDATE ::= "CURDATE" CURTIME ::= "CURTIME" DATE_ADD_INTERVAL ::= "DATE_ADD" DATE_SUB_INTERVAL ::= "DATE_SUB" EXTRACT_SYM ::= "EXTRACT" GROUP_CONCAT_SYM ::= "GROUP_CONCAT" JSON_OBJECTAGG ::= "JSON_OBJECTAGG" JSON_ARRAYAGG ::= "JSON_ARRAYAGG" MAX_SYM ::= "MAX" SUBSTRING ::= "MID" MIN_SYM ::= "MIN" NOW_SYM ::= "NOW" POSITION_SYM ::= "POSITION" USER ::= "SESSION_USER" STD_SYM ::= "STD" STD_SYM ::= "STDDEV" STD_SYM ::= "STDDEV_POP" STDDEV_SAMP_SYM ::= "STDDEV_SAMP" SUBDATE_SYM ::= "SUBDATE" SUBSTRING ::= "SUBSTR" SUBSTRING ::= "SUBSTRING" SUM_SYM ::= "SUM" SYSDATE ::= "SYSDATE" USER ::= "SYSTEM_USER" TRIM ::= "TRIM" VARIANCE_SYM ::= "VARIANCE" VARIANCE_SYM ::= "VAR_POP" VAR_SAMP_SYM ::= "VAR_SAMP" /* Insert new optimizer hint keywords after that commentary: */ BKA_HINT ::= "BKA" BNL_HINT ::= "BNL" DUPSWEEDOUT_HINT ::= "DUPSWEEDOUT" FIRSTMATCH_HINT ::= "FIRSTMATCH" INTOEXISTS_HINT ::= "INTOEXISTS" LOOSESCAN_HINT ::= "LOOSESCAN" MATERIALIZATION_HINT ::= "MATERIALIZATION" MAX_EXECUTION_TIME_HINT ::= "MAX_EXECUTION_TIME" NO_BKA_HINT ::= "NO_BKA" NO_BNL_HINT ::= "NO_BNL" NO_ICP_HINT ::= "NO_ICP" NO_MRR_HINT ::= "NO_MRR" NO_RANGE_OPTIMIZATION_HINT ::= "NO_RANGE_OPTIMIZATION" NO_SEMIJOIN_HINT ::= "NO_SEMIJOIN" MRR_HINT ::= "MRR" QB_NAME_HINT ::= "QB_NAME" SEMIJOIN_HINT ::= "SEMIJOIN" SET_VAR_HINT ::= "SET_VAR" SUBQUERY_HINT ::= "SUBQUERY" DERIVED_MERGE_HINT ::= "MERGE" NO_DERIVED_MERGE_HINT ::= "NO_MERGE" JOIN_PREFIX_HINT ::= "JOIN_PREFIX" JOIN_SUFFIX_HINT ::= "JOIN_SUFFIX" JOIN_ORDER_HINT ::= "JOIN_ORDER" JOIN_FIXED_ORDER_HINT ::= "JOIN_FIXED_ORDER" INDEX_MERGE_HINT ::= "INDEX_MERGE" NO_INDEX_MERGE_HINT ::= "NO_INDEX_MERGE" RESOURCE_GROUP_HINT ::= "RESOURCE_GROUP" SKIP_SCAN_HINT ::= "SKIP_SCAN" NO_SKIP_SCAN_HINT ::= "NO_SKIP_SCAN" HASH_JOIN_HINT ::= "HASH_JOIN" NO_HASH_JOIN_HINT ::= "NO_HASH_JOIN" INDEX_HINT ::= "INDEX" NO_INDEX_HINT ::= "NO_INDEX" JOIN_INDEX_HINT ::= "JOIN_INDEX" NO_JOIN_INDEX_HINT ::= "NO_JOIN_INDEX" GROUP_INDEX_HINT ::= "GROUP_INDEX" NO_GROUP_INDEX_HINT ::= "NO_GROUP_INDEX" ORDER_INDEX_HINT ::= "ORDER_INDEX" NO_ORDER_INDEX_HINT ::= "NO_ORDER_INDEX" DERIVED_CONDITION_PUSHDOWN_HINT ::= "DERIVED_CONDITION_PUSHDOWN" NO_DERIVED_CONDITION_PUSHDOWN_HINT ::= "NO_DERIVED_CONDITION_PUSHDOWN" ====