WL#8066: True bottom-up server parser: refactoring of the HANDLER statement

Affects: Server-8.0   —   Status: Complete   —   Priority: Medium

This WL is intended to refactor HANDLER statement-related parser grammar rules in a pure bottom-up style to make it (grammar) context-independent for the better maintainability and extendibility.

Functional requirements

N/A

Non-functional requirements

NF-1: No performance degradation is expected.

Goals

This WL is intended to refactor the grammar of the HANDLER statement in a pure context-independent bottom-up style for the better maintainability and extendibility.

This WL uses the framework and the methodology of the refactoring from the WL#7199 "True bottom-up server parser: common framework for the refactoring".

User Documentation

No user-visible changes. No documentation required.

New parse tree node classes

Class name Related syntax
PT_handler_open HANDLER [<db>.]<table> OPEN [<alias>]
PT_handler_close HANDLER <name> CLOSE
PT_handler_table_scan HANDLER <name> READ FIRST/NEXT [WHERE <expr>] [LIMIT <expr>]
PT_handler_index_scan HANDLER <name> READ <index> FIRST/NEXT/PREV/LAST [WHERE <expr>] [LIMIT <expr>]
PT_handler_index_range_scan HANDLER <name> READ <index> EQ/GE/LE/GT/LT '(' <expr> [,...] ')' [WHERE <expr>] [LIMIT <expr>]

Removal of unneeded "global" variables

  • Yacc_state::m_ha_rkey_mode
  • LEX::handler_insert_list