• unknown's avatar
    Make handler::{write,delete,update}_row private. It's critical · 226700ee
    unknown authored
    that the entire server uses their public ha_* counterparts instead,
    since only then we can ensure proper tracing of these calls that
    is necessary for Bug#12713.
    A pre-requisite for Bug#12713 "Error in a stored function called from 
    a SELECT doesn't cause ROLLBACK of statem"
    
    
    sql/ha_partition.cc:
      Use ha_write_row, ha_update_row, ha_delete_row instead of now-private
      write_row, update_row, delete_row. 
      In future ha_* calls will contain more than just a call to the binary
      log, so it's essential they are used consistently everywhere in the server.
      
      Disable the undesired effect of double binary logging of changes
      to partitioned tables with tmp_disable_binlog.
    sql/handler.h:
      Make write_row, update_row, delete_row private. It's critical
      that the entire code base uses ha_write_row, ha_update_row, ha_delete_row
      instead -- in future, ha_* counterparts will have more common
      functionality than just a call to the binary log.
    sql/sql_select.cc:
      Use ha_write_row, ha_update_row, ha_delete_row instead of
      write_row, update_row, delete_row respectively. 
      The change affects the join execution code that works with an
      intermediate internal temporary table. Do not disable binary logging,
      since it's unnecessary - temporary tables are not replicated
      by row level replication.
    sql/sql_table.cc:
      Use ha_write_row in copy_data_between_tables - the function
      that writes data from the original table to a temporary copy
      when executing ALTER TABLE. Do not disable binary logging
      since temporary tables are not replicated by row level 
      replication anyway.
    226700ee
sql_select.cc 524 KB