1. 23 Aug, 2019 4 commits
    • Monty's avatar
      MDEV-20306 Assert when converting encrypted Aria table to S3 · 1b5e5bde
      Monty authored
      Changes:
      - maria_create() now uses a bit in the parameter flags to check if table
        should be encrypted instead of using maria_encrypted_tables.
      - Don't encrypt tables that are to be converted to S3
      - Added encrypted flag to ARIA_TABLE_CAPABILITIES
      - maria_chk --description now prints if table is encrypted. Other
        operations is not allowed on encrypted tables.
      1b5e5bde
    • Monty's avatar
      Fixed assertion Assertion `!table->pos_in_locked_tables' failed · bb6d674d
      Monty authored
      MDEV-19591
      Assertion `!table->pos_in_locked_tables' failed in tc_release_table upon
      altering table into S3 under lock.
      
      The problem was that thd->open_tables->pos_in_locked_tables was not reset
      when alter table failed to reopen a locked table.
      bb6d674d
    • Sergei Golubchik's avatar
      alloc_on_stack: simplify the API · 2e665fb2
      Sergei Golubchik authored
      2e665fb2
    • Monty's avatar
      MDEV-20279 Increase Aria index length limit · 6c50875a
      Monty authored
      Limit increased from 1000 to 2000.
      
      Avoiding stack overflow by only storing keys and pages on the stack in
      recursive functions if there is plenty of space on it.
      
      Other things:
      - Use less stack space for b-tree operations as we now only allocate as
        much space as needed instead of always allocating HA_MAX_KEY_LENGTH.
      - Replaced most usage of my_safe_alloca() in Aria with the stack_alloc
        interface.
      - Moved my_setstacksize() to mysys/my_pthread.c
      6c50875a
  2. 22 Aug, 2019 3 commits
  3. 19 Aug, 2019 1 commit
  4. 17 Aug, 2019 1 commit
    • Monty's avatar
      Updated spider result file · da53fb6d
      Monty authored
      Kentoku told me that this is ok and that he just had forgot
      to do that as part of an earlier bug fix
      da53fb6d
  5. 16 Aug, 2019 9 commits
    • Alexander Barkov's avatar
      MDEV-20363 Assertion `is_unsigned() == attr.unsigned_flag' failed in... · cb4dcf39
      Alexander Barkov authored
      MDEV-20363 Assertion `is_unsigned() == attr.unsigned_flag' failed in Type_handler_longlong::make_table_field
      cb4dcf39
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · 67ddb650
      Marko Mäkelä authored
      67ddb650
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · c221bcdc
      Marko Mäkelä authored
      c221bcdc
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · 395e1dcd
      Marko Mäkelä authored
      395e1dcd
    • Marko Mäkelä's avatar
      MDEV-19200: shutdown timeout on innodb.undo_truncate_recover · fe6eac0c
      Marko Mäkelä authored
      Optimize the test by dropping the table early and by using only
      one undo log thread, so that purge will be doing more useful work
      and less busy work of suspending and resuming the worker threads.
      
      The test used to cause shutdown timeout on 10.4 on buildbot, and
      for me locally when using --mysqld=--innodb-sync-debug.
      With these tweaks, it passes for me with --mysqld=--innodb-sync-debug.
      fe6eac0c
    • Marko Mäkelä's avatar
      MDEV-8588/MDEV-19740: Restore a condition · 555af003
      Marko Mäkelä authored
      It looks like the merge of MySQL 5.7.9 to MariaDB 10.2.2 conflicted with
      earlier changes that were made in MDEV-8588.
      
      row_search_mvcc(): If the page is corrupted, avoid invoking
      btr_cur_store_position(). The caller should not try to fetch
      the next record after a hard error.
      555af003
    • Jan Lindström's avatar
      Remove file accidentally pushed. · 3bbf0080
      Jan Lindström authored
      3bbf0080
    • Marko Mäkelä's avatar
      Silence GCC 9.2.1 -Warray-bounds · 130d9490
      Marko Mäkelä authored
      No memory access violated the bounds of fake_extra_buf[],
      but GCC does not like the fact that the pointer fake_extra
      ends up pointing before the array.
      Allocate a dummy element at the start of fake_extra_buf[]
      in order to silence the warning.
      130d9490
    • Jan Lindström's avatar
      MDEV-18778: mysql_tzinfo_to_sql does not work correctly in MariaDB Galera · e6b505fd
      Jan Lindström authored
      There were two problems:
      
      (1) If user wanted same time zone information on all nodes in the Galera
      cluster all updates were not replicated as time zone information was
      stored on MyISAM tables. This is fixed on Galera by altering time zone
      tables to InnoDB while they are modified.
      
      (2) If user wanted different time zone information to nodes in the Galera
      cluster TRUNCATE TABLE for time zone tables was replicated by Galera
      destroying time zone information from other nodes. This is fixed
      on Galera by introducing new option for mysql_tzinfo_to_sql_symlink
      tool --skip-write-binlog to disable Galera replication while
      time zone tables are modified.
      
      Changes to be committed:
              modified:   mysql-test/r/mysql_tzinfo_to_sql_symlink.result
              modified:   mysql-test/suite/wsrep/r/mysql_tzinfo_to_sql_symlink.result
              new file:   mysql-test/suite/wsrep/r/mysql_tzinfo_to_sql_symlink_skip.result
              new file:   mysql-test/suite/wsrep/t/mysql_tzinfo_to_sql_symlink_skip.test
              modified:   sql/tztime.cc
      
      This is 10.4 version of commit fa740888
      e6b505fd
  6. 15 Aug, 2019 13 commits
  7. 14 Aug, 2019 9 commits
    • Monty's avatar
      c9c689e1
    • Monty's avatar
      Don't copy uninitialized bytes when copying varstrings · fa490e80
      Monty authored
      When using field_conv(), which is called in case of field1=field2 copy in
      fill_records(), full varstring's was copied, including unitialized bytes.
      This caused valgrind to compilain about usage of unitialized bytes when
      using Aria static length records.
      Fixed by not using memcpy when copying varstrings but instead just copy
      the real bytes.
      fa490e80
    • Sujatha's avatar
      MDEV-20348: DROP TABLE IF EXISTS killed on master but was replicated · 29e560cd
      Sujatha authored
      Problem:
      =======
      DROP TABLE IF EXISTS was killed. The table still exists on
      the master but the DDL was still logged.
      
      Analysis:
      =========
      During the execution of DROP TABLE command "ha_delete_table" call is invoked
      to delete the table. If the query is killed at this point, the kill command
      is not handled within the code. This results in two issues.
      1) The table which is not dropped also gets written into the binary log.
      2) The code continues further upon receiving 'KILL QUERY'.
      
      Fix:
      ===
      Upon receiving the KILL command the query should stop its current execution.
      Tables which were successfully dropped prior to KILL command should be
      included in the binary log.
      29e560cd
    • Alexander Barkov's avatar
      Revert "MDEV-20342 Turn Field::flags from a member to a method" · afe6eb49
      Alexander Barkov authored
      This reverts commit e86010f9.
      
      Reverting on Monty's request, as this change makes merging
      things from 10.5 to 10.2 much harder.
      afe6eb49
    • Aleksey Midenkov's avatar
      Merge 10.2 into 10.3 · c23a5e0e
      Aleksey Midenkov authored
      c23a5e0e
    • Aleksey Midenkov's avatar
      MDEV-20301 InnoDB's MVCC has O(N^2) behaviors · 2347ffd8
      Aleksey Midenkov authored
      If there're multiple row versions in InnoDB, reading one row from PK
      may have O(N) complexity and reading from secondary keys may have
      O(N^2) complexity.
      
      The problem occurs when there are many pending versions of the same
      row, meaning that the primary key is the same, but a secondary key is
      different.  The slowdown occurs when the secondary index is
      traversed. This patch creates a helper class for the function
      row_sel_get_clust_rec_for_mysql() which can remember and re-use
      cached_clust_rec & cached_old_vers so that rec_get_offsets() does not
      need to be called over and over for the clustered record.
      
      Corrections by Kevin Lewis <kevin.lewis@oracle.com>
      
      MDEV-20341 Unstable innodb.innodb_bug14704286
      
      Removed test that tested the ability of interrupting long query which
      is not long anymore.
      2347ffd8
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 1d15a28e
      Marko Mäkelä authored
      1d15a28e
    • Aleksey Midenkov's avatar
      MDEV-20336 Assertion bitmap_is_set(read_partitions) upon SELECT FOR UPDATE from versioned table · a20f6f98
      Aleksey Midenkov authored
      Exclude SELECT and INSERT SELECT from vers_set_hist_part(). We cannot
      likewise exclude REPLACE SELECT because it may REPLACE into itself
      (and REPLACE generates history).
      
      INSERT also does not generate history, but we have history
      modification setting which might be interfered.
      a20f6f98
    • Alexander Barkov's avatar