1. 02 Dec, 2018 1 commit
  2. 30 Nov, 2018 7 commits
    • Marko Mäkelä's avatar
      More InnoDB preprocessor cleanup · 17e371ff
      Marko Mäkelä authored
      Remove unnecessary #include.
      
      Remove references to UNIV_MATERIALIZE, UNIV_INLINE_ORIGINAL, UNIV_NONINL
      that are never defined.
      17e371ff
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 757530b8
      Marko Mäkelä authored
      757530b8
    • Marko Mäkelä's avatar
      MDEV-17881: Fix a debug assertion · 95f3c142
      Marko Mäkelä authored
      In 10.3, rec_is_metadata() takes a pointer, while in 10.4 it
      takes a reference as a parameter. I ported this patch from
      10.4 to 10.3, and then only ran a release build, not debug build.
      95f3c142
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 3afae13b
      Marko Mäkelä authored
      3afae13b
    • Marko Mäkelä's avatar
      MDEV-17881 Assertion failure in cmp_dtuple_rec_with_match_bytes after instant ADD COLUMN · e46a3aa4
      Marko Mäkelä authored
      The special flag REC_INFO_MIN_REC_FLAG used to be only set on the
      first record in the leftmost node pointer page of each level of the tree.
      It was never set on leaf pages.
      
      MDEV-11369 Instant ADD COLUMN in MariaDB Server 10.3 repurposed the flag
      to identify a hidden metadata record, which is stored in the first record
      on the leftmost leaf page.
      
      If the adaptive hash index points to records in the leftmost leaf page
      after instant ALTER TABLE, we would have such a metadata record in the
      table, an assertion could fail when trying to validate the index record.
      In a release build, we might wrongly qualify the hidden metadata record
      and thus return garbage results.
      
      cmp_dtuple_rec_with_match_bytes(): If the REC_INFO_MIN_REC_FLAG is
      set on the record, assert that this is the first record on the
      leftmost page and that the record is a metadata record, and finally
      return 1, because by definition, anything is greater than the
      minimum record.
      e46a3aa4
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · b3742467
      Marko Mäkelä authored
      b3742467
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · 0abd2766
      Marko Mäkelä authored
      Also, related to MDEV-15522, MDEV-17304, MDEV-17835,
      remove the Galera xtrabackup tests, because xtrabackup never worked
      with MariaDB Server 10.3 due to InnoDB redo log format changes.
      0abd2766
  3. 29 Nov, 2018 3 commits
  4. 28 Nov, 2018 7 commits
  5. 27 Nov, 2018 12 commits
  6. 26 Nov, 2018 10 commits
    • Marko Mäkelä's avatar
      MDEV-17816: Follow-up fix · 861038f2
      Marko Mäkelä authored
      When dropping a partially created table due to failure,
      use SQLCOM_TRUNCATE instead of SQLCOM_DROP_DB, so that
      no foreign key constraints will be touched. If any
      constraints were added as part of the creation, they would
      be reverted as part of the transaction rollback.
      
      We need an explicit call to row_drop_table_for_mysql(),
      because InnoDB does not do proper undo logging for CREATE TABLE,
      but would only drop the table at the end of the rollback.
      This would not work if the transaction combines both
      RENAME and CREATE, like TRUNCATE now does.
      861038f2
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 7dcbc33d
      Marko Mäkelä authored
      7dcbc33d
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · 36359157
      Marko Mäkelä authored
      36359157
    • Marko Mäkelä's avatar
      MDEV-17831 Assertion `supports_instant()' failed in... · 8fe34dd4
      Marko Mäkelä authored
      MDEV-17831 Assertion `supports_instant()' failed in dict_table_t::prepare_instant upon ADD COLUMN on table with KEY_BLOCK_SIZE
      
      dict_table_t::prepare_instant(): Remove too strict assertions that
      could fail if the MariaDB and InnoDB data dictionaries are out of sync.
      
      That the dictionaries got out of sync during TRUNCATE TABLE
      is a separate bug was fixed in 10.2 by
      commit 971e1d86.
      8fe34dd4
    • Marko Mäkelä's avatar
      MDEV-17831 TRUNCATE TABLE removes ROW_FORMAT=COMPRESSED · 971e1d86
      Marko Mäkelä authored
      If a table had a KEY_BLOCK_SIZE attribute, but no ROW_FORMAT,
      it would be created as ROW_FORMAT=COMPRESSED in InnoDB.
      However, TRUNCATE TABLE would lose the KEY_BLOCK_SIZE attribute
      and create the table with the innodb_default_row_format (DYNAMIC).
      
      This is a regression that was introduced by MDEV-13564.
      
      update_create_info_from_table(): Copy also KEY_BLOCK_SIZE.
      971e1d86
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · 1afed207
      Marko Mäkelä authored
      The test galera_sst_mariabackup_table_options was disabled,
      because the server refuses to start up due to wrong parameters.
      1afed207
    • Jan Lindström's avatar
      9669536c
    • Marko Mäkelä's avatar
      MDEV-17816 Crash in TRUNCATE TABLE when table creation fails · 2a31b828
      Marko Mäkelä authored
      The error handling in the MDEV-13564 TRUNCATE TABLE was broken
      when an error occurred during table creation.
      
      row_create_index_for_mysql(): Do not drop the table on error.
      
      fts_create_one_common_table(), fts_create_one_index_table():
      Do drop the table on error.
      
      create_index(), create_table_info_t::create_table():
      Let the caller handle the index creation errors.
      
      ha_innobase::create(): If create_table_info_t::create_table()
      fails, drop the incomplete table, roll back the transaction,
      and finally return an error to the caller.
      2a31b828
    • Daniel Black's avatar
      travis: xcode10.1 · 06972b2f
      Daniel Black authored
      06972b2f
    • Marko Mäkelä's avatar
      MDEV-14409 Assertion `page_rec_is_leaf(rec)' failed in lock_rec_validate_page · a81fceaf
      Marko Mäkelä authored
      lock_rec_queue_validate(): Assert page_rec_is_leaf(rec), except when
      the record is a page infimum or supremum.
      
      lock_rec_validate_page(): Relax the assertion that failed.
      The assertion was reachable when the record lock bitmap was empty.
      
      lock_rec_insert_check_and_lock(): Assert page_is_leaf().
      a81fceaf