1. 26 Jun, 2019 5 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 17 commits
    • Sergei Golubchik's avatar
      bugfix: crash on the empty db name · b8e655ce
      Sergei Golubchik authored
      followup for 0a43df4f
      b8e655ce
    • Sergei Golubchik's avatar
      10.4.6 is stable, not gamma · e85e4814
      Sergei Golubchik authored
      e85e4814
    • Vladislav Vaintroub's avatar
      Fix debug assert to match its intention. · 71eea0c3
      Vladislav Vaintroub authored
      Do not check my_errno before it is set, check errno instead.
      Also, do not check errno, if prior pread() did not fail.
      71eea0c3
    • Vladislav Vaintroub's avatar
      MDEV-19750 mysql command wrong encoding · 5804bb4e
      Vladislav Vaintroub authored
      Restore the detection of default charset in command line utilities.
      It worked up to 10.1, but was broken by Connector/C.
      
      Moved code for detection of default charset from sql-common/client.c
      to mysys, and make command line utilities to use this code if charset
      was not specified on the command line.
      5804bb4e
    • Vladislav Vaintroub's avatar
      Portability fix. · 81f60e8a
      Vladislav Vaintroub authored
      81f60e8a
    • Daniel Bartholomew's avatar
      bump the VERSION · 3784ed7a
      Daniel Bartholomew authored
      3784ed7a
    • Michael Widenius's avatar
      MDEV-19055 Failures with temporary tables and Aria · c8b5fa4a
      Michael Widenius authored
      There was two separate problems:
      - Aria pagecache didn't properly handle re-reading of blocks
        that have given errors before (this triggered an assert)
      - temporary tables that where opened several times where
        not properly closed in ALTER, REPAIR or OPTIMIZE table
      
      Other things
      - Added a couple of asserts that will make it easier to
        find problems like this in the future.
      c8b5fa4a
    • Sergei Golubchik's avatar
      MDEV-17592 Create MariaDB named commands/symlinks · 306e439c
      Sergei Golubchik authored
      post-merge fixes:
      * .gitignore
      * don't put the keyword COMPONENT into ${COMP} anymore
      * don't alias mytop, but do alias mysql_client_test
      * don't symlink manpages, use troff aliasing technique instead
        (symlinked manpages break rpm and out-of-source bintar builds)
      * move debian to use troff aliased manpages, fix typos in debian files,
        put aliases in the correct packages, add more aliases to match
        rpm/bintar packaging
      306e439c
    • Rasmus Johansson's avatar
      24503d57
    • Sergei Golubchik's avatar
      f02bc3cf
    • Sergei Golubchik's avatar
      compilation fix for fulltest-big · da619f01
      Sergei Golubchik authored
      da619f01
    • Sergei Golubchik's avatar
      make the heap.heap test portable · 20bb4ed1
      Sergei Golubchik authored
      in HEAP btree indexes, the address of a record in memory is part of the
      key. So, when inserting many identical keys, the actual btree
      shape is defined by how and where records in memory are allocated.
      
      records_in_range uses floats to estimate the size of the chunk of the
      btree between min and max records, it depends on the btree shape and,
      thus, is not portable either. As are optimizer decisions that are based
      on records_in_range estimations, if the number happens to be close
      to a tipping point.
      
      as a fix, reduce the number of matching rows, so that even with
      system-specific variations the optimizer would still pick the
      expected plan.
      
      Fixes heap.heap failure (range vs ALL) on ppc64
      20bb4ed1
    • Sergei Golubchik's avatar
      compilation failure on ppc with -DCMAKE_BUILD_TYPE=Debug · 13e8f728
      Sergei Golubchik authored
      if ${CRC32_LIBRARY} target has no COMPILE_FLAGS yet,
      GET_TARGET_PROPERTY returns COMPILE_FLAGS-NOTFOUND, which
      doesn't work very well when it's later fed back into COMPILE_FLAGS.
      
      GET_PROPERTY() returns an empty string in this case.
      13e8f728
    • Sergei Golubchik's avatar
      C/C · 09332120
      Sergei Golubchik authored
      09332120
    • Sergei Golubchik's avatar
      MDEV-15526 SysV init service deployed file '/etc/init.d/mysql' prevents... · a4cc6fb9
      Sergei Golubchik authored
      MDEV-15526 SysV init service deployed file '/etc/init.d/mysql' prevents systemctl disable command to work correctly (mariadb|mysql naming support) (debian/ubuntu)
      
      mariadb service is controlled by systemd
      
      Do not install SysV init script on Debian/Ubuntu in /etc/init.d/
      put it in /usr/share/mysql in case the user would need it for something.
      
      Use systemctl in pre/post scripts directly
      without funky conditionals and wrapper scripts
      a4cc6fb9
    • Sergei Golubchik's avatar
      MDEV-14735 better matching order for grants · 0a43df4f
      Sergei Golubchik authored
      fixes
      MDEV-14732 mysql.db privileges evaluated on order of grants rather than hierarchically
      MDEV-8269 Correct fix for Bug #20181776 :- ACCESS CONTROL DOESN'T MATCH MOST SPECIFIC HOST WHEN IT CONTAINS WILDCARD
      
      reimplement the old ad hoc get_sort() function to use a wildcard
      pattern ordering logic that works correctly in may be all practical cases.
      
      get_sort() is renamed to catch merge errors at compilation time.
      moved to a separate included file, because of a long comment.
      0a43df4f
    • Sergei Golubchik's avatar
      bugfix: PROXY privilege matched usernames incorrectly · fd00c449
      Sergei Golubchik authored
      username can be empty, meaning anybody, or must match literally.
      only db and host names are matched with wildcards.
      fd00c449