1. 01 Jan, 2018 5 commits
  2. 31 Dec, 2017 1 commit
  3. 30 Dec, 2017 1 commit
  4. 29 Dec, 2017 5 commits
    • Elena Stepanova's avatar
      8bcbcac0
    • Monty's avatar
      Made IO_CACHE safe for reading big blocks (> 2G) · afbb72b3
      Monty authored
      The reason for adding this was that while testing mysqlbinlog on
      a replication event with 3G event output, Linux failed reading
      the whole file in memory with one read (only got 2G on first read
      even if file had just been written).
      
      - Don't reset info->error on write error in IO_CACHE.
      - In case of write_error in IO_CACHE , always return -1
      - Fixed wrong result from my_read when using MY_FULL_IO. Also don't give
        an error in case of retry.
      afbb72b3
    • Monty's avatar
      mysqlbinlog now prints "# Number of rows" and stops on errors · e6418413
      Monty authored
      Main problem was that no log-event print function checked for disk
      full error on the IO_CACHE.
      All changes in this patch only affects mysqlbinlog, not the server!
      
      - Changed all log-event print functions to return 1 on error
      - Fixed memory usage when not using --flashback.
      - Added printing of number of rows in row events. Can be disabled with
        --print-row-count=0
      - Print annotated rows when using mysqlbinlog --short-form
      - Fixed that mysqlbinlog --debug works
      - Fixed create_drop_binlog.test test failure
      - Reorganized fields in PRINT_EVENT_INFO to be according to size to
        optimize storage
      - Don't change print_row_event_position or print_row_counts if set by user
      - Remove some testing of argument to my_free is 0
      - base64-output=never is now supported and works in all context
      - Updated help information for --base64-output and --short-form
      - print_row_count is now on by default. Reset automatically if --short-form
        is used
      - Removed obsolote warning for mysql 5.6.0
      - More DBUG_PRINT for mysqltest.cc
      - my_b_write_byte() now checks for flush failures. This fixed a memory
        overrun on disk full
      - my_b_printf() now returns 1 on failure, 0 on ok.  This simplifies code
        and no old code was using the old return value of my_b_printf().
      - my_b_Write_backtick_quote() now returns 1 on failure and 0 on ok
      - Fixed some error conditions in log printing that was not previously
        handled.
      - Slave_rows_error_report() can now handle longlong positions
      - Write_on_release_cache() rewritten so that we can detect errors
        on flush. Not depending on automatic release anymore.
      - Changed types for Pos and End_log_pos to 64 bit in SHOW BINLOG EVENTS
      - Fixed that copy_event_cache_to_string_and_reinit() works with strings
        longer than 4G (Changed to use LEX_STRING instead of String)
      - Restricted binlog_rows_event_max_size to UINT32_MAX-1 as String's are
        anyway restricted to UINT32_MAX
      - Fixed bug in rpl_binlog_state::write_to_iocache() which hide write
        failures (duplicate variable name)
      - Fixed bug in String::append if original string was not allocated
      - Stop mysqlbinlog output at once if there is an error.
      - Before printing error message, flush result file. This ensures that
        the error message is printed last. (Easier to find)
      e6418413
    • Sergey Vojtovich's avatar
      MDEV-11071 - Assertion `thd->transaction.stmt.is_empty()' failed in · f5c47956
      Sergey Vojtovich authored
                   Locked_tables_list::unlock_locked_tables
      
      Similarly to regular DROP TABLE, don't leave locked tables mode if CREATE OR
      REPLACE dropped temporary table but failed to cerate new one.
      
      The problem is that there's no track of which temporary table was "locked" by
      LOCK TABLES.
      f5c47956
    • Vicențiu Ciorbaru's avatar
      24774fba
  5. 28 Dec, 2017 6 commits
  6. 27 Dec, 2017 3 commits
    • Igor Babaev's avatar
      Fixed the bug MDEV-14755 Crash when executing prepared statement · bbb8c9d7
      Igor Babaev authored
      for a query that uses CTE
      
      The first reference to a CTE in the processed query uses the unit
      built by the parser for the CTE specification. This unit is
      considered as the specification of the derived table created for
      the first reference of the CTE. This requires some transformation of
      the original query tree: the unit of the specification must be moved
      to a new position as a slave of the select where the first reference
      to the CTE occurs. The transformation is performed by the function
      st_select_lex_node::move_as_slave(). There was an obvious bug in this
      function. As a result of this bug in many cases the moved unit turned
      out to be lost in the query tree. This could cause different problems.
      In particular the prepared statements for queries that used CTEs could
      miss cleanup for some selects that was performed at the end of the
      preparation/execution of the PSs. If such cleanup is not done for a PS
      the next execution of the PS causes an assertion abort or a crash.
      bbb8c9d7
    • Vicențiu Ciorbaru's avatar
      d1c2cd30
    • Alexander Barkov's avatar
      MDEV-14249 Wrong character set info of Query_log_event and the query in... · 02b7dc7b
      Alexander Barkov authored
      MDEV-14249 Wrong character set info of Query_log_event and the query in Query_log_event constructed by different charsets cause error when slave apply the event.
      02b7dc7b
  7. 25 Dec, 2017 9 commits
  8. 23 Dec, 2017 2 commits
  9. 22 Dec, 2017 5 commits
  10. 21 Dec, 2017 3 commits