Skip to content
  • Gleb Shchepa's avatar
    592c5eeb
    WL#7200: True bottom-up server parser: refactoring of the SELECT statement · 592c5eeb
    Gleb Shchepa authored
    ==========================================================================
    Context-independent parsing of the SELECT statement.
    
    WL#7203: True bottom-up server parser: refactoring of the SET statement
    =======================================================================
    Context-independent parsing of the SET statement.
    
    WL#7199: True bottom-up server parser: common framework for the refactoring
    ===========================================================================
    New files:
    
      sql/parse_location.h
        A separate definition of YYLTYPE structure (Bison "locations")
        and its Bison macros: we don't need the whole sql_lex.h file to
        include this structure -- this helps to break cyclic include
        file dependences.
    
      sql/parse_tree_node_base.h
      sql/parse_tree_node_base.cc
        Definition of parse tree node base class: the
        Parse_tree_node class.
    
      sql/parse_tree_helpers.h
      sql/parse_tree_helpers.cc
        Helper classes and macros:
        * The Parse_tree_item: the child of the Item class that overload
          abstract methods of its parent; we subclass it with intermediate
          Item-compatible parse tree node classes.
        * Helper macros for recursive Item list rule refactoring.
    
      sql/parse_tree_items.h
      sql/parse_tree_items.cc
        Files to store Item-compatible parse tree node classes.
    
      sql/parse_tree_nodes.h
      sql/parse_tree_nodes.cc
        Files to store parse tree node classes (besides Item-compatible
        ones).
    
    Other changes:
    
    * The LEX::text_string_is_7bit has replaced with the
      Lex_input_stream::text_string_is_7bit() constant function.
    * sql_yacc.yy: the %union has been moved to sql_lex.h and the
      MYSQL_YACC-related hacks have been eliminated.
    * YYLTYPE has been structured with the help of new Symbol_location class
    592c5eeb
    WL#7200: True bottom-up server parser: refactoring of the SELECT statement
    Gleb Shchepa authored
    ==========================================================================
    Context-independent parsing of the SELECT statement.
    
    WL#7203: True bottom-up server parser: refactoring of the SET statement
    =======================================================================
    Context-independent parsing of the SET statement.
    
    WL#7199: True bottom-up server parser: common framework for the refactoring
    ===========================================================================
    New files:
    
      sql/parse_location.h
        A separate definition of YYLTYPE structure (Bison "locations")
        and its Bison macros: we don't need the whole sql_lex.h file to
        include this structure -- this helps to break cyclic include
        file dependences.
    
      sql/parse_tree_node_base.h
      sql/parse_tree_node_base.cc
        Definition of parse tree node base class: the
        Parse_tree_node class.
    
      sql/parse_tree_helpers.h
      sql/parse_tree_helpers.cc
        Helper classes and macros:
        * The Parse_tree_item: the child of the Item class that overload
          abstract methods of its parent; we subclass it with intermediate
          Item-compatible parse tree node classes.
        * Helper macros for recursive Item list rule refactoring.
    
      sql/parse_tree_items.h
      sql/parse_tree_items.cc
        Files to store Item-compatible parse tree node classes.
    
      sql/parse_tree_nodes.h
      sql/parse_tree_nodes.cc
        Files to store parse tree node classes (besides Item-compatible
        ones).
    
    Other changes:
    
    * The LEX::text_string_is_7bit has replaced with the
      Lex_input_stream::text_string_is_7bit() constant function.
    * sql_yacc.yy: the %union has been moved to sql_lex.h and the
      MYSQL_YACC-related hacks have been eliminated.
    * YYLTYPE has been structured with the help of new Symbol_location class
Loading