1. 21 Jan, 2018 3 commits
  2. 18 Jan, 2018 4 commits
    • Igor Babaev's avatar
      Fixed mdev-14969 Non-recursive Common Table Expressions used in view · 30289a27
      Igor Babaev authored
      caused an error
      
      The function subselect_single_select_engine::print() did not print
      the WITH clause attached to a subselect with single select engine.
      As a result views using suqueries with attached WITH clauses lost
      these clauses when saved in frm files.
      30289a27
    • Marko Mäkelä's avatar
      MDEV-14985 innodb_undo_log_truncate may be blocked if transactions were recovered at startup · 6c09a654
      Marko Mäkelä authored
      The field trx_rseg_t::trx_ref_count that was added in WL#6965 in
      MySQL 5.7.5 is being incremented twice if a recovered transaction
      includes both undo log partitions insert_undo and update_undo.
      
      This reference count is being used in trx_purge(), which invokes
      trx_purge_initiate_truncate() to try to truncate an undo tablespace
      file. Because of the double-increment, the trx_ref_count would never
      reach 0.
      
      It is possible that after the failed truncation attempt, the undo
      tablespace would be disabled for logging any new transactions until
      the server is restarted (hopefully after committing or rolling back
      all transactions, so that no transactions would be recovered
      on the next startup).
      
      trx_resurrect_insert(), trx_resurrect_update(): Do not increment
      trx_ref_count. Instead, let the caller do that.
      
      trx_lists_init_at_db_start(): Increment rseg->trx_ref_count only
      once for each recovered transaction. Adjust comments.
      Finally, if innodb_force_recovery prevents the undo log scan,
      do not bother iterating the empty lists.
      6c09a654
    • Monty's avatar
      cc915cd5
    • Monty's avatar
      Fixed MDEV-14326 engine ARIA with row_format=FIXED is broken · 50de7d13
      Monty authored
      The problem was that max_size was acciently set to 1 in some
      cases.
      
      Other things:
      - Adjust max_rows if min_rows > max_rows.
      - Removed not used variable varchar_length
      - Adjusted max_pack_length (safety fix)
      50de7d13
  3. 17 Jan, 2018 3 commits
    • Marko Mäkelä's avatar
      Merge 10.2 into bb-10.2-ext · c6cd64f3
      Marko Mäkelä authored
      c6cd64f3
    • Marko Mäkelä's avatar
      Follow-up fix to MDEV-14585 Automatically remove #sql- tables in InnoDB dictionary during recovery · 656f66de
      Marko Mäkelä authored
      If InnoDB is killed while ALTER TABLE...ALGORITHM=COPY is in progress,
      after recovery there could be undo log records some records that were
      inserted into an intermediate copy of the table. Due to these undo log
      records, InnoDB would resurrect locks at recovery, and the intermediate
      table would be locked while we are trying to drop it. This would cause
      a call to row_rename_table_for_mysql(), either from
      row_mysql_drop_garbage_tables() or from the rollback of a RENAME
      operation that was part of the ALTER TABLE.
      
      row_rename_table_for_mysql(): Do not attempt to parse FOREIGN KEY
      constraints when renaming from #sql-something to #sql-something-else,
      because it does not make any sense.
      
      row_drop_table_for_mysql(): When deferring DROP TABLE due to locks,
      do not rename the table if its name already starts with the #sql-
      prefix, which is what row_mysql_drop_garbage_tables() uses.
      Previously, the too strict prefix #sql-ib was used, and some
      tables were renamed unnecessarily.
      656f66de
    • Marko Mäkelä's avatar
      Do not define unused function mark_blocks_free() · 04eef79b
      Marko Mäkelä authored
      Follow-up to commit 9ec19b9b
      04eef79b
  4. 16 Jan, 2018 6 commits
  5. 15 Jan, 2018 11 commits
  6. 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
  7. 13 Jan, 2018 5 commits
  8. 12 Jan, 2018 6 commits
  9. 11 Jan, 2018 1 commit
    • 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