1. 03 Dec, 2019 3 commits
  2. 02 Dec, 2019 9 commits
    • Jan Lindström's avatar
      Merge remote-tracking branch 10.2 into 10.3 · 9d9a2253
      Jan Lindström authored
      Conflicts:
      	mysql-test/suite/galera/t/galera_binlog_event_max_size_max-master.opt
      	mysql-test/suite/innodb/r/innodb-mdev-7513.result
      	mysql-test/suite/innodb/t/innodb-mdev-7513.test
      	mysql-test/suite/wsrep/disabled.def
      	storage/innobase/ibuf/ibuf0ibuf.cc
      9d9a2253
    • Robert Bindar's avatar
    • Faustin Lammler's avatar
      Sourced script should be 644 not 755 · 7e917bba
      Faustin Lammler authored
      The script is intented to be sourced by other SST script so it should
      not be executable (or should have a script header).
      This is causing a warning on Debian Lintian tool, see:
      https://salsa.debian.org/faust-guest/mariadb-10.3/-/jobs/431900
      7e917bba
    • Faustin Lammler's avatar
      Lintian complains on spelling error · 2df2238c
      Faustin Lammler authored
      The lintian check complains on spelling error:
      https://salsa.debian.org/mariadb-team/mariadb-10.3/-/jobs/95739
      2df2238c
    • Aleksey Midenkov's avatar
      MDEV-18929 2nd execution of SP does not detect ER_VERS_NOT_VERSIONED · db32d945
      Aleksey Midenkov authored
      Don't do skip_setup_conds() unless all errors are checked.
      
      Fixes following errors:
            ER_PERIOD_NOT_FOUND
            ER_VERS_QUERY_IN_PARTITION
            ER_VERS_ENGINE_UNSUPPORTED
            ER_VERS_NOT_VERSIONED
      db32d945
    • Aleksey Midenkov's avatar
      MDEV-21011 Table corruption reported for versioned partitioned table after... · a7cf0db3
      Aleksey Midenkov authored
      MDEV-21011 Table corruption reported for versioned partitioned table after DELETE: "Found a misplaced row"
      
      LIMIT history partitions cannot be checked by existing algorithm of
      check_misplaced_rows() because working history partition is
      incremented each time another one is filled. The existing algorithm
      gets record and tries to decide partition id for it by
      get_partition_id(). For LIMIT history it will just get first
      non-filled partition.
      
      To fix such partitions it is required to do REBUILD instead of REPAIR.
      a7cf0db3
    • Aleksey Midenkov's avatar
      MDEV-21155 Assertion with versioned table upon DELETE from view of view after replacing first view · 6dd41e00
      Aleksey Midenkov authored
      When view is merged by DT_MERGE_FOR_INSERT it is then skipped from
      processing and doesn't update WHERE clause with
      vers_setup_conds(). Note that view itself cannot work in
      vers_setup_conds() because it doesn't have row_start, row_end
      fields. Thus it is required to descend down to material TABLE_LIST
      through calls of mysql_derived_prepare() and run vers_setup_conds()
      from there. Luckily, all views (views of views, views of views of
      views, etc.) are linked in one list through next_global pointer, so we
      can skip all views of views and get straight to non-view TABLE_LIST by
      checking its merge_underlying_list property for zero value (it is
      assigned by DT_MERGE_FOR_INSERT for merged derived tables).
      
      We have to do that only for UPDATE and DELETE. Other DML commands
      don't use WHERE clause.
      
      MDEV-21146 Assertion `m_lock_type == 2' in handler::ha_drop_table upon LOAD DATA
      
      LOAD DATA does not use WHERE and the above call of vers_setup_conds()
      is not needed. unit->prepare() led to wrongly locked temporary table.
      6dd41e00
    • Aleksey Midenkov's avatar
      MDEV-21147 Assertion `marked_for_read()' upon UPDATE on versioned table via view · 97aa07ab
      Aleksey Midenkov authored
      "write set" for replication finally got its correct place
      (mark_columns_per_binlog_row_image()). When done generally in
      mark_columns_needed_for_update() it affects optimization
      algorithm. used_key_is_modified, query_plan.using_io_buffer are
      wrongly set and that leads to wrong prepare_for_keyread() which limits
      read_set.
      97aa07ab
    • Aleksey Midenkov's avatar
      MDEV-20441 ER_CRASHED_ON_USAGE upon update on versioned Aria table · 498a96a4
      Aleksey Midenkov authored
      Turn read cache off for update and multi-update for versioned
      table. no_cache is reinited on each TABLE open because it is
      applicable for specific algorithms.
      
      As a side fix vers_insert_history_row() honors vers_write setting.
      
      Aria with row_format=fixed uses IO_CACHE of type READ_CACHE for
      sequential read in update loop. When history row is inserted inside
      this loop the cache misses it and fails with error.
      
      TODO:
      
      Currently maria_extra() does not support SEQ_READ_APPEND. Probably it
      might be possible to use this type of cache.
      498a96a4
  3. 30 Nov, 2019 1 commit
  4. 29 Nov, 2019 4 commits
  5. 28 Nov, 2019 4 commits
  6. 27 Nov, 2019 4 commits
  7. 26 Nov, 2019 2 commits
  8. 25 Nov, 2019 2 commits
    • willhan's avatar
      MDEV-17508 Fix bug for spider when using "not like" · 3551cd32
      willhan authored
      fix bug for spider where using "not like" (#890)
      
      test case:
      t1 is a spider engine table;
        CREATE TABLE `t1` (
        `id` int(11) NOT NULL DEFAULT '0',
        `name` char(64) DEFAULT NULL,
        PRIMARY KEY (`id`)
      ) ENGINE=SPIDER
      
      query: "select * from t1 where name  not like 'x%' " would dispatch "select xxx name name like 'x%' " to remote mysqld, is wrong
      3551cd32
    • Aleksey Midenkov's avatar
      MDEV-18727 cleanup · bf58ec77
      Aleksey Midenkov authored
      bf58ec77
  9. 22 Nov, 2019 2 commits
  10. 21 Nov, 2019 2 commits
    • Eugene Kosov's avatar
      cleanup Linux AIO · d30e51fa
      Eugene Kosov authored
      Replace all io_context* occurrences with io_context_t
      
      Even in release mode die immediately when some io_* functions return
      EINVAL. This always means some programming bug and it's better to fail fast.
      
      LinuxAIOHandler::resubmit(): fix condition. Stop ignoring -1 return code which
      corresponds to EPERM and io_submit() really can return this one.
      
      Use io_destroy() to stop leaking io_context_t.
      
      Make m_aio_ctx std::vector instead of C array. I think that internal check
      for index overflow might be useful.
      
      Add debug assertions for EFAULT because for me receiving it
      looks like a programming bug.
      d30e51fa
    • Eugene Kosov's avatar
      MDEV-21045 AddressSanitizer: use-after-poison in mem_heap_dup / row_log_table_get_pk_col · a1454426
      Eugene Kosov authored
      row_log_table_get_pk_col(): read instant field value from instant
      alter table when it's required.
      a1454426
  11. 20 Nov, 2019 4 commits
  12. 19 Nov, 2019 2 commits
  13. 18 Nov, 2019 1 commit
    • Marko Mäkelä's avatar
      MDEV-13564 follow-up: Remove unused code · 39d8652c
      Marko Mäkelä authored
      DropIndex, CreateIndex: Remove. The file row0trunc.cc only exists
      in MariaDB Server 10.3 so that the crash recovery of TRUNCATE TABLE
      operations from older 10.2 and 10.3 servers will work. This dead code
      was being used for implementing the MySQL 5.7 WL#6501 TRUNCATE TABLE
      that was replaced with a backup-safe implementation in MDEV-13564.
      39d8652c