1. 15 Jan, 2018 16 commits
  2. 14 Jan, 2018 1 commit
    • Eugene Kosov's avatar
      Compilation speed (#546) · 72136ae7
      Eugene Kosov authored
      Speed up compilation
      
      Standard C++ headers contribute a lot to compilation time. Avoid algorithm
      and sstream in frequently used headers.
      72136ae7
  3. 13 Jan, 2018 7 commits
  4. 12 Jan, 2018 8 commits
    • Sergei Petrunia's avatar
      1eea7966
    • Sergei Petrunia's avatar
      4cafd8e6
    • Marko Mäkelä's avatar
      MDEV-14935 Remove bogus conditions related to not redo-logging PAGE_MAX_TRX_ID changes · 3e6fcb6a
      Marko Mäkelä authored
      InnoDB originally skipped the redo logging of PAGE_MAX_TRX_ID changes
      until I enabled it in commit e76b873f
      that was part of MySQL 5.5.5 already.
      
      Later, when a more complete history of the InnoDB Plugin for MySQL 5.1
      (aka branches/zip in the InnoDB subversion repository) and of the
      planned-to-be closed-source branches/innodb+ that became the basis of
      InnoDB in MySQL 5.5 was pushed to the MySQL source repository, the
      change was part of commit 509e761f:
      
       ------------------------------------------------------------------------
       r5038 | marko | 2009-05-19 22:59:07 +0300 (Tue, 19 May 2009) | 30 lines
      
       branches/zip: Write PAGE_MAX_TRX_ID to the redo log. Otherwise,
       transactions that are started before the rollback of incomplete
       transactions has finished may have an inconsistent view of the
       secondary indexes.
      
       dict_index_is_sec_or_ibuf(): Auxiliary function for controlling
       updates and checks of PAGE_MAX_TRX_ID: check whether an index is a
       secondary index or the insert buffer tree.
      
       page_set_max_trx_id(), page_update_max_trx_id(),
       lock_rec_insert_check_and_lock(),
       lock_sec_rec_modify_check_and_lock(), btr_cur_ins_lock_and_undo(),
       btr_cur_upd_lock_and_undo(): Add the parameter mtr.
      
       page_set_max_trx_id(): Allow mtr to be NULL.  When mtr==NULL, do not
       attempt to write to the redo log.  This only occurs when creating a
       page or reorganizing a compressed page.  In these cases, the
       PAGE_MAX_TRX_ID will be set correctly during the application of redo
       log records, even though there is no explicit log record about it.
      
       btr_discard_only_page_on_level(): Preserve PAGE_MAX_TRX_ID.  This
       function should be unreachable, though.
      
       btr_cur_pessimistic_update(): Update PAGE_MAX_TRX_ID.
      
       Add some assertions for checking that PAGE_MAX_TRX_ID is set on all
       secondary index leaf pages.
      
       rb://115 tested by Michael, fixes Issue #211
       ------------------------------------------------------------------------
      
      After this fix, some bogus references to recv_recovery_is_on()
      remained. Also, some references could be replaced with
      references to index->is_dummy to prepare us for MDEV-14481
      (background redo log apply).
      3e6fcb6a
    • Sergei Petrunia's avatar
    • Otto Kekäläinen's avatar
      Minor spelling fixes in code comments, docs and output · c9c28bef
      Otto Kekäläinen authored
      This commit does not touch any variable names or any other actual code,
      and thus should not in any way affect how the code works.
      c9c28bef
    • Varun Gupta's avatar
    • Sergei Petrunia's avatar
      c481fc9c
    • Sergei Petrunia's avatar
      MDEV-14372: Fix and enable rocksdb.information_schema test · d32f5be3
      Sergei Petrunia authored
      - Make Rdb_binlog_manager::unpack_value to not have a stack overrun
        when it is reading invalid data (which it currently does as we in
        MariaDB do not store binlog coordinates under BINLOG_INFO_INDEX_NUMBER,
        see comments in MDEV-14892 for details).
      - We may need to store these coordinates in the future, so instead of
        removing the call of this function, let's make it work properly for
        all possible inputs.
      d32f5be3
  5. 11 Jan, 2018 8 commits
    • Andrei Elkin's avatar
      Added checking that row events ends with a proper end block · 3dc3ab1a
      Andrei Elkin authored
      Problems --------
      
      The slave io thread did not conduct integrity check
      for a group of row-based events. Specifically it tolerates missed
      terminal block event that must be flagged with STMT_END. Failure to
      react on its loss can confuse the applier thread in various ways.
      Another potential issue was that there were no check of impossible
      second in row Gtid-log-event while the slave io thread is receiving
      to be skipped events after reconnect.
      
      Fixes
      -----
      The slave io thread is made by this patch to track the rows event
      STMT_END status.
      Whenever at next event reading the IO thread finds out that a preceding
      Rows event did not actually had the flag, an
      explicit error is issued.
      
      Replication can be resumed after the source of failure is eliminated,
      see a provided test.
      
      Note that currently the row-based group integrity check excludes
      the compressed version 2 Rows events (which are not generated by MariaDB
      master).
      Its uncompressed counterpart is manually tested.
      
      The 2nd issue is covered to produce an error in case the io thread
      receives a successive Gtid_log_event while it is post-reconnect
      skipping.
      3dc3ab1a
    • Monty's avatar
      5fce14da
    • Marko Mäkelä's avatar
      After-merge fix to innodb.log_corruption · 21239bb0
      Marko Mäkelä authored
      21239bb0
    • Marko Mäkelä's avatar
      Merge bb-10.2-ext into 10.3 · 6dd302d1
      Marko Mäkelä authored
      6dd302d1
    • Marko Mäkelä's avatar
      Merge 10.2 into bb-10.2-ext · cca611d1
      Marko Mäkelä authored
      cca611d1
    • Monty's avatar
      Removed duplicated copyright message · bf771911
      Monty authored
      bf771911
    • Marko Mäkelä's avatar
      MDEV-14824 Assertion `!trx_is_started(trx)' failed in innobase_start_trx_and_assign_read_view · 773c3ceb
      Marko Mäkelä authored
      In CREATE SEQUENCE or CREATE TEMPORARY SEQUENCE, we should not start
      an InnoDB transaction for inserting the sequence status record into
      the underlying no-rollback table. Because we did this, a debug assertion
      failure would fail in START TRANSACTION WITH CONSISTENT SNAPSHOT after
      CREATE TEMPORARY SEQUENCE was executed.
      
      row_ins_step(): Do not start the transaction. Let the caller do that.
      
      que_thr_step(): Start the transaction before calling row_ins_step().
      
      row_ins_clust_index_entry(): Skip locking and undo logging for no-rollback
      tables, even for temporary no-rollback tables.
      
      row_ins_index_entry(): Allow trx->id==0 for no-rollback tables.
      
      row_insert_for_mysql(): Do not start a transaction for no-rollback tables.
      773c3ceb
    • Marko Mäkelä's avatar
      Fix compilation warnings for libmariadb · 30ecd288
      Marko Mäkelä authored
      30ecd288