1. 13 Jun, 2018 6 commits
  2. 12 Jun, 2018 7 commits
    • Vicențiu Ciorbaru's avatar
      Merge branch '10.0-galera' into 10.1 · 6e55236c
      Vicențiu Ciorbaru authored
      6e55236c
    • Vicențiu Ciorbaru's avatar
      Merge branch '10.0' into 10.1 · aa59ecec
      Vicențiu Ciorbaru authored
      aa59ecec
    • Vicențiu Ciorbaru's avatar
      Merge branch '5.5' into 10.0 · 170bec36
      Vicențiu Ciorbaru authored
      170bec36
    • Andrei Elkin's avatar
      MDEV-13577 slave_parallel_mode=optimistic should not report the mode's · 7bbe324f
      Andrei Elkin authored
                 specific temporary errors
      
      The optimistic parallel slave's worker thread could face a run-time error due to
      the algorithm's specifics which allows for conflicts like the reported
      "Can't find record in 'table'".
      A typical stack is like
      
      {noformat}
      #0  handler::print_error (this=0x61c00008f8a0, error=149, errflag=0) at handler.cc:3650
      #1  0x0000555555e95361 in write_record (thd=thd@entry=0x62a0000a2208, table=table@entry=0x61f00008ce88, info=info@entry=0x7fffdee356d0) at sql_insert.cc:1944
      #2  0x0000555555ea7767 in mysql_insert (thd=thd@entry=0x62a0000a2208, table_list=0x61b00012ada0, fields=..., values_list=..., update_fields=..., update_values=..., duplic=<optimized out>, ignore=<optimized out>) at sql_insert.cc:1039
      #3  0x0000555555efda90 in mysql_execute_command (thd=thd@entry=0x62a0000a2208) at sql_parse.cc:3927
      #4  0x0000555555f0cc50 in mysql_parse (thd=0x62a0000a2208, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>) at sql_parse.cc:7449
      #5  0x00005555566d4444 in Query_log_event::do_apply_event (this=0x61200005b9c8, rgi=<optimized out>, query_arg=<optimized out>, q_len_arg=<optimized out>) at log_event.cc:4508
      #6  0x00005555566d639e in Query_log_event::do_apply_event (this=<optimized out>, rgi=<optimized out>) at log_event.cc:4185
      #7  0x0000555555d738cf in Log_event::apply_event (rgi=0x61d0001ea080, this=0x61200005b9c8) at log_event.h:1343
      #8  apply_event_and_update_pos_apply (ev=ev@entry=0x61200005b9c8, thd=thd@entry=0x62a0000a2208, rgi=rgi@entry=0x61d0001ea080, reason=<optimized out>) at slave.cc:3479
      #9  0x0000555555d8596b in apply_event_and_update_pos_for_parallel (ev=ev@entry=0x61200005b9c8, thd=thd@entry=0x62a0000a2208, rgi=rgi@entry=0x61d0001ea080) at slave.cc:3623
      #10 0x00005555562aca83 in rpt_handle_event (qev=qev@entry=0x6190000fa088, rpt=rpt@entry=0x62200002bd68) at rpl_parallel.cc:50
      #11 0x00005555562bd04e in handle_rpl_parallel_thread (arg=arg@entry=0x62200002bd68) at rpl_parallel.cc:1258
      {noformat}
      
      Here {{handler::print_error}} computes whether to error log the
      current error when --log-warnings > 1. The decision flag is consulted
      bu {{my_message_sql()}} which can be eventually called.
      In the bug case the decision is to log.
      However in the optimistic mode slave applier case any conflict is
      attempted to resolve with rollback and retry to success. Hence the
      logging is at least extraneous.
      
      The case is fixed with adding a new flag {{ME_LOG_AS_WARN}} which
      {{handler::print_error}} may propagate further on through {{my_error}}
      when the error comes from an optimistically running slave worker thread.
      
      The new flag effectively requests the warning level for the errlog record,
      while the thread's DA records the actual error (which is regarded as temporary one
      by the parallel slave error handler).
      7bbe324f
    • Alexey Botchkov's avatar
      MDEV-14668 ADD PRIMARY KEY IF NOT EXISTS on composite key. · 6b8d34fe
      Alexey Botchkov authored
      Check the name of the primary key to be 'PRIMARY'. Than
      differs it from any implicit primary keys created by an engine.
      6b8d34fe
    • Marko Mäkelä's avatar
      MDEV-16456 InnoDB error "returned OS error 71" complains about wrong path · 0ad9c3a0
      Marko Mäkelä authored
      When attempting to rename a table to a non-existing database,
      InnoDB would misleadingly report "OS error 71" when in fact the
      error code is InnoDB's own (OS_FILE_NOT_FOUND), and not report
      both pathnames. Errors on rename could occur due to reasons
      connected to either pathname.
      
      os_file_handle_rename_error(): New function, to report errors in
      renaming files.
      0ad9c3a0
    • Alexander Barkov's avatar
      MDEV-12060 Crash in EXECUTE IMMEDIATE with an expression returning a GRANT command · 26be5072
      Alexander Barkov authored
      Backporting (partially) the fix for MDEV-14603.
      26be5072
  3. 11 Jun, 2018 4 commits
  4. 10 Jun, 2018 15 commits
  5. 09 Jun, 2018 2 commits
    • Varun Gupta's avatar
      MDEV-16191: Analyze format=json gives incorrect value for r_limit inside a dependent · c17468d4
      Varun Gupta authored
      subquery when ORDER BY is present
      
      Currently for setting r_limit we divide with the number of iterations we invoke the dependent subquery.
      This is not needed for the case of limit. For varying limits we produce the output that the limit varies with
      execution.
      Also there is a type for filtered , we forgot to multiply by 100 as it is represented as a percent.
      c17468d4
    • Varun Gupta's avatar
      MDEV-16374: Filtered shows 0 for materilization scan for a semi join, which... · cd33280b
      Varun Gupta authored
      MDEV-16374: Filtered shows 0 for materilization scan for a semi join, which makes optimizer always picks
      materialization scan over materialization lookup
      
      For non-mergeable semi-joins we don't store the estimates of the IN subquery in table->file->stats.records.
      In the function TABLE_LIST::fetch_number_of_rows, we store the number of rows in the tables
      (estimates in case of derived table/views).
      Currently we don't store the estimates for non-mergeable semi-joins, which leads to a problem of selecting
      materialization scan over materialization lookup.
      Fixed this by storing these estimated appropriately
      cd33280b
  6. 08 Jun, 2018 3 commits
  7. 07 Jun, 2018 2 commits
    • Chris Calender's avatar
      MDEV-15789 - mysqlslap use incorrect table def · d9b159a2
      Chris Calender authored
      The bug arises when one uses --auto-generate-sql-guid-primary (and
      --auto-generate-sql-secondary-indexes) with mysqlslap and also have
      sql_mode=STRICT_TRANS_TABLE.
      
      When using this option, mysqlslap should create a column with varchar(36),
      but it appears to create it as a varchar(32) only. Then if one has
      sql_mode=STRICT_TRANS_TABLES, it throws an error, like:
      
        mysqlslap: Cannot run query INSERT INTO t1 VALUES (...)
        ERROR : Data too long for column 'id' at row 1
      
      Upstream bug report: BUG#80329.
      d9b159a2
    • Marko Mäkelä's avatar
      MDEV-16416 Crash on IMPORT TABLESPACE of a ROW_FORMAT=COMPRESSED table · 3627dd7f
      Marko Mäkelä authored
      fil_iterate(): Invoke fil_encrypt_buf() correctly when
      a ROW_FORMAT=COMPRESSED table with a physical page size of
      innodb_page_size is being imported. Also, validate the page checksum
      before decryption, and reduce the scope of some variables.
      
      AbstractCallback::operator()(): Remove the parameter 'offset'.
      The check for it in FetchIndexRootPages::operator() was basically
      redundant and dead code since the previous refactoring.
      3627dd7f
  8. 06 Jun, 2018 1 commit