1. 03 Dec, 2019 5 commits
    • Marko Mäkelä's avatar
      MDEV-12353 preparation: Do not write MLOG_REC_MIN_MARK · cd92c6c8
      Marko Mäkelä authored
      btr_set_min_rec_mark(): Write MLOG_1BYTE instead of
      MLOG_REC_MIN_MARK or MLOG_COMP_REC_MIN_MARK.
      
      On ROW_FORMAT=COMPRESSED pages, the minimum record flag is not stored
      at all. The flag is computed for the uncompressed page by
      page_zip_decompress(). Hence, nothing needs to be logged for
      ROW_FORMAT=COMPRESSED tables for this operation.
      
      To facilitate crash-upgrade and hot backup from older versions,
      we will retain the code to parse and apply the old log record types
      MLOG_REC_MIN_MARK and MLOG_COMP_REC_MIN_MARK.
      cd92c6c8
    • Marko Mäkelä's avatar
      MDEV-12353 preparation: Do not write MLOG_FILE_WRITE_CRYPT_DATA · 8ebd91c1
      Marko Mäkelä authored
      The MLOG_FILE_WRITE_CRYPT_DATA record was completely redundant.
      It can be replaced with a single MLOG_WRITE_STRING record.
      
      To facilitate upgrade from older versions, we will retain
      fil_parse_write_crypt_data().
      
      fil_crypt_parse(): Recover fil_space_crypt_t::write_page0().
      
      fil_space_crypt_t::write_page0(): Write everything in a single
      MLOG_WRITE_STRING for easy parsing.
      
      fil_space_crypt_t::page0_offset: Remove.
      8ebd91c1
    • Marko Mäkelä's avatar
      MDEV-21133: Remove buf_frame_copy() · bf2cc467
      Marko Mäkelä authored
      bf2cc467
    • Aleksey Midenkov's avatar
      MDEV-17554 versioning partition tests reorganize · 6f899468
      Aleksey Midenkov authored
      Moved partition_rotation, partition_innodb to partition.test
      6f899468
    • Aleksey Midenkov's avatar
      MDEV-17554 history partitioning cleanups · 9ed8d364
      Aleksey Midenkov authored
      * Fixed missed warning on condition boundary
      * REORGANIZE cases
      * vers_utils.h removed
      * test cases cleanup
      9ed8d364
  2. 02 Dec, 2019 8 commits
    • Aleksey Midenkov's avatar
      Merge 10.4 into 10.5 · 8ed646f0
      Aleksey Midenkov authored
      8ed646f0
    • Aleksey Midenkov's avatar
      Merge 10.3 into 10.4 · 0b8b11b0
      Aleksey Midenkov authored
      0b8b11b0
    • Aleksey Midenkov's avatar
      MDEV-18929 2nd execution of SP does not detect ER_VERS_NOT_VERSIONED (10.4) · 1d46923a
      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
      1d46923a
    • 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 10 commits
  5. 28 Nov, 2019 13 commits
  6. 27 Nov, 2019 3 commits
    • Vladislav Vaintroub's avatar
      MDEV-19669 - fix matching CIDR address for proxy protocol. · 584ffa02
      Vladislav Vaintroub authored
      Prior to this fix, when matching addresses using mask,
      extra bits could be used for  comparison, e.g to
      match with "a.b.c.d/24" , 27 bits were compared rather than 24.
      
      The patch fixes the calculation.
      584ffa02
    • Vladislav Vaintroub's avatar
      Merge branch '10.4' into 10.5 · 29710b28
      Vladislav Vaintroub authored
      # Conflicts:
      #	win/packaging/extra.wxs.in
      29710b28
    • Vladislav Vaintroub's avatar
      MDEV-19781 fixups · 96c6b2b6
      Vladislav Vaintroub authored
      - It is not enough to have  and DeleteSymlinks actions
      because within the same installation some exes executables can be both
      added and removed, which needs both adding and removing some symlinks.
      
      Instead of CreateSymlinks, there is now FixSymlinks function, which
      goes through the list, and adds or removes the symlinks as needed.
      
      - Implemented rollback for symlink custom action.
      
      - Generate list of symlinks in C++ file, using CMake, rather than storing
      lists as MSI properties.
      96c6b2b6