pub const NODE_TYPES_PLPGSQL: &str = "[\n {\n \"type\": \"any_identifier\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"unreserved_keyword\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"block_label\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"case_when\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_then\",\n \"named\": true\n },\n {\n \"type\": \"kw_when\",\n \"named\": true\n },\n {\n \"type\": \"proc_sect\",\n \"named\": true\n },\n {\n \"type\": \"sql_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"comp_option\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_dump\",\n \"named\": true\n },\n {\n \"type\": \"kw_error\",\n \"named\": true\n },\n {\n \"type\": \"kw_option\",\n \"named\": true\n },\n {\n \"type\": \"kw_print_strict_params\",\n \"named\": true\n },\n {\n \"type\": \"kw_use_column\",\n \"named\": true\n },\n {\n \"type\": \"kw_use_variable\",\n \"named\": true\n },\n {\n \"type\": \"kw_variable_conflict\",\n \"named\": true\n },\n {\n \"type\": \"option_value\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"comp_options\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"comp_option\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"decl_collate\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"dotted_name\",\n \"named\": true\n },\n {\n \"type\": \"kw_collate\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"decl_cursor_arg\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"decl_datatype\",\n \"named\": true\n },\n {\n \"type\": \"decl_varname\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"decl_cursor_args\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"decl_cursor_arg\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"decl_datatype\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_name\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"decl_defval\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"sql_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"decl_sect\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"decl_stmt\",\n \"named\": true\n },\n {\n \"type\": \"kw_declare\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"decl_statement\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"any_identifier\",\n \"named\": true\n },\n {\n \"type\": \"decl_collate\",\n \"named\": true\n },\n {\n \"type\": \"decl_cursor_args\",\n \"named\": true\n },\n {\n \"type\": \"decl_datatype\",\n \"named\": true\n },\n {\n \"type\": \"decl_defval\",\n \"named\": true\n },\n {\n \"type\": \"decl_varname\",\n \"named\": true\n },\n {\n \"type\": \"kw_alias\",\n \"named\": true\n },\n {\n \"type\": \"kw_constant\",\n \"named\": true\n },\n {\n \"type\": \"kw_cursor\",\n \"named\": true\n },\n {\n \"type\": \"kw_for\",\n \"named\": true\n },\n {\n \"type\": \"kw_is\",\n \"named\": true\n },\n {\n \"type\": \"kw_not\",\n \"named\": true\n },\n {\n \"type\": \"kw_null\",\n \"named\": true\n },\n {\n \"type\": \"opt_scrollable\",\n \"named\": true\n },\n {\n \"type\": \"sql_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"decl_stmt\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"decl_statement\",\n \"named\": true\n },\n {\n \"type\": \"kw_declare\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"decl_varname\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"unreserved_keyword\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"dotted_name\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"any_identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"else_clause\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_else\",\n \"named\": true\n },\n {\n \"type\": \"proc_sect\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"elsif_clause\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_elsif\",\n \"named\": true\n },\n {\n \"type\": \"kw_then\",\n \"named\": true\n },\n {\n \"type\": \"proc_sect\",\n \"named\": true\n },\n {\n \"type\": \"sql_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"end_label\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"any_identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"exception_sect\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_exception\",\n \"named\": true\n },\n {\n \"type\": \"proc_exception\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"fetch_direction\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"kw_absolute\",\n \"named\": true\n },\n {\n \"type\": \"kw_all\",\n \"named\": true\n },\n {\n \"type\": \"kw_backward\",\n \"named\": true\n },\n {\n \"type\": \"kw_first\",\n \"named\": true\n },\n {\n \"type\": \"kw_forward\",\n \"named\": true\n },\n {\n \"type\": \"kw_last\",\n \"named\": true\n },\n {\n \"type\": \"kw_next\",\n \"named\": true\n },\n {\n \"type\": \"kw_prior\",\n \"named\": true\n },\n {\n \"type\": \"kw_relative\",\n \"named\": true\n },\n {\n \"type\": \"sql_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"for_cursor\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"any_identifier\",\n \"named\": true\n },\n {\n \"type\": \"kw_loop\",\n \"named\": true\n },\n {\n \"type\": \"sql_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"for_dynamic\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_execute\",\n \"named\": true\n },\n {\n \"type\": \"kw_loop\",\n \"named\": true\n },\n {\n \"type\": \"kw_using\",\n \"named\": true\n },\n {\n \"type\": \"sql_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"for_integer_range\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_by\",\n \"named\": true\n },\n {\n \"type\": \"kw_loop\",\n \"named\": true\n },\n {\n \"type\": \"kw_reverse\",\n \"named\": true\n },\n {\n \"type\": \"sql_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"for_query\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_loop\",\n \"named\": true\n },\n {\n \"type\": \"sql_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"for_variable\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"any_identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"getdiag_item\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_column_name\",\n \"named\": true\n },\n {\n \"type\": \"kw_constraint_name\",\n \"named\": true\n },\n {\n \"type\": \"kw_message_text\",\n \"named\": true\n },\n {\n \"type\": \"kw_pg_context\",\n \"named\": true\n },\n {\n \"type\": \"kw_pg_datatype_name\",\n \"named\": true\n },\n {\n \"type\": \"kw_pg_exception_context\",\n \"named\": true\n },\n {\n \"type\": \"kw_pg_exception_detail\",\n \"named\": true\n },\n {\n \"type\": \"kw_pg_exception_hint\",\n \"named\": true\n },\n {\n \"type\": \"kw_pg_routine_oid\",\n \"named\": true\n },\n {\n \"type\": \"kw_returned_sqlstate\",\n \"named\": true\n },\n {\n \"type\": \"kw_row_count\",\n \"named\": true\n },\n {\n \"type\": \"kw_schema_name\",\n \"named\": true\n },\n {\n \"type\": \"kw_table_name\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"getdiag_list_item\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"any_identifier\",\n \"named\": true\n },\n {\n \"type\": \"getdiag_item\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"into_target\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"any_identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"loop_body\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"any_identifier\",\n \"named\": true\n },\n {\n \"type\": \"kw_end\",\n \"named\": true\n },\n {\n \"type\": \"kw_loop\",\n \"named\": true\n },\n {\n \"type\": \"proc_sect\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"loop_label\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"opt_scrollable\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_no\",\n \"named\": true\n },\n {\n \"type\": \"kw_scroll\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"opt_transaction_chain\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_and\",\n \"named\": true\n },\n {\n \"type\": \"kw_chain\",\n \"named\": true\n },\n {\n \"type\": \"kw_no\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"option_value\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"unreserved_keyword\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"pl_block\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"block_label\",\n \"named\": true\n },\n {\n \"type\": \"decl_sect\",\n \"named\": true\n },\n {\n \"type\": \"end_label\",\n \"named\": true\n },\n {\n \"type\": \"exception_sect\",\n \"named\": true\n },\n {\n \"type\": \"kw_begin\",\n \"named\": true\n },\n {\n \"type\": \"kw_end\",\n \"named\": true\n },\n {\n \"type\": \"proc_sect\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"proc_condition\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"any_identifier\",\n \"named\": true\n },\n {\n \"type\": \"kw_sqlstate\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"proc_conditions\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_or\",\n \"named\": true\n },\n {\n \"type\": \"proc_condition\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"proc_exception\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_then\",\n \"named\": true\n },\n {\n \"type\": \"kw_when\",\n \"named\": true\n },\n {\n \"type\": \"proc_conditions\",\n \"named\": true\n },\n {\n \"type\": \"proc_sect\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"proc_sect\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"proc_stmt\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"proc_stmt\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"pl_block\",\n \"named\": true\n },\n {\n \"type\": \"stmt_assert\",\n \"named\": true\n },\n {\n \"type\": \"stmt_assign\",\n \"named\": true\n },\n {\n \"type\": \"stmt_call\",\n \"named\": true\n },\n {\n \"type\": \"stmt_case\",\n \"named\": true\n },\n {\n \"type\": \"stmt_close\",\n \"named\": true\n },\n {\n \"type\": \"stmt_commit\",\n \"named\": true\n },\n {\n \"type\": \"stmt_dynexecute\",\n \"named\": true\n },\n {\n \"type\": \"stmt_execsql\",\n \"named\": true\n },\n {\n \"type\": \"stmt_exit\",\n \"named\": true\n },\n {\n \"type\": \"stmt_fetch\",\n \"named\": true\n },\n {\n \"type\": \"stmt_for\",\n \"named\": true\n },\n {\n \"type\": \"stmt_foreach_a\",\n \"named\": true\n },\n {\n \"type\": \"stmt_getdiag\",\n \"named\": true\n },\n {\n \"type\": \"stmt_if\",\n \"named\": true\n },\n {\n \"type\": \"stmt_loop\",\n \"named\": true\n },\n {\n \"type\": \"stmt_move\",\n \"named\": true\n },\n {\n \"type\": \"stmt_null\",\n \"named\": true\n },\n {\n \"type\": \"stmt_open\",\n \"named\": true\n },\n {\n \"type\": \"stmt_perform\",\n \"named\": true\n },\n {\n \"type\": \"stmt_raise\",\n \"named\": true\n },\n {\n \"type\": \"stmt_return\",\n \"named\": true\n },\n {\n \"type\": \"stmt_rollback\",\n \"named\": true\n },\n {\n \"type\": \"stmt_while\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"raise_level\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_debug\",\n \"named\": true\n },\n {\n \"type\": \"kw_exception\",\n \"named\": true\n },\n {\n \"type\": \"kw_info\",\n \"named\": true\n },\n {\n \"type\": \"kw_log\",\n \"named\": true\n },\n {\n \"type\": \"kw_notice\",\n \"named\": true\n },\n {\n \"type\": \"kw_warning\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"raise_option\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_column\",\n \"named\": true\n },\n {\n \"type\": \"kw_constraint\",\n \"named\": true\n },\n {\n \"type\": \"kw_datatype\",\n \"named\": true\n },\n {\n \"type\": \"kw_detail\",\n \"named\": true\n },\n {\n \"type\": \"kw_errcode\",\n \"named\": true\n },\n {\n \"type\": \"kw_hint\",\n \"named\": true\n },\n {\n \"type\": \"kw_message\",\n \"named\": true\n },\n {\n \"type\": \"kw_schema\",\n \"named\": true\n },\n {\n \"type\": \"kw_table\",\n \"named\": true\n },\n {\n \"type\": \"sql_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"source_file\",\n \"named\": true,\n \"root\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"comp_options\",\n \"named\": true\n },\n {\n \"type\": \"pl_block\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"sql_expression\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"stmt_assert\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_assert\",\n \"named\": true\n },\n {\n \"type\": \"sql_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"stmt_assign\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"sql_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"stmt_call\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_call\",\n \"named\": true\n },\n {\n \"type\": \"kw_do\",\n \"named\": true\n },\n {\n \"type\": \"sql_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"stmt_case\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"case_when\",\n \"named\": true\n },\n {\n \"type\": \"kw_case\",\n \"named\": true\n },\n {\n \"type\": \"kw_else\",\n \"named\": true\n },\n {\n \"type\": \"kw_end\",\n \"named\": true\n },\n {\n \"type\": \"proc_sect\",\n \"named\": true\n },\n {\n \"type\": \"sql_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"stmt_close\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"any_identifier\",\n \"named\": true\n },\n {\n \"type\": \"kw_close\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"stmt_commit\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_commit\",\n \"named\": true\n },\n {\n \"type\": \"opt_transaction_chain\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"stmt_dynexecute\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"into_target\",\n \"named\": true\n },\n {\n \"type\": \"kw_execute\",\n \"named\": true\n },\n {\n \"type\": \"kw_into\",\n \"named\": true\n },\n {\n \"type\": \"kw_strict\",\n \"named\": true\n },\n {\n \"type\": \"kw_using\",\n \"named\": true\n },\n {\n \"type\": \"sql_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"stmt_execsql\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"into_target\",\n \"named\": true\n },\n {\n \"type\": \"kw_into\",\n \"named\": true\n },\n {\n \"type\": \"kw_strict\",\n \"named\": true\n },\n {\n \"type\": \"sql_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"stmt_exit\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"any_identifier\",\n \"named\": true\n },\n {\n \"type\": \"kw_continue\",\n \"named\": true\n },\n {\n \"type\": \"kw_exit\",\n \"named\": true\n },\n {\n \"type\": \"kw_when\",\n \"named\": true\n },\n {\n \"type\": \"sql_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"stmt_fetch\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"any_identifier\",\n \"named\": true\n },\n {\n \"type\": \"fetch_direction\",\n \"named\": true\n },\n {\n \"type\": \"into_target\",\n \"named\": true\n },\n {\n \"type\": \"kw_fetch\",\n \"named\": true\n },\n {\n \"type\": \"kw_from\",\n \"named\": true\n },\n {\n \"type\": \"kw_into\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"stmt_for\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"for_cursor\",\n \"named\": true\n },\n {\n \"type\": \"for_dynamic\",\n \"named\": true\n },\n {\n \"type\": \"for_integer_range\",\n \"named\": true\n },\n {\n \"type\": \"for_query\",\n \"named\": true\n },\n {\n \"type\": \"for_variable\",\n \"named\": true\n },\n {\n \"type\": \"kw_for\",\n \"named\": true\n },\n {\n \"type\": \"kw_in\",\n \"named\": true\n },\n {\n \"type\": \"loop_body\",\n \"named\": true\n },\n {\n \"type\": \"loop_label\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"stmt_foreach_a\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"for_variable\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"kw_array\",\n \"named\": true\n },\n {\n \"type\": \"kw_foreach\",\n \"named\": true\n },\n {\n \"type\": \"kw_in\",\n \"named\": true\n },\n {\n \"type\": \"kw_loop\",\n \"named\": true\n },\n {\n \"type\": \"kw_slice\",\n \"named\": true\n },\n {\n \"type\": \"loop_body\",\n \"named\": true\n },\n {\n \"type\": \"loop_label\",\n \"named\": true\n },\n {\n \"type\": \"sql_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"stmt_getdiag\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"getdiag_list_item\",\n \"named\": true\n },\n {\n \"type\": \"kw_current\",\n \"named\": true\n },\n {\n \"type\": \"kw_diagnostics\",\n \"named\": true\n },\n {\n \"type\": \"kw_get\",\n \"named\": true\n },\n {\n \"type\": \"kw_stacked\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"stmt_if\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"else_clause\",\n \"named\": true\n },\n {\n \"type\": \"elsif_clause\",\n \"named\": true\n },\n {\n \"type\": \"kw_end\",\n \"named\": true\n },\n {\n \"type\": \"kw_if\",\n \"named\": true\n },\n {\n \"type\": \"kw_then\",\n \"named\": true\n },\n {\n \"type\": \"proc_sect\",\n \"named\": true\n },\n {\n \"type\": \"sql_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"stmt_loop\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_loop\",\n \"named\": true\n },\n {\n \"type\": \"loop_body\",\n \"named\": true\n },\n {\n \"type\": \"loop_label\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"stmt_move\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"any_identifier\",\n \"named\": true\n },\n {\n \"type\": \"fetch_direction\",\n \"named\": true\n },\n {\n \"type\": \"kw_move\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"stmt_null\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_null\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"stmt_open\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"any_identifier\",\n \"named\": true\n },\n {\n \"type\": \"kw_execute\",\n \"named\": true\n },\n {\n \"type\": \"kw_for\",\n \"named\": true\n },\n {\n \"type\": \"kw_open\",\n \"named\": true\n },\n {\n \"type\": \"kw_using\",\n \"named\": true\n },\n {\n \"type\": \"opt_scrollable\",\n \"named\": true\n },\n {\n \"type\": \"sql_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"stmt_perform\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_perform\",\n \"named\": true\n },\n {\n \"type\": \"sql_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"stmt_raise\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"any_identifier\",\n \"named\": true\n },\n {\n \"type\": \"kw_raise\",\n \"named\": true\n },\n {\n \"type\": \"kw_sqlstate\",\n \"named\": true\n },\n {\n \"type\": \"kw_using\",\n \"named\": true\n },\n {\n \"type\": \"raise_level\",\n \"named\": true\n },\n {\n \"type\": \"raise_option\",\n \"named\": true\n },\n {\n \"type\": \"sql_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"stmt_return\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_execute\",\n \"named\": true\n },\n {\n \"type\": \"kw_next\",\n \"named\": true\n },\n {\n \"type\": \"kw_query\",\n \"named\": true\n },\n {\n \"type\": \"kw_return\",\n \"named\": true\n },\n {\n \"type\": \"kw_using\",\n \"named\": true\n },\n {\n \"type\": \"sql_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"stmt_rollback\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_rollback\",\n \"named\": true\n },\n {\n \"type\": \"opt_transaction_chain\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"stmt_while\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_loop\",\n \"named\": true\n },\n {\n \"type\": \"kw_while\",\n \"named\": true\n },\n {\n \"type\": \"loop_body\",\n \"named\": true\n },\n {\n \"type\": \"loop_label\",\n \"named\": true\n },\n {\n \"type\": \"sql_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"type_name\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"dotted_name\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"kw_rowtype\",\n \"named\": true\n },\n {\n \"type\": \"kw_type\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"unreserved_keyword\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kw_absolute\",\n \"named\": true\n },\n {\n \"type\": \"kw_alias\",\n \"named\": true\n },\n {\n \"type\": \"kw_and\",\n \"named\": true\n },\n {\n \"type\": \"kw_array\",\n \"named\": true\n },\n {\n \"type\": \"kw_assert\",\n \"named\": true\n },\n {\n \"type\": \"kw_backward\",\n \"named\": true\n },\n {\n \"type\": \"kw_call\",\n \"named\": true\n },\n {\n \"type\": \"kw_chain\",\n \"named\": true\n },\n {\n \"type\": \"kw_close\",\n \"named\": true\n },\n {\n \"type\": \"kw_collate\",\n \"named\": true\n },\n {\n \"type\": \"kw_column\",\n \"named\": true\n },\n {\n \"type\": \"kw_column_name\",\n \"named\": true\n },\n {\n \"type\": \"kw_commit\",\n \"named\": true\n },\n {\n \"type\": \"kw_constant\",\n \"named\": true\n },\n {\n \"type\": \"kw_constraint\",\n \"named\": true\n },\n {\n \"type\": \"kw_constraint_name\",\n \"named\": true\n },\n {\n \"type\": \"kw_continue\",\n \"named\": true\n },\n {\n \"type\": \"kw_current\",\n \"named\": true\n },\n {\n \"type\": \"kw_cursor\",\n \"named\": true\n },\n {\n \"type\": \"kw_datatype\",\n \"named\": true\n },\n {\n \"type\": \"kw_debug\",\n \"named\": true\n },\n {\n \"type\": \"kw_default\",\n \"named\": true\n },\n {\n \"type\": \"kw_detail\",\n \"named\": true\n },\n {\n \"type\": \"kw_diagnostics\",\n \"named\": true\n },\n {\n \"type\": \"kw_do\",\n \"named\": true\n },\n {\n \"type\": \"kw_dump\",\n \"named\": true\n },\n {\n \"type\": \"kw_elsif\",\n \"named\": true\n },\n {\n \"type\": \"kw_errcode\",\n \"named\": true\n },\n {\n \"type\": \"kw_error\",\n \"named\": true\n },\n {\n \"type\": \"kw_exception\",\n \"named\": true\n },\n {\n \"type\": \"kw_exit\",\n \"named\": true\n },\n {\n \"type\": \"kw_fetch\",\n \"named\": true\n },\n {\n \"type\": \"kw_first\",\n \"named\": true\n },\n {\n \"type\": \"kw_forward\",\n \"named\": true\n },\n {\n \"type\": \"kw_get\",\n \"named\": true\n },\n {\n \"type\": \"kw_hint\",\n \"named\": true\n },\n {\n \"type\": \"kw_import\",\n \"named\": true\n },\n {\n \"type\": \"kw_info\",\n \"named\": true\n },\n {\n \"type\": \"kw_insert\",\n \"named\": true\n },\n {\n \"type\": \"kw_is\",\n \"named\": true\n },\n {\n \"type\": \"kw_last\",\n \"named\": true\n },\n {\n \"type\": \"kw_log\",\n \"named\": true\n },\n {\n \"type\": \"kw_merge\",\n \"named\": true\n },\n {\n \"type\": \"kw_message\",\n \"named\": true\n },\n {\n \"type\": \"kw_message_text\",\n \"named\": true\n },\n {\n \"type\": \"kw_move\",\n \"named\": true\n },\n {\n \"type\": \"kw_next\",\n \"named\": true\n },\n {\n \"type\": \"kw_no\",\n \"named\": true\n },\n {\n \"type\": \"kw_notice\",\n \"named\": true\n },\n {\n \"type\": \"kw_open\",\n \"named\": true\n },\n {\n \"type\": \"kw_option\",\n \"named\": true\n },\n {\n \"type\": \"kw_perform\",\n \"named\": true\n },\n {\n \"type\": \"kw_pg_context\",\n \"named\": true\n },\n {\n \"type\": \"kw_pg_datatype_name\",\n \"named\": true\n },\n {\n \"type\": \"kw_pg_exception_context\",\n \"named\": true\n },\n {\n \"type\": \"kw_pg_exception_detail\",\n \"named\": true\n },\n {\n \"type\": \"kw_pg_exception_hint\",\n \"named\": true\n },\n {\n \"type\": \"kw_pg_routine_oid\",\n \"named\": true\n },\n {\n \"type\": \"kw_print_strict_params\",\n \"named\": true\n },\n {\n \"type\": \"kw_prior\",\n \"named\": true\n },\n {\n \"type\": \"kw_query\",\n \"named\": true\n },\n {\n \"type\": \"kw_raise\",\n \"named\": true\n },\n {\n \"type\": \"kw_relative\",\n \"named\": true\n },\n {\n \"type\": \"kw_return\",\n \"named\": true\n },\n {\n \"type\": \"kw_returned_sqlstate\",\n \"named\": true\n },\n {\n \"type\": \"kw_reverse\",\n \"named\": true\n },\n {\n \"type\": \"kw_rollback\",\n \"named\": true\n },\n {\n \"type\": \"kw_row_count\",\n \"named\": true\n },\n {\n \"type\": \"kw_rowtype\",\n \"named\": true\n },\n {\n \"type\": \"kw_schema\",\n \"named\": true\n },\n {\n \"type\": \"kw_schema_name\",\n \"named\": true\n },\n {\n \"type\": \"kw_scroll\",\n \"named\": true\n },\n {\n \"type\": \"kw_slice\",\n \"named\": true\n },\n {\n \"type\": \"kw_sqlstate\",\n \"named\": true\n },\n {\n \"type\": \"kw_stacked\",\n \"named\": true\n },\n {\n \"type\": \"kw_table\",\n \"named\": true\n },\n {\n \"type\": \"kw_table_name\",\n \"named\": true\n },\n {\n \"type\": \"kw_type\",\n \"named\": true\n },\n {\n \"type\": \"kw_use_column\",\n \"named\": true\n },\n {\n \"type\": \"kw_use_variable\",\n \"named\": true\n },\n {\n \"type\": \"kw_variable_conflict\",\n \"named\": true\n },\n {\n \"type\": \"kw_warning\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"#\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \".\",\n \"named\": false\n },\n {\n \"type\": \"..\",\n \"named\": false\n },\n {\n \"type\": \":=\",\n \"named\": false\n },\n {\n \"type\": \";\",\n \"named\": false\n },\n {\n \"type\": \"<<\",\n \"named\": false\n },\n {\n \"type\": \"=\",\n \"named\": false\n },\n {\n \"type\": \">>\",\n \"named\": false\n },\n {\n \"type\": \"[\",\n \"named\": false\n },\n {\n \"type\": \"]\",\n \"named\": false\n },\n {\n \"type\": \"comment\",\n \"named\": true,\n \"extra\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"kw_absolute\",\n \"named\": true\n },\n {\n \"type\": \"kw_alias\",\n \"named\": true\n },\n {\n \"type\": \"kw_all\",\n \"named\": true\n },\n {\n \"type\": \"kw_and\",\n \"named\": true\n },\n {\n \"type\": \"kw_array\",\n \"named\": true\n },\n {\n \"type\": \"kw_assert\",\n \"named\": true\n },\n {\n \"type\": \"kw_backward\",\n \"named\": true\n },\n {\n \"type\": \"kw_begin\",\n \"named\": true\n },\n {\n \"type\": \"kw_by\",\n \"named\": true\n },\n {\n \"type\": \"kw_call\",\n \"named\": true\n },\n {\n \"type\": \"kw_case\",\n \"named\": true\n },\n {\n \"type\": \"kw_chain\",\n \"named\": true\n },\n {\n \"type\": \"kw_close\",\n \"named\": true\n },\n {\n \"type\": \"kw_collate\",\n \"named\": true\n },\n {\n \"type\": \"kw_column\",\n \"named\": true\n },\n {\n \"type\": \"kw_column_name\",\n \"named\": true\n },\n {\n \"type\": \"kw_commit\",\n \"named\": true\n },\n {\n \"type\": \"kw_constant\",\n \"named\": true\n },\n {\n \"type\": \"kw_constraint\",\n \"named\": true\n },\n {\n \"type\": \"kw_constraint_name\",\n \"named\": true\n },\n {\n \"type\": \"kw_continue\",\n \"named\": true\n },\n {\n \"type\": \"kw_current\",\n \"named\": true\n },\n {\n \"type\": \"kw_cursor\",\n \"named\": true\n },\n {\n \"type\": \"kw_datatype\",\n \"named\": true\n },\n {\n \"type\": \"kw_debug\",\n \"named\": true\n },\n {\n \"type\": \"kw_declare\",\n \"named\": true\n },\n {\n \"type\": \"kw_default\",\n \"named\": true\n },\n {\n \"type\": \"kw_detail\",\n \"named\": true\n },\n {\n \"type\": \"kw_diagnostics\",\n \"named\": true\n },\n {\n \"type\": \"kw_do\",\n \"named\": true\n },\n {\n \"type\": \"kw_dump\",\n \"named\": true\n },\n {\n \"type\": \"kw_else\",\n \"named\": true\n },\n {\n \"type\": \"kw_elsif\",\n \"named\": true\n },\n {\n \"type\": \"kw_end\",\n \"named\": true\n },\n {\n \"type\": \"kw_errcode\",\n \"named\": true\n },\n {\n \"type\": \"kw_error\",\n \"named\": true\n },\n {\n \"type\": \"kw_exception\",\n \"named\": true\n },\n {\n \"type\": \"kw_execute\",\n \"named\": true\n },\n {\n \"type\": \"kw_exit\",\n \"named\": true\n },\n {\n \"type\": \"kw_fetch\",\n \"named\": true\n },\n {\n \"type\": \"kw_first\",\n \"named\": true\n },\n {\n \"type\": \"kw_for\",\n \"named\": true\n },\n {\n \"type\": \"kw_foreach\",\n \"named\": true\n },\n {\n \"type\": \"kw_forward\",\n \"named\": true\n },\n {\n \"type\": \"kw_from\",\n \"named\": true\n },\n {\n \"type\": \"kw_get\",\n \"named\": true\n },\n {\n \"type\": \"kw_hint\",\n \"named\": true\n },\n {\n \"type\": \"kw_if\",\n \"named\": true\n },\n {\n \"type\": \"kw_import\",\n \"named\": true\n },\n {\n \"type\": \"kw_in\",\n \"named\": true\n },\n {\n \"type\": \"kw_info\",\n \"named\": true\n },\n {\n \"type\": \"kw_insert\",\n \"named\": true\n },\n {\n \"type\": \"kw_into\",\n \"named\": true\n },\n {\n \"type\": \"kw_is\",\n \"named\": true\n },\n {\n \"type\": \"kw_last\",\n \"named\": true\n },\n {\n \"type\": \"kw_log\",\n \"named\": true\n },\n {\n \"type\": \"kw_loop\",\n \"named\": true\n },\n {\n \"type\": \"kw_merge\",\n \"named\": true\n },\n {\n \"type\": \"kw_message\",\n \"named\": true\n },\n {\n \"type\": \"kw_message_text\",\n \"named\": true\n },\n {\n \"type\": \"kw_move\",\n \"named\": true\n },\n {\n \"type\": \"kw_next\",\n \"named\": true\n },\n {\n \"type\": \"kw_no\",\n \"named\": true\n },\n {\n \"type\": \"kw_not\",\n \"named\": true\n },\n {\n \"type\": \"kw_notice\",\n \"named\": true\n },\n {\n \"type\": \"kw_null\",\n \"named\": true\n },\n {\n \"type\": \"kw_open\",\n \"named\": true\n },\n {\n \"type\": \"kw_option\",\n \"named\": true\n },\n {\n \"type\": \"kw_or\",\n \"named\": true\n },\n {\n \"type\": \"kw_perform\",\n \"named\": true\n },\n {\n \"type\": \"kw_pg_context\",\n \"named\": true\n },\n {\n \"type\": \"kw_pg_datatype_name\",\n \"named\": true\n },\n {\n \"type\": \"kw_pg_exception_context\",\n \"named\": true\n },\n {\n \"type\": \"kw_pg_exception_detail\",\n \"named\": true\n },\n {\n \"type\": \"kw_pg_exception_hint\",\n \"named\": true\n },\n {\n \"type\": \"kw_pg_routine_oid\",\n \"named\": true\n },\n {\n \"type\": \"kw_print_strict_params\",\n \"named\": true\n },\n {\n \"type\": \"kw_prior\",\n \"named\": true\n },\n {\n \"type\": \"kw_query\",\n \"named\": true\n },\n {\n \"type\": \"kw_raise\",\n \"named\": true\n },\n {\n \"type\": \"kw_relative\",\n \"named\": true\n },\n {\n \"type\": \"kw_return\",\n \"named\": true\n },\n {\n \"type\": \"kw_returned_sqlstate\",\n \"named\": true\n },\n {\n \"type\": \"kw_reverse\",\n \"named\": true\n },\n {\n \"type\": \"kw_rollback\",\n \"named\": true\n },\n {\n \"type\": \"kw_row_count\",\n \"named\": true\n },\n {\n \"type\": \"kw_rowtype\",\n \"named\": true\n },\n {\n \"type\": \"kw_schema\",\n \"named\": true\n },\n {\n \"type\": \"kw_schema_name\",\n \"named\": true\n },\n {\n \"type\": \"kw_scroll\",\n \"named\": true\n },\n {\n \"type\": \"kw_slice\",\n \"named\": true\n },\n {\n \"type\": \"kw_sqlstate\",\n \"named\": true\n },\n {\n \"type\": \"kw_stacked\",\n \"named\": true\n },\n {\n \"type\": \"kw_strict\",\n \"named\": true\n },\n {\n \"type\": \"kw_table\",\n \"named\": true\n },\n {\n \"type\": \"kw_table_name\",\n \"named\": true\n },\n {\n \"type\": \"kw_then\",\n \"named\": true\n },\n {\n \"type\": \"kw_type\",\n \"named\": true\n },\n {\n \"type\": \"kw_use_column\",\n \"named\": true\n },\n {\n \"type\": \"kw_use_variable\",\n \"named\": true\n },\n {\n \"type\": \"kw_using\",\n \"named\": true\n },\n {\n \"type\": \"kw_variable_conflict\",\n \"named\": true\n },\n {\n \"type\": \"kw_warning\",\n \"named\": true\n },\n {\n \"type\": \"kw_when\",\n \"named\": true\n },\n {\n \"type\": \"kw_while\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n }\n]";Expand description
The content of the [node-types.json][] file for the PL/pgSQL grammar.