1. 26 Jun, 2019 7 commits
  2. 25 Jun, 2019 3 commits
  3. 22 Jun, 2019 3 commits
    • Eugene Kosov's avatar
      NFC: refactor Field::is_equal() and related stuff · a82e42fd
      Eugene Kosov authored
      Make Field::is_equal() const and return bool as it's a naturally fitting
      type for it. Also it's agrument was narrowed to Column_definition.
      
      InnoDB can change type of some columns by itself. InnoDB-specific code used to
      reside in Field_xxx:is_equal() methods. Now engine-specific stuff was
      moved to a virtual methods of handler::can_convert{string,varstring,blob,geom}.
      These methods are called by Field::can_be_converted_by_engine() which is a
      double dispatch pattern.
      
      Some InnoDB-specific code still resides in compare_keys_but_name(). It should
      be moved from here someday to handler::compare_key_parts(...) or similar.
      
      IS_EQUAL_WITH_REINTERPRET_COMPATIBLE_CHARSET
      IS_EQUAL_WITH_REINTERPRET_COMPATIBLE_CHARSET_BUT_COLLATE: both was removed
      
      IS_EQUAL_NO, IS_EQUAL_YES are not needed now and should be removed
      along with deprecated handler::check_if_incompatible_data().
      
      HA_EXTENDED_TYPES_CONVERSION: was removed as such logic is not needed now by
      server code.
      
      ALTER_COLUMN_EQUAL_PACK_LENGTH: was renamed to a more generic
      ALTER_COLUMN_TYPE_CHANGE_BY_ENGINE
      a82e42fd
    • Eugene Kosov's avatar
      MDEV-17301 Change of COLLATE unnecessarily requires ALGORITHM=COPY · 854c219a
      Eugene Kosov authored
      Patch is about two cases:
      1) On some collate changes it's possible to rebuild only secondary indexes
      2) For non-indexed columns collate can be changed INSTANTly
      
      Implemented mostly in Field_{string,varstring,blob}::is_equal().
      Make this method return how exactly collationa differs.
      This information is later used by fill_alter_inplace_info() to pass
      correct info to engine.
      854c219a
    • Vladislav Vaintroub's avatar
      remove workaround from MDEV-9409 · 72d3676f
      Vladislav Vaintroub authored
      72d3676f
  4. 21 Jun, 2019 1 commit
  5. 20 Jun, 2019 2 commits
  6. 19 Jun, 2019 2 commits
  7. 18 Jun, 2019 7 commits
    • Daniel Bartholomew's avatar
      bump the VERSION · efbfcc8b
      Daniel Bartholomew authored
      efbfcc8b
    • Michael Widenius's avatar
      MDEV-19595 fixed · 8acbf9c1
      Michael Widenius authored
      The test cases for the MDEV found several independent bugs
      in MariaDB server and Aria:
      - If a temporary table was marked as crashed, it could never
        be deleted.
      - Opening of a crashed temporary table gave an error message
        but the error was never forwarded to the caller which caused
        an assert() in my_ok()
      - init_read_record() did mmap of all temporary tables, which is
        probably not a good idea as this area can potentially be
        very big. Changed code to only mmap internal temporary tables.
      - mmap-ed tables where not unmapped in case of repair/optimize
        which caused bad data in table and crashes if the original
        table files where replaced with new ones (as the old mmap
        was still in place). Fixed by removing the mmap in case
        of repair.
      - Cleaned up usage of code that disabled mmap in Aria
      8acbf9c1
    • Sergei Golubchik's avatar
      3db4d018
    • Michael Widenius's avatar
      MDEV-18078 Assertion `trnman_has_locked_tables(trn) > 0' failed · b23c82fe
      Michael Widenius authored
      Problem was that in case of implicit rollback for alter table
      Aria did try to run commit twice.
      
      The test case for this is tricky to do in 10.2, so it will
      be added to 10.4 as part of BACKUP STAGE testing.
      b23c82fe
    • mkaruza's avatar
      MDEV-18832 Galera: 10.4 node crashed with Assertion `state() == s_committing'... · 48570eb6
      mkaruza authored
      MDEV-18832 Galera: 10.4 node crashed with Assertion `state() == s_committing' if you create SEQUENCE, use it, then drop and recreate and use again (#1339)
      
      We could still end committing to binlog even in rollback.
      Do not proceed with WSREP commit in this case.
      48570eb6
    • mkaruza's avatar
      MDEV-18940 Galera: Rolling upgrade: all nodes except upgraded node5 failed... · 03f3ba2d
      mkaruza authored
      MDEV-18940 Galera: Rolling upgrade: all nodes except upgraded node5 failed with Assertion `meta->gtid.seqno == wsrep_thd_trx_seqno(thd)' with SEQUENCEs (#1342)
      
      Empty write sets will not trigger apply callback, and will not
      update thread wsrep_trx_meta.gtid.seqno. Because of that assert will
      be triggered when commit callback is called.
      03f3ba2d
    • Alexander Barkov's avatar
      MDEV-17363 - Compressed columns cannot be restored from dump · 5352e968
      Alexander Barkov authored
      In collaboration with Sergey Vojtovich <svoj@mariadb.org>
      
      The COMPRESSED clause is now a part of the data type and goes immediately
      after the data type and length, but before the CHARACTER SET clause,
      and before column attributes such as DEFAULT, COLLATE, ON UPDATE,
      SYSTEM VERSIONING, engine specific column attributes.
      
      In the old reduction, the COMPRESSED clause was a column attribute.
      
      New syntax:
        <varchar or text data type> <length> <compression> <character set> <column attributes>
        <varbinary or blob data type> <length> <compression> <column attributes>
      
      New syntax examples:
        VARCHAR(1000) COMPRESSED CHARACTER SET latin1 DEFAULT ''
        BLOB COMPRESSED DEFAULT ''
      
      Deprecate syntax examples:
        VARCHAR(1000) CHARACTER SET latin1 COMPRESSED DEFAULT ''
        TEXT          CHARACTER SET latin1 DEFAULT '' COMPRESSED
        VARBINARY(1000) DEFAULT '' COMPRESSED
      
      As a side effect:
      - COMPRESSED is not valid as an SP label name in SQL/PSM routines any more
        (but it's still valid as an SP label name in sql_mode=ORACLE)
      
      - COMPRESSED is now allowed in combination with GENERATED ALWAYS AS:
      
        TEXT COMPRESSED GENERATED ALWAYS AS REPEAT('a',1000)
      5352e968
  8. 17 Jun, 2019 15 commits