1. 26 Jun, 2019 5 commits
    • Monty's avatar
    • Vlad Lesin's avatar
      MDEV-19867: fix mysqldump to by default not copy S3 tables · 5c5ea59b
      Vlad Lesin authored
      There are two options when coping S3 tables with mysqldump
      (there is startup option --copy_s3_tables, boolean, default no)
      1) Ignore all tables with engine S3, as the data is already safe in S3 and any
      computer where you restore the backup will automatically discover the S3 table.
      2) Copy the table as a normal table with the following 2 changes:
      - Change ENGINE=S3 to ENGINE=ARIA;
      - After copy add to log 'ALTER TABLE table_name ENGINE=S3'
      5c5ea59b
    • Vlad Lesin's avatar
      MDEV-19464: Altering partitioned table into S3 causes an obscure error · 878ad986
      Vlad Lesin authored
      The error occured because aria_copy_to_s3() function tried to copy .frm file
      of partition, but partition does not have it's own .frm file. The same is true
      for aria_rename_s3().
      
      To fix this issue the new parameter was added to those two functions to specify
      if .frm file must be copied or not. The parameter is set to 'false' for
      partitions.
      
      Also there was other issue with EXCHANGE PARTITION. Briefly, there is the
      following sequence of operations(see  exchange_name_with_ddl_log() for details):
      1) rename swap table to temporary table,
      2) rename partition to swap table,
      3) rename temporary table to partition.
      
      On step (1) .frm file is renamed too. On step (2) the swap table does not
      have .frm file, as partition does not have it. On step (3) partition will have
      .frm file, because it will be renamed from temporary table. All of this causes
      error on different stages of the table access. To fix it, .frm is not touched
      at all for s3 during EXCHANGE PARTITION operation. This is implemented in
      ha_s3::rename_table() by additional checking of
      current_thd->lex->alter_info.partition_flags(see also ALTER_PARTITION_EXCHANGE
      in sql_yacc.yy).
      878ad986
    • Alexander Barkov's avatar
    • Alexander Barkov's avatar
      677133f1
  2. 25 Jun, 2019 1 commit
  3. 24 Jun, 2019 4 commits
  4. 22 Jun, 2019 2 commits
  5. 21 Jun, 2019 1 commit
  6. 20 Jun, 2019 3 commits
  7. 19 Jun, 2019 4 commits
  8. 18 Jun, 2019 9 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
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · 3c88ce4c
      Marko Mäkelä authored
      3c88ce4c
    • Vladislav Vaintroub's avatar
      44d06cd3
    • 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
  9. 17 Jun, 2019 11 commits