1. 03 Dec, 2019 4 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