1. 03 Dec, 2017 2 commits
  2. 02 Dec, 2017 4 commits
    • Monty's avatar
      Changed "const row not found" to "Const row not found" · 66607085
      Monty authored
      Also changed Unique row not found to use uppercase first.
      This was done to make these messages consistent with the rest
      66607085
    • Monty's avatar
      Improve error messages · c24d1d66
      Monty authored
      - mysql_install_db now prints position to error file, if log-error is used
      - Warning about compatibility now mentions MySQL 5.6 and 5.7
      - Give warning if --show_compatibility_56 is used
      c24d1d66
    • Monty's avatar
      cfaaace6
    • Monty's avatar
      Mark constant 'null_tables' with table->const_table=1 · c65911ac
      Monty authored
      This was done to make thing consistent. It gives the additional benefit
      that EXPLAIN EXTENDED now treat null_tables like constant's and replaces
      columns with NULL, in a similar way that it replaces columns with constants
      for constant tables.
      
      - Null tables are tables where all columns are always NULL. The most common
        NULL TABLE is a table used in a LEFT_JOIN that is never true.
      - All result changes comes from replacing columns with NULL for null_tables.
      - "Impossible where" is now also shows constants for const columns.
      - Removed duplicated s->type= JT_CONST
      - Reset found_const_table_map when JOIN is created (safety fix)
      c65911ac
  3. 01 Dec, 2017 4 commits
  4. 30 Nov, 2017 3 commits
  5. 29 Nov, 2017 6 commits
    • Vladislav Vaintroub's avatar
    • Vladislav Vaintroub's avatar
      MDEV-14536 : In mariabackup, reread redo log blocks , if checksum mismatch · bf6d11c4
      Vladislav Vaintroub authored
      is detected.
      
      The checksum mismatch can be due to partial write, thus retry the read
      bf6d11c4
    • Aleksey Midenkov's avatar
      FRM: fail to load extra2 option with size 1 fix · 51b30586
      Aleksey Midenkov authored
      From comment in unreg.h:
      
        Types of values in the MariaDB extra2 frm segment.
        Each value is written as
          type:       1 byte
          length:     1 byte  (1..255) or \0 and 2 bytes.
          binary value of the 'length' bytes.
      
      length == 1 is valid.
      51b30586
    • Alexander Barkov's avatar
    • Vicențiu Ciorbaru's avatar
      MDEV-13384: "window" seems like a reserved column name but it's not listed as one · 8cee2f13
      Vicențiu Ciorbaru authored
      Window is a reserved keyword according to SQL Standard 2016. However, we
      can make the grammar slightly flexible by allowing WINDOW keyword everywhere
      except table aliases. Change yacc grammar to separate between all keywords
      and table_alias keywords.
      8cee2f13
    • Alexander Barkov's avatar
      MDEV-14467 Item_param: replace {INT|DECIMAL|REAL|STRING|TIME}_VALUE with Type_handler · e01d33d7
      Alexander Barkov authored
      1. Removing data type specific constants from enum_item_param_state,
         adding SHORT_DATA_VALUE instead.
      2. Replacing tests for Item_param::state for the removed constants to
         tests for Type_handler::cmp_type() against {INT|REAL|TIME|DECIAML}_RESULT.
         Deriving Item_param::PValue from Type_handler_hybrid_field_type,
         to store the data type handler of the current value of the parameter.
      
      3. Moving Item_param::decimal_value and Item_param::str_value_ptr
         to Item_param::PValue. Adding Item_param::PValue::m_string
         and changing Item_param to use it to store string values,
         instead of Item::str_value. The intent is to replace Item_param::value
         to a st_value based implementation in the future, to avoid duplicate code.
         Adding a sub-class Item::PValue_simple, to implement
         Item_param::PValue::swap() easier.
         Remaming Item_basic_value::fix_charset_and_length_from_str_value()
         to fix_charset_and_length() and adding the "CHARSET_INFO" pointer
         parameter, instead of getting it directly from item->str_value.charset().
         Changing Item_param to pass value.m_string.charset() instead
         of str_value.charset().
         Adding a String argument to the overloaded
         fix_charset_and_length_from_str_value() and changing Item_param
         to pass value.m_string instead of str_value.
      
      4. Replacing the case in Item_param::save_in_field() to a call
         for Type_handler::Item_save_in_field().
      
      5. Adding new methods into Item_param::PValue:
         val_real(), val_int(), val_decimal(), val_str().
         Changing the corresponding Item_param methods
         to use these new Item_param::PValue methods
         internally. Adding a helper method
         Item_param::can_return_value() and removing
         duplicate code in Item_param::val_xxx().
      
      6. Removing value.set_handler() from Item_param::set_conversion()
         and Type_handler_xxx::Item_param_set_from_value().
         It's now done inside Item_param::set_param_func(),
         Item_param::set_value() and Item_param::set_limit_clause_param().
      
      7. Changing Type_handler_int_result::Item_param_set_from_value()
         to set max_length using attr->max_length instead of
         MY_INT64_NUM_DECIMAL_DIGITS, to preserve the data type
         of the assigned expression more precisely.
      
      8. Adding Type_handler_hybrid_field_type::swap(),
         using it in Item_param::PValue::swap().
      
      9. Moving the data-type specific code from
         Item_param::query_val_str(), Item_param::eq(),
         Item_param::clone_item() to
         Item_param::value_query_type_str(),
         Item_param::value_eq(), Item_param::value_clone_item(),
         to split the "state" dependent code and
         the data type dependent code.
         Later we'll split the data type related code further
         and add new methods in Type_handler. This will be done
         after we replace Item_param::PValue to st_value.
      
      10. Adding asserts into set_int(), set_double(), set_decimal(),
         set_time(), set_str(), set_longdata() to make sure that
         the value set to Item_param corresponds to the previously
         set data type handler.
      
      11. Adding tests into t/ps.test and suite/binlog/t/binlog_stm_ps.test,
         to cover Item_param::print() and Item_param::append_for_log()
         for LIMIT clause parameters.
         Note, the patch does not change the behavior covered by the new
         tests. Adding for better code coverage.
      
      12. Adding tests for more precise integer data type in queries like this:
          EXECUTE IMMEDIATE
           'CREATE OR REPLACE TABLE t1 AS SELECT 999999999 AS a,? AS b'
            USING 999999999;
          The explicit integer literal and the same integer literal
          passed as a PS parameter now produce columns of the same data type.
          Re-recording old results in ps.result, gis.result, func_hybrid_type.result
          accordingly.
      e01d33d7
  6. 28 Nov, 2017 7 commits
  7. 27 Nov, 2017 5 commits
  8. 24 Nov, 2017 9 commits