• Mattias Jonsson's avatar
    Bug#39084: Getting intermittent errors with statement-based binary logging · b72d1507
    Mattias Jonsson authored
    Problem was that partitioning cached the table flags.
    These flags could change due to TRANSACTION LEVEL changes.
    Solution was to remove the cache and always return the table flags
    from the first partition (if the handler was initialized).
    
    mysql-test/r/partition_innodb_stmt.result:
      Bug#39084: Getting intermittent errors with statement-based binary logging
      
      New test result file.
    mysql-test/t/partition_innodb_stmt.test:
      Bug#39084: Getting intermittent errors with statement-based binary logging
      
      New test file.
    sql/ha_partition.cc:
      Bug#39084: Getting intermittent errors with statement-based binary logging
      
      Removed m_table_flags, and added m_handler_status.
      Added checks that all partitions have the same
      table flags.
      Moved some variable initializations.
      Updated some comments.
      Fixed typo initialise -> initialize
      Changed HA_EXTTA_NO_READCHECK to do nothing, since it
      is only used in ha_open, which is called for every
      partition in ::open anyway.
    sql/ha_partition.h:
      Bug#39084: Getting intermittent errors with statement-based binary logging
      
      Removed m_table_flags, and added m_handler_status.
      Always return the first partitions table flags, instead of using
      cached table flags.
      Added define of enabled/disabled partitioning table flags
      Fixed type initialise -> initialize
      Updated some comments.
    sql/handler.cc:
      Bug#39084: Getting intermittent errors with statement-based binary logging
      
      Fixed type initialise -> initialize.
    sql/handler.h:
      Bug#39084: Getting intermittent errors with statement-based binary logging
      
      Added comment to understand where the cached value is set.
    b72d1507
ha_partition.cc 183 KB