1. 05 Oct, 2018 1 commit
  2. 04 Oct, 2018 2 commits
    • Marko Mäkelä's avatar
      MDEV-11369: Perform validation at IMPORT TABLESPACE · 941ca92a
      Marko Mäkelä authored
      btr_cur_instant_root_init(): Check the "infimum" and "supremum"
      record strings already here, and not later in btr_cur_instant_root_init().
      In this way, we can properly reject files from later versions where
      instant ALTER TABLE could support further operations that change the
      format of InnoDB clustered indexes.
      941ca92a
    • Marko Mäkelä's avatar
      Fix a Galera result · 2badefb0
      Marko Mäkelä authored
      2badefb0
  3. 03 Oct, 2018 2 commits
    • Marko Mäkelä's avatar
      MDEV-11369: Implement accurate checks for the metadata record · ae4f464f
      Marko Mäkelä authored
      Because changes of the FIL_PAGE_TYPE or PAGE_INSTANT in the root
      page are not undo-logged, it is possible that the fields suggest
      that instant ADD COLUMN is in effect, even though no metadata
      record exists. If the fields are set, proceed to fetch the
      metadata record. If the metadata record does not exist, return
      success if !index->is_instant().
      
      Also, check that the "infimum" and "supremum" records carry the
      strings in the root page. In a later format that supports instant
      DROP COLUMN, we will have to store more information in the root
      page, so that index->n_core_null_bytes can be determined accurately.
      ae4f464f
    • Marko Mäkelä's avatar
      MDEV-11369: Implement stricter checks for the metadata record · c134f565
      Marko Mäkelä authored
      btr_cur_instant_init_low(): If columns were instantly added and dropped,
      then index->is_instant() might not hold even though the root page type
      was FIL_PAGE_TYPE_INSTANT. MariaDB 10.3 must refuse to open such files,
      because instant DROP COLUMN is not supported.
      
      Also, refuse to open the table if the metadata record has
      wrong info OR status bits. Previously, we only refused to open
      if both bits were wrong.
      c134f565
  4. 02 Oct, 2018 3 commits
  5. 01 Oct, 2018 6 commits
  6. 30 Sep, 2018 3 commits
    • Marko Mäkelä's avatar
      Remove an unused function · c58e5024
      Marko Mäkelä authored
      rec_offs_nth_extern_old() was introduced in
      commit a4948daf
      and never used.
      c58e5024
    • Marko Mäkelä's avatar
      Fix -Wunused-variable · ac8c7a1c
      Marko Mäkelä authored
      ac8c7a1c
    • Alexander Barkov's avatar
      MDEV-17318 CAST(LEAST(zero_date,non_zero_date) AS numeric_data_type) returns a wrong result · f79bab3a
      Alexander Barkov authored
      Also fixes:
      MDEV-17330 Wrong result for 0 + LEAST(TIME'-10:00:00',TIME'10:00:00')
      
      Problems:
      
      1. These methods did not take into account the current session date flags
      and passed date_mode_t(0) to func->get_date():
      
      Type_handler_temporal_result::Item_func_min_max_val_real
      Type_handler_temporal_result::Item_func_min_max_val_int
      Type_handler_temporal_result::Item_func_min_max_val_decimal
      
      Fixing to pass sql_mode_for_dates(thd) instead of date_mode_t(0).
      Note, sql_mode_for_dates(thd) is only needed for DATE/DATETIME
      data types. It is not needed for TIME.
      So splitting value methods Type_handler_temporal_result::Item_func_min_max_xxx
      into individual implementations for
      Type_handler_{time|date|datetime|timestamp}_common
      and, instead of calling get_date(), reusing inside classes
      Time(), Date(), Datetime() and their methods to_longlong().
      sql_mode_for_dates(thd) is automatically passed to get_date()
      inside Date() and Datetime() constructors.
      
      The switch to classes also fixed the problem reported in MDEV-17330.
      Type_handler_temporal_result::Item_func_min_max_val_int() used to
      call TIME_to_ulonglong(), which was not correct for TIME.
      Changing the code to use Time().to_longlong() solved this.
      
      2. Type_handler_temporal_result::Item_func_min_max_get_date
      also did not take into account the current session
      date flags in case of conversion from DATE/DATETIME to time
      and passed date_mode_t(0) to get_date_native().
      Fixing to pass sql_mode_for_dates(thd) in case of conversion
      from DATE/DATETIME to TIME.
      f79bab3a
  7. 29 Sep, 2018 1 commit
  8. 28 Sep, 2018 6 commits
  9. 27 Sep, 2018 1 commit
  10. 26 Sep, 2018 2 commits
  11. 25 Sep, 2018 1 commit
  12. 24 Sep, 2018 2 commits
  13. 23 Sep, 2018 6 commits
  14. 22 Sep, 2018 4 commits