1. 12 Oct, 2012 2 commits
    • unknown's avatar
      MDEV-435: Expensive subqueries may be evaluated during optimization in merge_key_fields · e47cdfdf
      unknown authored
      Fix by Sergey Petrunia.
      
      This patch only prevents the evaluation of expensive subqueries during optimization.
      The crash reported in this bug has been fixed by some other patch.
      The fix is to call value->is_null() only when  !value->is_expensive(), because is_null()
      may trigger evaluation of the Item, which in turn triggers subquery evaluation if the
      Item is a subquery.
      e47cdfdf
    • unknown's avatar
      MDEV-3802. Millisecond timeout support in non-blocking client library. · fc941f8a
      unknown authored
      In 10.0, VIO timeouts can be in milliseconds, so we add a new function
      mysql_get_timeout_value_ms() which can return millisecond-precision
      timeout values.
      
      In 5.5, we do not have millisecond precision for timeouts. But we still
      provide the mysql_get_timeout_value_ms() function; this makes it easier
      for applications as they can use the millisecond function in 10.0 and
      still work with the 5.5 version of the client library.
      fc941f8a
  2. 11 Oct, 2012 1 commit
    • unknown's avatar
      MDEV-3804: · 8215ce46
      unknown authored
      MySQL fix for bug#11765413 removed (we have better and more general fix for the problem).
      
      Test suite added.
      8215ce46
  3. 08 Oct, 2012 1 commit
  4. 05 Oct, 2012 1 commit
    • Sergei Golubchik's avatar
      MDEV-3796 various RPM problems · 3012a5d5
      Sergei Golubchik authored
      cmake/cpack_rpm.cmake:
        * mark all cnf files with %config(noreplace)
        * add the forgotten postun script
      sql/sys_vars.cc:
        0 for a string variable means "no default. But datadir has the default value.
      support-files/rpm/server-postin.sh:
        * use mysqld --help to determine the correct datadir in the presence of my.cnf files
          (better than my_print_defaults, because it considers the correct group set).
        * Only create users, and chown/chmod if it's a fresh install, not an upgrade.
        * only run mysql_install_db if datadir does not exist
      3012a5d5
  5. 01 Oct, 2012 2 commits
  6. 08 Oct, 2012 1 commit
    • unknown's avatar
      MDEV-519: mariadb-client-5.5 conflicts with package mytop · c288226e
      unknown authored
      Do not include mytop in mariadb-client-5.5 .deb package.
      
      There is already a Debian mytop package, so we get a package conflict.
      And there is no reason for the MariaDB project to guerrilla-take-over
      mytop maintenance.
      c288226e
  7. 04 Oct, 2012 1 commit
    • Michael Widenius's avatar
      Fixed issues found by buildbot & valgrind: · ea6a4eef
      Michael Widenius authored
      - Wrong thd uses in Item_subselect, could lead to crash
      - Inititalize uninitialized variable in new autoincrement handling code
      
      
      sql/handler.cc:
        More DBUG_PRINT
      sql/item_subselect.cc:
        Wrong thd uses in Item_subselect, could lead to crash
      storage/innobase/handler/ha_innodb.cc:
        Initialize variable needed by upper level. This only happens when auto-increment value wraps over.
      storage/xtradb/handler/ha_innodb.cc:
        Initialize variable needed by upper level. This only happens when auto-increment value wraps over.
      ea6a4eef
  8. 02 Oct, 2012 1 commit
    • Michael Widenius's avatar
      Fixed installation issues on debian: · b722aebd
      Michael Widenius authored
      - Don't abort if plugin table exists
      - Use longer timeout for start/stop of mysqld
      
      debian/dist/Debian/mariadb-server-5.5.postinst:
        Don't abort if plugin table exists
      debian/mariadb-server-5.5.mysql.init:
        Use longer timeout for start/stop of mysqld
      b722aebd
  9. 25 Sep, 2012 1 commit
  10. 24 Sep, 2012 1 commit
  11. 22 Sep, 2012 1 commit
  12. 21 Sep, 2012 1 commit
  13. 18 Sep, 2012 5 commits
    • Michael Widenius's avatar
      This fix+comments was originally made by Alexey Kopytov · af4eeaf5
      Michael Widenius authored
      LP bug #1035225 / MySQL bug #66301: INSERT ... ON DUPLICATE KEY UPDATE +
      innodb_autoinc_lock_mode=1 is broken
      
      The problem was that when certain INSERT ... ON DUPLICATE KEY UPDATE
      were executed concurrently on a table containing an AUTO_INCREMENT
      column as a primary key, InnoDB would correctly reserve non-overlapping
      AUTO_INCREMENT intervals for each statement, but when the server
      encountered the first duplicate key error on the secondary key in one of
      the statements and performed an UPDATE, it also updated the internal
      AUTO_INCREMENT value to the one from the existing row that caused a
      duplicate key error, even though the AUTO_INCREMENT value was not
      specified explicitly in the UPDATE clause. It would then proceed with
      using AUTO_INCREMENT values the range reserved previously by another
      statement, causing duplicate key errors on the AUTO_INCREMENT column.
      
      Fixed by changing write_record() to ensure that in case of a duplicate
      key error the internal AUTO_INCREMENT counter is only updated when the
      AUTO_INCREMENT value was explicitly updated by the UPDATE
      clause. Otherwise it is restored to what it was before the duplicate key
      error, as that value is unused and can be reused for subsequent
      successfully inserted rows.
      
      sql/sql_insert.cc:
        Don't update next_insert_id to the value of a row found during ON DUPLICATE KEY UPDATE.
      sql/sql_parse.cc:
        Added DBUG_SYNC
      sql/table.h:
        Added next_number_field_updated flag to detect changing of auto increment fields.
        Moved fields a bit to get bool fields after each other (better alignment)
      af4eeaf5
    • Michael Widenius's avatar
      Automatic merge · 6f57fc50
      Michael Widenius authored
      6f57fc50
    • Michael Widenius's avatar
      Fixed test for ps-protocol · f3034236
      Michael Widenius authored
      f3034236
    • Michael Widenius's avatar
      Fix for MDEV-533: Confusing error code when doing auto-increment insert for out-of-range values · ae5bc059
      Michael Widenius authored
      create table t1 (a smallint primary key auto_increment);
      insert into t1 values(32767);
      insert into t1 values(NULL);
      ERROR 1062 (23000): Duplicate entry '32767' for key 'PRIMARY
      
      Now on always gets error HA_ERR_AUTOINC_RANGE=167 "Out of range value for column", independent of
      store engine, SQL Mode or number of inserted rows. This is an unique error that is easier to test for in replication.
      
      Another bug fix is that we now get an error when trying to insert a too big auto-generated value, even in non-strict mode.
      Before one get insted the max column value inserted.
      This patch also fixes some issues with inserting negative numbers in an auto-increment column.
      Fixed the ER_DUP_ENTRY and HA_ERR_AUTOINC_ERANGE are compared the same between master and slave.
      This ensures that replication works between an old server to a new slave for auto-increment overflow errors.
      Added SQLSTATE errors for handler errors
      
      Smaller bug fixes:
      * Added warnings for duplicate key errors when using INSERT IGNORE
      * Fixed bug when using --skip-log-bin followed by --log-bin, which did set log-bin to "0"
      * Allow one to see how cmake is called by using --just-print --just-configure
      
      
      BUILD/FINISH.sh:
        --just-print --just-configure now shows how cmake would be invoked. Good for understanding parameters to cmake.
      cmake/configure.pl:
        --just-print --just-configure now shows how cmake would be invoked. Good for understanding parameters to cmake.
      include/CMakeLists.txt:
        Added handler_state.h
      include/handler_state.h:
        SQLSTATE for handler error messages.
        Required for HA_ERR_AUTOINC_ERANGE, but solves also some other cases.
      mysql-test/extra/binlog_tests/binlog.test:
        Fixed old wrong behaviour
        Added more tests
      mysql-test/extra/binlog_tests/binlog_insert_delayed.test:
        Reset binary log to only print what's necessary in show_binlog_events
      mysql-test/extra/rpl_tests/rpl_auto_increment.test:
        Update to new error codes
      mysql-test/extra/rpl_tests/rpl_insert_delayed.test:
        Ignore warnings as this depends on how the test is run
      mysql-test/include/strict_autoinc.inc:
        On now gets an error on overflow
      mysql-test/r/auto_increment.result:
        Update results after fixing error message
      mysql-test/r/auto_increment_ranges_innodb.result:
        Test new behaviour
      mysql-test/r/auto_increment_ranges_myisam.result:
        Test new behaviour
      mysql-test/r/commit_1innodb.result:
        Added warnings for duplicate key error
      mysql-test/r/create.result:
        Added warnings for duplicate key error
      mysql-test/r/insert.result:
        Added warnings for duplicate key error
      mysql-test/r/insert_select.result:
        Added warnings for duplicate key error
      mysql-test/r/insert_update.result:
        Added warnings for duplicate key error
      mysql-test/r/mix2_myisam.result:
        Added warnings for duplicate key error
      mysql-test/r/myisam_mrr.result:
        Added warnings for duplicate key error
      mysql-test/r/null_key.result:
        Added warnings for duplicate key error
      mysql-test/r/replace.result:
        Update to new error codes
      mysql-test/r/strict_autoinc_1myisam.result:
        Update to new error codes
      mysql-test/r/strict_autoinc_2innodb.result:
        Update to new error codes
      mysql-test/r/strict_autoinc_3heap.result:
        Update to new error codes
      mysql-test/r/trigger.result:
        Added warnings for duplicate key error
      mysql-test/r/xtradb_mrr.result:
        Added warnings for duplicate key error
      mysql-test/suite/binlog/r/binlog_innodb_row.result:
        Updated result
      mysql-test/suite/binlog/r/binlog_row_binlog.result:
        Out of range data for auto-increment is not inserted anymore
      mysql-test/suite/binlog/r/binlog_statement_insert_delayed.result:
        Updated result
      mysql-test/suite/binlog/r/binlog_stm_binlog.result:
        Out of range data for auto-increment is not inserted anymore
      mysql-test/suite/binlog/r/binlog_unsafe.result:
        Updated result
      mysql-test/suite/innodb/r/innodb-autoinc.result:
        Update to new error codes
      mysql-test/suite/innodb/r/innodb-lock.result:
        Updated results
      mysql-test/suite/innodb/r/innodb.result:
        Updated results
      mysql-test/suite/innodb/r/innodb_bug56947.result:
        Updated results
      mysql-test/suite/innodb/r/innodb_mysql.result:
        Updated results
      mysql-test/suite/innodb/t/innodb-autoinc.test:
        Update to new error codes
      mysql-test/suite/maria/maria3.result:
        Updated result
      mysql-test/suite/maria/mrr.result:
        Updated result
      mysql-test/suite/optimizer_unfixed_bugs/r/bug43617.result:
        Updated result
      mysql-test/suite/rpl/r/rpl_auto_increment.result:
        Update to new error codes
      mysql-test/suite/rpl/r/rpl_insert_delayed,stmt.rdiff:
        Updated results
      mysql-test/suite/rpl/r/rpl_loaddatalocal.result:
        Updated results
      mysql-test/t/auto_increment.test:
        Update to new error codes
      mysql-test/t/auto_increment_ranges.inc:
        Test new behaviour
      mysql-test/t/auto_increment_ranges_innodb.test:
        Test new behaviour
      mysql-test/t/auto_increment_ranges_myisam.test:
        Test new behaviour
      mysql-test/t/replace.test:
        Update to new error codes
      mysys/my_getopt.c:
        Fixed bug when using --skip-log-bin followed by --log-bin, which did set log-bin to "0"
      sql/handler.cc:
        Ignore negative values for signed auto-increment columns
        Always give an error if we get an overflow for an auto-increment-column (instead of inserting the max value)
        Ensure that the row number is correct for the out-of-range-value error message.
        
        
        ******
        Fixed wrong printing of column namn for "Out of range value" errors
        Fixed that INSERT_ID is correctly replicated also for out-of-range autoincrement values
        Fixed that print_keydup_error() can also be used to generate warnings
        ******
        Return HA_ERR_AUTOINC_ERANGE (167) instead of ER_WARN_DATA_OUT_OF_RANGE for auto-increment overflow
      sql/handler.h:
        Allow INSERT IGNORE to continue also after out-of-range inserts.
        Fixed that print_keydup_error() can also be used to generate warnings
      sql/log_event.cc:
        Added DBUG_PRINT
        Fixed the ER_AUTOINC_READ_FAILED, ER_DUP_ENTRY and HA_ERR_AUTOINC_ERANGE are compared the same between master and slave.
        This ensures that replication works between an old server to a new slave for auto-increment overflow errors.
      sql/sql_insert.cc:
        Add warnings for duplicate key errors when using INSERT IGNORE
      sql/sql_state.c:
        Added handler errors
      sql/sql_table.cc:
        Update call to print_keydup_error()
      storage/innobase/handler/ha_innodb.cc:
        Fixed increment handling of auto-increment columns to be consistent with rest of MariaDB.
      storage/xtradb/handler/ha_innodb.cc:
        Fixed increment handling of auto-increment columns to be consistent with rest of MariaDB.
      ae5bc059
    • unknown's avatar
      Merged the fix for bug lp:1009187, mdev-373 · caf31114
      unknown authored
      caf31114
  14. 17 Sep, 2012 2 commits
  15. 14 Sep, 2012 1 commit
    • unknown's avatar
      Fix bug lp:1009187, mdev-373, mysql bug#58628 · b917fb63
      unknown authored
      Analysis:
      The queries in question use the [unique | index]_subquery execution methods.
      These methods reuse the ref keys constructed by create_ref_for_key(). The
      way create_ref_for_key() works is that it doesn't store in ref.key_copy[]
      store_key elements that represent constants. In particular it doesn't store
      the store_key for NULL constants.
      
      The execution of [unique | index]_subquery calls
      subselect_uniquesubquery_engine::copy_ref_key, which in addition to copy
      the left IN argument into a index lookup key, is supposed to detect if
      the left IN argument contains NULLs. Since the store_key for the NULL
      constant is not copied into the key array, the null is not detected, and
      execution erroneously proceeds as if it should look for a complete match.
      
      Solution:
      The solution (unlike MySQL) is to reuse already computed information about
      NULL presence. Item_in_optimizer::val_int already finds out if the left IN
      operand contains NULLs. The fix propagates this to the execution methods
      subselect_[unique | index]subquery_engine::exec so it knows if there were
      NULL values independent of the presence of keys.
      
      In addition the patch siplifies copy_ref_key() and the logic that hanldes
      the case of NULLs in the left IN operand.
      b917fb63
  16. 13 Sep, 2012 1 commit
    • Michael Widenius's avatar
      Added THD::utime_after_query to avoid calling current_utime() twice for every end-of-query · 32e4c7e1
      Michael Widenius authored
      Increment long_query_count also if thd->variables.log_slow_rate_limit is used
      Added new state "Writing to binlog"
      
      
      sql/sql_class.h:
        Added THD::utime_after_query to avoid calling current_utime() twice for every end-of-query
      sql/sql_parse.cc:
        Increment long_query_count also if thd->variables.log_slow_rate_limit is used
        Removed extra calls to thd_proc_info(thd, "logging slow query") and thd->current_utime();
      sql/sql_table.cc:
        Added new state "Writing to binlog"
      32e4c7e1
  17. 10 Sep, 2012 3 commits
  18. 08 Sep, 2012 2 commits
    • Michael Widenius's avatar
      Added new status variables: · 3a793b9d
      Michael Widenius authored
      feature_dynamic_columns,feature_fulltext,feature_gis,feature_locale,feature_subquery,feature_timezone,feature_trigger,feature_xml
      Opened_views, Executed_triggers, Executed_events
      Added new process status 'updating status' as part of 'freeing items'
      
      mysql-test/r/features.result:
        Test of feature_xxx status variables
      mysql-test/r/mysqld--help.result:
        Removed duplicated 'language' variable.
      mysql-test/r/view.result:
        Test of opened_views
      mysql-test/suite/rpl/t/rpl_start_stop_slave.test:
        Write more information on failure
      mysql-test/t/features.test:
        Test of feature_xxx status variables
      mysql-test/t/view.test:
        Test of opened_views
      sql/event_scheduler.cc:
        Increment executed_events status variable
      sql/field.cc:
        Increment status variable
      sql/item_func.cc:
        Increment status variable
      sql/item_strfunc.cc:
        Increment status variable
      sql/item_subselect.cc:
        Increment status variable
      sql/item_xmlfunc.cc:
        Increment status variable
      sql/mysqld.cc:
        Add new status variables to 'show status'
      sql/mysqld.h:
        Added executed_events
      sql/sql_base.cc:
        Increment status variable
      sql/sql_class.h:
        Add new status variables
      sql/sql_parse.cc:
        Added new process status 'updating status' as part of 'freeing items'
      sql/sql_trigger.cc:
        Increment status variable
      sql/sys_vars.cc:
        Increment status variable
      sql/tztime.cc:
        Increment status variable
      3a793b9d
    • Michael Widenius's avatar
      Automatic merge · 5161b3dd
      Michael Widenius authored
      5161b3dd
  19. 07 Sep, 2012 3 commits
    • Michael Widenius's avatar
      Better error message when using --language or --log-bin · 2fc4c751
      Michael Widenius authored
      Simplify code
      
      sql/derror.cc:
        Better error message
      sql/mysqld.cc:
        Simplify usage of lc_messages_dir_ptr.
        Don't give warnings that --log-bin should be used if --log-bin or --skip-log-bin is used.
      2fc4c751
    • unknown's avatar
      Fix of MDEV-511. · 83bdf56e
      unknown authored
      As far as we reopen tables so TABLE become invalid we should remove the pointer on cleanup().
      83bdf56e
    • unknown's avatar
      Fix of MDEV-511. · 22de18dd
      unknown authored
      As far as we reopen tables so TABLE become invalid we should remove the pointer on cleanup().
      22de18dd
  20. 06 Sep, 2012 1 commit
  21. 05 Sep, 2012 6 commits
  22. 04 Sep, 2012 2 commits