• unknown's avatar
    WL#3303 (RBR: Engine-controlled logging format): · 48a31944
    unknown authored
    Moving code to check storage engine capabilities to after tables
    are locked.  Moving code to cache table flags so that table flags
    are read from the storage engine at the beginning of the statement
    in addition to when the storage engine is opened.
    
    To handle CREATE-SELECT, the decision function is called after the
    table is created and it is called with all tables that are in the select
    part of the statement as well as the newly created table.
    
    
    sql/handler.cc:
      Changing code to cache table flags on a per-statement basis. The table
      flags are now retrieved inside ha_external_lock().
    sql/handler.h:
      Extending TABLEOP_HOOKS with postlock() member.
    sql/mysql_priv.h:
      Adding prototype declaration of decide_logging_format() function.
    sql/sql_base.cc:
      Factoring out code to check capabilities into decide_logging_format().
      Moving code to check engine capabilities to after the tables are locked.
      Correcting a bug causing row-based to not be set when the engines
      were not statement-logging capable.
    sql/sql_class.h:
      Adding selected tables as select_create::select_tables member variable.
    sql/sql_insert.cc:
      Introducing logic to handle post-locking hook.
      select_create::prepare now uses post-lock hook instead of pre-lock hook.
      Deciding on logging format especially for CREATE-SELECT by calling
      decide_logging_format() in the post-lock hook.
    sql/sql_parse.cc:
      Adding selected tables as argument to select_create constructor.
    48a31944
sql_parse.cc 206 KB