An error occurred fetching the project authors.
  1. 16 Jul, 2010 1 commit
    • Sergey Petrunya's avatar
      Fix @@optimizer_switch support · aed88ae2
      Sergey Petrunya authored
      - Let "mysqld  --help --verbose" list all optimizer options
      - Make it possible to add new @@optimizer_switch flags w/o causing .result 
        changes all over the testsuite:
        = Remove "select @@optimizer_switch" from tests that do not need all switches
        = Move @@optimizer_switch-specific tests to t/optimizer_switch.test
      aed88ae2
  2. 10 Jul, 2010 1 commit
    • unknown's avatar
      Subquery cache (MWL#66) added. · ea1b32a3
      unknown authored
      libmysqld/Makefile.am:
        The new file added.
      mysql-test/r/index_merge_myisam.result:
        subquery_cache optimization option added.
      mysql-test/r/myisam_mrr.result:
        subquery_cache optimization option added.
      mysql-test/r/subquery_cache.result:
        The subquery cache tests added.
      mysql-test/r/subselect3.result:
        Subquery cache switched off to avoid changing read statistics.
      mysql-test/r/subselect3_jcl6.result:
        Subquery cache switched off to avoid changing read statistics.
      mysql-test/r/subselect_no_mat.result:
        subquery_cache optimization option added.
      mysql-test/r/subselect_no_opts.result:
        subquery_cache optimization option added.
      mysql-test/r/subselect_no_semijoin.result:
        subquery_cache optimization option added.
      mysql-test/r/subselect_sj.result:
        subquery_cache optimization option added.
      mysql-test/r/subselect_sj_jcl6.result:
        subquery_cache optimization option added.
      mysql-test/t/subquery_cache.test:
        The subquery cache tests added.
      mysql-test/t/subselect3.test:
        Subquery cache switched off to avoid changing read statistics.
      sql/CMakeLists.txt:
        The new file added.
      sql/Makefile.am:
        The new files added.
      sql/item.cc:
        Expression cache item (Item_cache_wrapper) added.
        Item_ref and Item_field fixed for correct usage of result field and fast resolwing in SP.
      sql/item.h:
        Expression cache item (Item_cache_wrapper) added.
        Item_ref and Item_field fixed for correct usage of result field and fast resolwing in SP.
      sql/item_cmpfunc.cc:
        Subquery cache added.
      sql/item_cmpfunc.h:
        Subquery cache added.
      sql/item_subselect.cc:
        Subquery cache added.
      sql/item_subselect.h:
        Subquery cache added.
      sql/item_sum.cc:
        Registration of subquery parameters added.
      sql/mysql_priv.h:
        subquery_cache optimization option added.
      sql/mysqld.cc:
        subquery_cache optimization option added.
      sql/opt_range.cc:
        Fix due to subquery cache.
      sql/opt_subselect.cc:
        Parameters of the function cahnged.
      sql/procedure.h:
        .h file guard added.
      sql/sql_base.cc:
        Registration of subquery parameters added.
      sql/sql_class.cc:
        Option to allow add indeces to temporary table.
      sql/sql_class.h:
        Item iterators added.
        Option to allow add indeces to temporary table.
      sql/sql_expression_cache.cc:
        Expression cache for caching subqueries added.
      sql/sql_expression_cache.h:
        Expression cache for caching subqueries added.
      sql/sql_lex.cc:
        Registration of subquery parameters added.
      sql/sql_lex.h:
        Registration of subqueries and subquery parameters added.
      sql/sql_select.cc:
        Subquery cache added.
      sql/sql_select.h:
        Subquery cache added.
      sql/sql_union.cc:
        A new parameter to the function added.
      sql/sql_update.cc:
        A new parameter to the function added.
      sql/table.cc:
        Procedures to manage temporarty tables index added.
      sql/table.h:
        Procedures to manage temporarty tables index added.
      storage/maria/ha_maria.cc:
        Fix of handler to allow destoy a table in case of error during the table creation.
      storage/maria/ha_maria.h:
        .h file guard added.
      storage/myisam/ha_myisam.cc:
        Fix of handler to allow destoy a table in case of error during the table creation.
      ea1b32a3
  3. 26 May, 2010 1 commit
  4. 05 May, 2010 1 commit
    • Georgi Kodinov's avatar
      On behalf of Kristofer : · bbdd8d70
      Georgi Kodinov authored
      Bug#53417 my_getwd() makes assumptions on the buffer sizes which not always hold true
            
      The mysys library contains many functions for rewriting file paths. Most of these
      functions makes implicit assumptions on the buffer sizes they write to. If a path is put
      in my_realpath() it will propagate to my_getwd() which assumes that the buffer holding
      the path name is greater than 2. This is not true in cases.
            
      In the special case where a VARBIN_ITEM is passed as argument to the LOAD_FILE function
      this can lead to a crash.
            
      This patch fixes the issue by introduce more safe guards agaist buffer overruns.
      bbdd8d70
  5. 03 May, 2010 1 commit
    • Kristofer Pettersson's avatar
      Bug#50373 --secure-file-priv="" · bf1887fa
      Kristofer Pettersson authored
      Iterative patch improvement. Previously committed patch
      caused wrong result on Windows. The previous patch also
      broke secure_file_priv for symlinks since not all file
      paths which must be compared against this variable are
      normalized using the same norm.
      
      The server variable opt_secure_file_priv wasn't
      normalized properly and caused the operations
      LOAD DATA INFILE .. INTO TABLE ..
      and
      SELECT load_file(..)
      to do different interpretations of the 
      --secure-file-priv option.
           
      The patch moves code to the server initialization
      routines so that the path always is normalized
      once and only once.
            
      It was also intended that setting the option
      to an empty string should be equal to 
      lifting all previously set restrictions. This
      is also fixed by this patch.
      
      
      mysql-test/r/loaddata.result:
        * Removed test code which will currently break the much used --mem feature of mtr.
      mysql-test/t/loaddata.test:
        * Removed test code which will currently break the much used --mem feature of mtr.
      sql/item_strfunc.cc:
        * Replaced string comparing code on opt_secure_file_priv with an interface which guarantees that both file paths are normalized using the same norm on all platforms.
      sql/mysql_priv.h:
        * Added signature for is_secure_file_path()
      sql/mysqld.cc:
        * New function for checking if a path compatible with the secure path restriction.
        * Added initialization of the opt_secure_file_priv variable.
      sql/sql_class.cc:
        * Replaced string comparing code on opt_secure_file_priv with an interface which guarantees that both file paths are normalized using the same norm on all platforms.
      sql/sql_load.cc:
        * Replaced string comparing code on opt_secure_file_priv with an interface which guarantees that both file paths are normalized using the same norm on all platforms.
      bf1887fa
  6. 09 Apr, 2010 1 commit
  7. 08 Apr, 2010 2 commits
    • Sergei Golubchik's avatar
      fixes for buildbot: · 0c724e00
      Sergei Golubchik authored
      update test results
      fix compilation failure on windows
      fix for ps-protocol
      
      mysql-test/r/plugin.result:
        make sure the PS handle is closed
      mysql-test/t/plugin.test:
        make sure the PS handle is closed
      sql/mysqld.cc:
        compilation failure: lable without a statement.
      sql/sql_plugin.cc:
        make plugin lock and plugin unlock use the same format of the dbug info string.
        print the ref_count *after* the lock and *after* the unlock.
      0c724e00
    • Sergei Golubchik's avatar
      MWL#43 CREATE TABLE options (by Sanja) · b4925961
      Sergei Golubchik authored
      Docs/sp-imp-spec.txt:
        New sql_mode added.
      include/my_base.h:
        Flag in frm of create options.
      libmysqld/CMakeLists.txt:
        New files added.
      libmysqld/Makefile.am:
        New files added.
      mysql-test/r/events_bugs.result:
        New sql_mode added.
      mysql-test/r/information_schema.result:
        New sql_mode added.
      mysql-test/r/sp.result:
        New sql_mode added.
      mysql-test/r/system_mysql_db.result:
        New sql_mode added.
      mysql-test/suite/funcs_1/r/is_columns_mysql.result:
        New sql_mode added.
      mysql-test/suite/funcs_1/r/is_columns_mysql_embedded.result:
        New sql_mode added.
      mysql-test/t/events_bugs.test:
        New sql_mode added.
      mysql-test/t/sp.test:
        New sql_mode added.
      scripts/mysql_system_tables.sql:
        New sql_mode added.
      scripts/mysql_system_tables_fix.sql:
        New sql_mode added.
      sql/CMakeLists.txt:
        New files added.
      sql/Makefile.am:
        New files added.
      sql/event_db_repository.cc:
        New sql_mode added.
      sql/field.cc:
        Create options support added.
      sql/field.h:
        Create options support added.
      sql/ha_partition.cc:
        Create options support added.
      sql/handler.cc:
        Create options support added.
      sql/handler.h:
        Create options support added.
      sql/log_event.h:
        New sql_mode added.
      sql/mysql_priv.h:
        New sql_mode added.
      sql/mysqld.cc:
        New sql_mode added.
      sql/share/errmsg.txt:
        New error messages added.
      sql/sp.cc:
        New sql_mode added.
      sql/sp_head.cc:
        Create options support added.
      sql/sql_class.cc:
        Create options support added.
        Debug added.
      sql/sql_class.h:
        Create options support added.
      sql/sql_insert.cc:
        my_safe_a* moved to mysqld_priv.h
      sql/sql_lex.h:
        Create options support added.
      sql/sql_parse.cc:
        Create options support added.
      sql/sql_show.cc:
        Create options support added.
      sql/sql_table.cc:
        Create options support added.
      sql/sql_view.cc:
        New sql_mode added.
      sql/sql_yacc.yy:
        Create options support added.
      sql/structs.h:
        Create options support added.
      sql/table.cc:
        Create options support added.
      sql/table.h:
        Create options support added.
      sql/unireg.cc:
        Create options support added.
      storage/example/ha_example.cc:
        Create options example.
      storage/example/ha_example.h:
        Create options example.
      storage/pbxt/src/discover_xt.cc:
        Create options support added.
      b4925961
  8. 06 Apr, 2010 1 commit
    • Michael Widenius's avatar
      Removed compiler warnings · c8b3cd4a
      Michael Widenius authored
      Removed random failures from test suite
      
      mysql-test/extra/rpl_tests/rpl_insert_id_pk.test:
        Make test predicatable.
      mysql-test/include/maria_empty_logs.inc:
        We can't use 'Threads_connected' for syncronization, as the 'check_warnings' thread that just quit may still be counted in 'Threads_connected'
        Now we just wait until MySQLD answers again, which should be good enough for our purposes
      mysql-test/suite/binlog/r/binlog_index.result:
        Updated results file
      mysql-test/suite/binlog/t/binlog_index-master.opt:
        Added option file to not get stack traces in .err file.
      mysql-test/suite/binlog/t/binlog_index.test:
        Added 'flush tables' to remove warning about crashed suppression file from logs
      mysql-test/suite/pbxt/r/multi_statement.result:
        Updated results
      mysql-test/suite/pbxt/t/multi_statement-master.opt:
        Added options so that slow query testing makes sense
      sql/events.cc:
        Don't write Event Scheduler startup message if warnings are turned off.
      sql/handler.cc:
        Removed compiler warning
      sql/log.cc:
        Removed compiler warning
      sql/mysqld.cc:
        Added option 'test-expect-abort'; If this is set, we don't write message to log in case of 'DBUG_ABORT'.
        (Gives us smaller, easier to read log files)
      sql/set_var.cc:
        Removed compiler warning
      sql/slave.cc:
        Removed compiler warning
      sql/sql_plugin.cc:
        Don't write warnings about disabled plugin if using --log_warnings=0
      storage/xtradb/include/ut0lst.h:
        Removed compiler warning
      support-files/compiler_warnings.supp:
        Supress warning from xtradb
      c8b3cd4a
  9. 02 Apr, 2010 1 commit
  10. 20 Apr, 2010 1 commit
    • Kristofer Pettersson's avatar
      Bug#50373 --secure-file-priv="" · d70f897e
      Kristofer Pettersson authored
      Correcting a patch misstake. The converted file path is placed in 'buff' not in opt_secure_file_priv.
      
      mysql-test/r/loaddata.result:
        * Updated test case; Since secure_file_priv now is normalized the previous values are changed.
      sql/mysqld.cc:
        * Fixed patch misstake
      d70f897e
  11. 16 Apr, 2010 1 commit
    • Kristofer Pettersson's avatar
      Bug#50373 --secure-file-priv="" · 2fdbb288
      Kristofer Pettersson authored
      The server variable opt_secure_file_priv wasn't
      normalized properly and caused the operations
      LOAD DATA INFILE .. INTO TABLE ..
      and
      SELECT load_file(..)
      to do different interpretations of the 
      --secure-file-priv option.
      
      The patch moves code to the server initialization
      routines so that the path always is normalized
      once and only once.
      
      It was also intended that setting the option
      to an empty string should be equal to 
      lifting all previously set restrictions. This
      is also fixed by this patch.
      
      
      sql/mysqld.cc:
        * If --secure_file_option is an empty string then the option variable
          should be unset.
        * opt_secure_file_option should be normalized once when the server starts.
      sql/sql_load.cc:
        * moved variable normalization code to fix_paths()
      2fdbb288
  12. 31 Mar, 2010 1 commit
  13. 30 Mar, 2010 1 commit
    • Michael Widenius's avatar
      Removed compiler warning · d5d4905f
      Michael Widenius authored
      Disable pbxt for test cases not using pbxt (speeds up test suite)
      
      extra/comp_err.c:
        Added cast to get rid of compiler warning
      extra/libevent/kqueue.c:
        Added cast to get rid of compiler warning
      mysql-test/lib/mtr_cases.pm:
        Use --skip-pbxt for test cases that doesn't need pbxt
        Collect default-storage-engine from suite.opt file (should actually be my.cnf file, but that wasn't easy to do)
      mysql-test/suite/pbxt/t/suite.opt:
        Added marker for mysql-test-run.pl that this suite require pbxt
      mysys/mf_keycache.c:
        Use LINT_INIT() to remove compiler warnings
      mysys/my_gethostbyname.c:
        Remove compiler warnings
      sql/handler.cc:
        Reset variable that may be used uninitialized
      sql/item.h:
        Remove compiler warning
      sql/mysqld.cc:
        Use LINT_INIT() to remove compiler warnings
      sql/sql_class.h:
        Remove compiler warning
      sql/sql_table.cc:
        Ensure variable is always set (to remove compiler warning)
      sql/sql_view.cc:
        Use LINT_INIT() to remove compiler warnings
      storage/maria/ma_loghandler.c:
        Use LINT_INIT() to remove compiler warnings
      storage/myisammrg/ha_myisammrg.cc:
        Fixed wrong type to printf
      storage/myisammrg/myrg_open.c:
        Use LINT_INIT() to remove compiler warnings
      storage/xtradb/include/ut0lst.h:
        Trivial change of macro to remove compiler warning
      strings/ctype-ucs2.c:
        Use LINT_INIT() to remove compiler warnings
      strings/ctype-utf8.c:
        Use LINT_INIT() to remove compiler warnings
      support-files/compiler_warnings.supp:
        Suppress some not relevant warnings
      unittest/mysys/waiting_threads-t.c:
        Don't use ftruncate() as this gives warning about ignored return value
      d5d4905f
  14. 29 Mar, 2010 1 commit
    • Sergei Golubchik's avatar
      pluggable auth with plugin examples · f6ba3a74
      Sergei Golubchik authored
      Makefile.am:
        add new API files to the check_abi rule,
        remove duplicates
      client/CMakeLists.txt:
        now a client can use dlopen too
      client/Makefile.am:
        be csh-friendly
      include/my_global.h:
        add dummy plugs for dlopen and co.
        for the code that needs them to work in static builds
      mysys/Makefile.am:
        be csh-friendly
      plugin/auth/dialog.c:
        typo fixed
      f6ba3a74
  15. 25 Mar, 2010 1 commit
    • Sergey Vojtovich's avatar
      BUG#51866 - crash with repair by sort and fulltext keys · e99136cf
      Sergey Vojtovich authored
      Repairing MyISAM table with fulltext indexes and low
      myisam_sort_buffer_size may crash the server.
      
      Estimation of number of index entries was done incorrectly,
      causing further assertion failure or server crash.
      
      Docs note: min value for myisam_sort_buffer_size has been
      changed from 4 to 4096.
      
      mysql-test/r/fulltext.result:
        A test case for BUG#51866.
      mysql-test/r/myisam.result:
        Min value for myisam_sort_buffer_size is 4096.
      mysql-test/r/variables.result:
        Min value for myisam_sort_buffer_size is 4096.
      mysql-test/suite/sys_vars/r/myisam_sort_buffer_size_basic_32.result:
        Min value for myisam_sort_buffer_size is 4096.
      mysql-test/t/fulltext.test:
        A test case for BUG#51866.
      sql/mysqld.cc:
        Min value for myisam_sort_buffer_size is 4096.
      storage/myisam/mi_check.c:
        When estimating number of index entries for external
        fulltext parser, take into account that key_length may
        be bigger than myisam_sort_buffer_size. Reuse logic
        from _create_index_by_sort(): force MIN_SORT_BUFFER to
        be min value for myisam_sort_buffer_size.
        
        Another problem is that ftkey_nr has no other meaning
        than serial number of fulltext index starting with 1.
        We can't say if this key using built-in or external
        parser basing on it's value. In other words we always
        entered if-branch for external parser. At this point,
        the only way to check if we use default parser is to
        compare keyinfo::parser with &ft_default_parser.
      storage/myisam/sort.c:
        Get rid of MIN_SORT_MEMORY, use MIN_SORT_BUFFER instead
        (defined in myisamdef.h, has the same value and purpose).
      e99136cf
  16. 09 Mar, 2010 2 commits
    • Michael Widenius's avatar
      Added count of my_sync calls (to SHOW STATUS) · 4ca2c06d
      Michael Widenius authored
      tmp_table_size can now be set to 0 (to disable in memory internal temp tables)
      Improved speed for internal Maria temp tables:
      - Don't use packed keys, except with long text fields.
      - Don't copy key all accessed pages during key search.
      Some new benchmark tests to sql-bench (for group by)
      
      BUILD/compile-pentium64-gcov:
        Update script to use same pentium_config flags as other tests
      BUILD/compile-pentium64-gprof:
        Update script to use same pentium_config flags as other tests
      include/my_sys.h:
        Added count of my_sync calls
      mysql-test/r/variables.result:
        tmp_table_size can now be set to 0
      sql-bench/test-select.sh:
        Added some new test for GROUP BY on a not key field and group by with different order by
      sql/mysqld.cc:
        Added count of my_sync calls
        tmp_table_size can now be set to 0 (to disable in memory internal temp tables)
      sql/sql_select.cc:
        If tmp_table_size is 0, don't use in memory temp tables (good for benchmarking MyISAM/Maria temp tables)
        Don't pack keys for Maria tables;  The 8K page size makes packed keys too slow for temp tables.
      storage/maria/ma_key_recover.h:
        Moved definition to maria_def.h
      storage/maria/ma_page.c:
        Moved code used to simplify comparing of identical Maria tables to own function (page_cleanup())
        Fixed that one can read a page with a read lock.
      storage/maria/ma_rkey.c:
        For not exact key reads, cache the page where we found key (to speed up future read-next/read-prev calls)
      storage/maria/ma_search.c:
        Moved code to cache last key page to separate function.
        Instead of copying pages, only get a link to the page. This notable speeds up key searches on bigger tables.
      storage/maria/ma_write.c:
        Added comment
      storage/maria/maria_def.h:
        Moved page_cleanup() to separate function.
      4ca2c06d
    • unknown's avatar
      MWL#68 Subquery optimization: Efficient NOT IN execution with NULLs · dd96d55f
      unknown authored
      * Implemented a second partial matching strategy via table scan.
        This strategy is a fallback when there is no memory for rowid merging.
      
      * Refactored the selection and creation of partial matching strategies,
        so that the choice of strategy is encapsulated in a separate method
        choose_partial_match_strategy().
      
      * Refactored the representation of partial match strategies so that:
        - each strategy is represented by a polymorphic class, and
        - the base class for all partial match strategies contains common
          execution code.
      
      * Added an estimate of the memory needed for the rowid merge strategy,
        and the system variable "rowid_merge_buff_size" to control the maximum
        memory to be used by the rowid merge algorithm.
      
      * Added two optimizer_switch system variables to control the choice of
        partial match strategy:
        "partial_match_rowid_merge", "partial_match_table_scan".
      
      * Fixed multiple problems with deallocation of resources by the partial
        match strategies.
      
      
      sql/mysql_priv.h:
        * Added two optimizer_switch system variables to control the choice of
          partial match strategy:
          "partial_match_rowid_merge", "partial_match_table_scan".
      sql/mysqld.cc:
        * Added two optimizer_switch system variables to control the choice of
          partial match strategy:
          "partial_match_rowid_merge", "partial_match_table_scan".
        * Added a system variable "rowid_merge_buff_size" to control the maximum
          memory to be used by the rowid merge algorithm.
      sql/set_var.cc:
        * Added a system variable "rowid_merge_buff_size" to control the maximum
          memory to be used by the rowid merge algorithm.
      sql/sql_class.h:
        * Added a system variable "rowid_merge_buff_size" to control the maximum
          memory to be used by the rowid merge algorithm.
      support-files/build-tags:
        Newer versions of BZR require the recursive flag in order to list all files.
      dd96d55f
  17. 03 Mar, 2010 1 commit
  18. 01 Mar, 2010 1 commit
  19. 26 Feb, 2010 1 commit
    • Staale Smedseng's avatar
      Bug #45058 init_available_charsets uses double checked locking · a5c38054
      Staale Smedseng authored
      A client doing multiple mysql_library_init() and
      mysql_library_end() calls over the lifetime of the process may
      experience lost character set data, potentially even a
      SIGSEGV.
      
      This patch reinstates the reloading of character set data when
      a mysql_library_init() is done after a mysql_library_end().
      
      a5c38054
  20. 25 Feb, 2010 1 commit
    • Andrei Elkin's avatar
      Bug #51089 SHOW STATUS LIKE 'Slave_running' is not compatible with `SHOW SLAVE STATUS' · eea748cc
      Andrei Elkin authored
      backporting of bug@30703 to 5.1.
      The fixes are backed up with a regression test.
      
      
      
      mysql-test/include/test_fieldsize.inc:
        waiting to stop is to be actually exclusively for SQL thread.
      mysql-test/suite/rpl/r/rpl_show_slave_running.result:
        new results file is added.
      mysql-test/suite/rpl/t/rpl_show_slave_running.test:
        regression test for bug#30703 is added.
      sql/mysqld.cc:
        refining `show status like slave_running' handler to correspond to one of
        `show slave status'.
      sql/slave.cc:
        A dbug-sync point is added to complement the regression test.
      eea748cc
  21. 16 Feb, 2010 1 commit
  22. 11 Feb, 2010 1 commit
  23. 10 Feb, 2010 1 commit
    • Michael Widenius's avatar
      When one does a drop table, the indexes are not flushed to disk before drop... · c7b97d14
      Michael Widenius authored
      When one does a drop table, the indexes are not flushed to disk before drop anymore (with MyISAM/Maria)
      myisam-recover options changed from OFF to 'DEFAULT' to get less change of data loss when using MyISAM.
      (The disadvantage is that changed MyISAM tables will be checked at access time; Use --myisam-recover=OFF for old behavior)
      Don't call extra(HA_EXTRA_FORCE_REOPEN) in ALTER TABLE if table is locked as this will mark table as crashed!
      Added assert to detect if we accidently would use MyISAM versioning in MySQL
      
      include/my_base.h:
        Mark NOT_USED as USED, as we now use this as a flag to not call extra()
      mysql-test/mysql-test-run.pl:
        Don't write all options when there is something wrong with the arguments
      mysql-test/r/sp-destruct.result:
        Add missing flush of mysql.proc (as the test copied live tables)
      mysql-test/r/variables.result:
        myisam-recover options changed to 'default'
      mysql-test/r/view.result:
        Don't show create time in result
      mysql-test/suite/maria/t/maria-recovery2-master.opt:
        Don't run test with myisam-recover (as this produces extra warnings during simulated death)
      mysql-test/t/sp-destruct.test:
        Add missing flush of mysql.proc (as the test copied live tables)
      mysql-test/t/view.test:
        Don't show create time in result
      sql/lock.cc:
        Added marker if table was deleted to argument list
      sql/mysql_priv.h:
        Added marker if table was deleted to argument list
      sql/mysqld.cc:
        myisam-recover options changed from OFF to 'DEFAULT' to get less change of data loss when using MyISAM
        Allow one to specify OFF as argument to myisam-recover (was default before but one couldn't specify it)
      sql/sql_base.cc:
        Mark if table is going to be deleted
      sql/sql_delete.cc:
        Mark if table is going to be deleted
      sql/sql_table.cc:
        Mark if table is going to be deleted
        Don't call extra(HA_EXTRA_FORCE_REOPEN) in ALTER TABLE if table is locked as this will mark table as crashed!
      sql/table.cc:
        Signal to handler if table is getting deleted as part of getting droped from table cache.
      sql/table.h:
        Added marker if table is going to be deleted.
      storage/maria/ha_maria.cc:
        Don't search for transaction handler if file is not transactional or outside of transaction
        (Fixed possible core dump)
      storage/maria/ma_blockrec.c:
        Don't write changed information if table is going to be deleted.
      storage/maria/ma_close.c:
        Don't write changed information if table is going to be deleted.
      storage/maria/ma_extra.c:
        Mark tables that are deleted as crased, to ensure good behavior on restart if we suddenly crash.
      storage/maria/ma_locking.c:
        Cleanup
      storage/maria/ma_recovery.c:
        We need trnman to be inited during redo phase (to be able to open tables checked with maria_chk)
      storage/maria/maria_def.h:
        Added marker if table is going to be deleted.
      storage/myisam/mi_close.c:
        Don't write changed information if table is going to be deleted.
      storage/myisam/mi_extra.c:
        Mark tables that are deleted as crased, to ensure good behavior on restart if we suddenly crash.
      storage/myisam/mi_open.c:
        Added assert to detect if we accidently would use MyISAM versioning in MySQL
      storage/myisam/myisamdef.h:
        Added marker if table is going to be deleted.
      c7b97d14
  24. 29 Jan, 2010 1 commit
    • Michael Widenius's avatar
      Patch set contributed by Alex Budovski (MCA) · 33fec956
      Michael Widenius authored
      Fix for Bug#31173: mysqlslap.exe crashes if called without any parameters
      
      .bzrignore:
        Fixed .bzrignore rules. Many were simply not ignoring what they were meant to.
      client/mysqlslap.c:
        Fixed bug for Bug#31173: mysqlslap.exe crashes if called without any parameters
        The original patch could cause memory leaks and odd problems depending on how connection was made.
        This code ensures that all mysql_options() are set for each mysql_real_connect().
        (This patch by Monty)
      mysys/my_thr_init.c:
        Fixed multiply-initialized critical section on Windows, due to code incorrectly
        checking the wrong field in an attempt to prevent multiple-initialization.
      sql-common/client.c:
        Don't use shared memory if it's not set (for example after failed mysql_real_connect).
        Ensure that mysql_close() resets all resources so that it's safe to call it twice.
        (Patch by monty, related to Bug#31173: mysqlslap.exe crashes if called without any parameters)
      sql/CMakeLists.txt:
         Added page fault counters for SHOW PROFILE on Windows.
      sql/mysqld.cc:
        Fixed attempt to set a NULL event. The code now only sets the event if appropriate (i.e. shared memory is being used)
      sql/sql_profile.cc:
        Added page fault counters for SHOW PROFILE on Windows.
      sql/sql_profile.h:
        Added page fault counters for SHOW PROFILE on Windows.
      sql/udf_example.def:
        Some cleanup functions were not exported from udf_example.dll, causing them to
        never be executed, and as a result multiple-initialization of kernel objects
        occurred and resources were not being freed correctly.
      storage/maria/ma_close.c:
        Condition variable share->key_del_cond was never being destroyed, while its
        containing heap block was being freed in maria_close(), leaking kernel
        resources.
      33fec956
  25. 05 Feb, 2010 1 commit
    • Davi Arnaut's avatar
      Bug#49025: mysqld-debug: missing DBUG_RETURN or DBUG_VOID_RETURN macro in function "?func" · 072fc3b0
      Davi Arnaut authored
      The problem was that the dbug facility was being used after the
      per-thread dbug state had already been finalized. The was present
      in a few functions which invoked decrement_handler_count, which
      in turn invokes my_thread_end on Windows. In my_thread_end, the
      per-thread dbug state is finalized. Any use after the state is
      finalized ends up creating a new state.
      
      The solution is to process the exit of a function before the
      decrement_handler_count function is called.
      
      
      sql/mysqld.cc:
        Process the function exit before decrement_handler_count is
        called, as it can end the per-thread dbug state on Windows.
      072fc3b0
  26. 27 Jan, 2010 1 commit
    • Magne Mahre's avatar
      WL#5182 Remove more deprecated 4.1/5.0 features · 25af09b9
      Magne Mahre authored
            
      WL#5182 is a follow-up to WL#5154, deprecating a few more options
      and system variables.
      
      
      client/client_priv.h:
        The warning message has been changed to not include
        a specific version number in the text.
      client/mysql.cc:
        --no-tee is deprecated
      client/mysqldump.c:
        --all is deprecated
        -a now points to create-options
      mysql-test/r/mysqlbinlog.result:
        Warning text changed
      mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result:
        Warning text changed
      sql/mysql_priv.h:
        The warning message has been changed to not include
        a specific version number in the text.
      sql/mysqld.cc:
        --use-symbolic-links is deprecated
        -s now points to --symbolic-links
        --warnings is deprecated
        -W now points to --log-warnings
                
        myisam_max_extra_sort_file_size is deprecated
        record_buffer is deprecated
                
        --log-update is deprecated
        --sql-bin-update-same is deprecated
        --skip-locking is deprecated
        --skip-symlink is deprecated
        --enable-locking is deprecated
        --delay-key-write-for-all-tables is deprecated
      25af09b9
  27. 26 Jan, 2010 1 commit
  28. 02 Feb, 2010 1 commit
  29. 21 Jan, 2010 1 commit
    • Magne Mahre's avatar
      WL#5154 Remove deprecated 4.1 features · b50244fb
      Magne Mahre authored
      Several items said to be deprecated in the 4.1 manual
      have never been removed.  This worklog adds deprecation
      warnings when these items are used, and warns the user 
      that the items will be removed in MySQL 5.6.
      
      A couple of previously deprecation decision have been
      reversed (see single file comments)
      
      
      
      client/client_priv.h:
        Macro similar to the one in the server (mysql_priv.h)
        for printing a deprecation warning message
      client/mysql.cc:
        no-auto-rehash  will not be deprecated
        skip-line-numbers will not be deprecated
        skip-column-names will not be deprecated
        no-pager is deprecated
        set-variable is deprecated
        no-named-commands is deprecated
      client/mysqladmin.cc:
        set-variable is deprecated
      client/mysqlbinlog.cc:
        position is deprecated
      client/mysqldump.c:
        first-slave is deprecated
        no-set-names is deprecated
        set-variable is deprecated
      mysql-test/r/mysqlbinlog.result:
        Adding the [Warning] to the test case, just to show that the
        deprecation works.
        The test case will be changed in Celosia to use --start-position.
      mysys/my_getopt.c:
        set-variable (include -O) is deprecated
      scripts/mysqld_multi.sh:
        Warning for mysqld_multi
      sql/mysqld.cc:
        default-collation is deprecated
        log-bin-trust-routine-creators is deprecated
        set-variable is deprecated
        default-character-set is deprecated
        safe-show-database is deprecated
      sql/share/errmsg.txt:
        Added version number for sql_log_update deprecation message.
      b50244fb
  30. 20 Jan, 2010 1 commit
    • Alfranio Correia's avatar
      BUG#46364 MyISAM transbuffer problems (NTM problem) · a02a4cf4
      Alfranio Correia authored
      It is well-known that due to concurrency issues, a slave can become
      inconsistent when a transaction contains updates to both transaction and
      non-transactional tables in statement and mixed modes.
      
      In a nutshell, the current code-base tries to preserve causality among the
      statements by writing non-transactional statements to the txn-cache which
      is flushed upon commit. However, modifications done to non-transactional
      tables on behalf of a transaction become immediately visible to other
      connections but may not immediately get into the binary log and therefore
      consistency may be broken.
      
      In general, it is impossible to automatically detect causality/dependency
      among statements by just analyzing the statements sent to the server. This
      happen because dependency may be hidden in the application code and it is
      necessary to know a priori all the statements processed in the context of
      a transaction such as in a procedure. Moreover, even for the few cases that
      we could automatically address in the server, the computation effort
      required could make the approach infeasible.
      
      So, in this patch we introduce the option
          - "--binlog-direct-non-transactional-updates" that can be used to bypass
          the current behavior in order to write directly to binary log statements
          that change non-transactional tables.
      
      mysql-test/extra/rpl_tests/rpl_mixing_engines.inc:
        Backported this from Celosia to improve the test cases related to the NTM issue.
      sql/log.cc:
        Checks the --binlog-direct-non-transactional-updates before choosing
        to either use the trxn-cache or not.
      sql/mysqld.cc:
        Introduces the option --binlog-direct-non-transactional-updates.
      sql/set_var.cc:
        Introduces the option --binlog-direct-non-transactional-updates.
      sql/sql_class.h:
        Introduces the option --binlog-direct-non-transactional-updates.
      a02a4cf4
  31. 17 Jan, 2010 1 commit
  32. 01 Jan, 2010 1 commit
  33. 04 Feb, 2010 1 commit
  34. 22 Dec, 2009 1 commit
    • Sergey Petrunya's avatar
      MWL#67: MRR backport · 9259916c
      Sergey Petrunya authored
      - Make index condition pushdown be controlled by an @@optimizer_switch flag,
        not by @@engine_condition_pushdown
      - Make MRR buffer size be controlled by @@mrr_buffer_size, not 
        by @@read_rnd_buffer_size
      - Move parts of code to separate files
      - Code cleanup
      - Add --sorted_result to some SELECTs in tests.
      
      9259916c
  35. 21 Dec, 2009 1 commit
  36. 17 Dec, 2009 1 commit
    • Satya B's avatar
      Fix for Bug#37408 - Compressed MyISAM files should not require/use mmap() · 6547f51c
      Satya B authored
                        
      When compressed myisam files are opened, they are always memory mapped
      sometimes causing memory swapping problems.
      
      When we mmap the myisam compressed tables of size greater than the memory 
      available, the kswapd0 process utilization is very high consuming 30-40% of 
      the cpu. This happens only with linux kernels older than 2.6.9
      
      With newer linux kernels, we don't have this problem of high cpu consumption
      and this option may not be required.
       
      The option 'myisam_mmap_size' is added to limit the amount of memory used for
      memory mapping of myisam files. This option is not dynamic.
      
      The default value on 32 bit system is 4294967295 bytes and on 64 bit system it
      is 18446744073709547520 bytes.
      
      Note: Testcase only tests the option variable. The actual bug has be to 
      tested manually.
      
      include/my_global.h:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        define SIZE_T_MAX
      include/myisam.h:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        declare 'myisam_mmap_size' and 'myisam_mmap_used' variables and the mutex
        THR_LOCK_myisam_mmap
      myisam/mi_packrec.c:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        add 'myisam_mmap_size' option which limits the memory available to mmap of 
        myisam files
      myisam/mi_static.c:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        declare 'myisam_mmap_size' and 'myisam_mmap_used' variables and the mutex
        THR_LOCK_myisam_mmap
      myisam/myisamdef.h:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        move MEMMAP_EXTRA_MARGIN to myisam.h so that it can be used in mysqld.cc
      mysql-test/r/variables.result:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        Testcase for BUG#37408 to test the myisam_mmap_size option
      mysql-test/t/variables.test:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        Testcase for BUG#37408 to test the myisam_mmap_size option
      mysys/my_thr_init.c:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        intialize the lock THR_LOCK_myisam_mmap
      sql/mysqld.cc:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        add the 'myisam_mmap_size' option
      sql/set_var.cc:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        add the 'myisam_mmap_size' to the SHOW VARIABLES list
      6547f51c
  37. 15 Dec, 2009 1 commit
    • Sergey Petrunya's avatar
      Backport into MariaDB-5.2 the following: · 3bb037aa
      Sergey Petrunya authored
      WL#2474 "Multi Range Read: Change the default MRR implementation to implement new MRR interface"
      WL#2475 "Batched range read functions for MyISAM/InnoDb"
              "Index condition pushdown for MyISAM/InnoDB"
      Igor's fix from sp1r-igor@olga.mysql.com-20080330055902-07614:
        There could be observed the following problems:
        1. EXPLAIN did not mention pushdown conditions from on expressions in the 
        'extra' column.  As a result if a query had no where conditions pushed 
        down to a table, but had on conditions pushed to this table the 'extra' 
        column in the EXPLAIN for the table missed 'using where'.
        2. Conditions for ref access were not eliminated from on expressions 
        though such conditions were eliminated from the where condition.
      3bb037aa
  38. 12 Dec, 2009 1 commit
    • Staale Smedseng's avatar
      Bug #45058 init_available_charsets uses double checked locking · 0841caaf
      Staale Smedseng authored
            
      As documented in the bug report, the double checked locking
      pattern has inherent issues, and cannot guarantee correct
      initialization.
      
      This patch replaces the logic in init_available_charsets()
      with the use of pthread_once(3). A wrapper function,
      my_pthread_once(), is introduced and is used in lieu of direct
      calls to init_available_charsets(). Related defines
      MY_PTHREAD_ONCE_* are also introduced.
      
      For the Windows platform, the implementation in lp:sysbench is
      ported. For single-thread use, a simple define calls the
      function and sets the pthread_once control variable.
      
      Charset initialization is modified to use my_pthread_once().
      
      include/my_no_pthread.h:
        Dummy my_pthread_once() for single thread use.
      include/my_pthread.h:
        Declaration for new function my_pthread_once().
      mysys/charset.c:
        Logic in init_available_charsets() is simplified. 
        Using my_pthread_once() for all calls to this func.
      mysys/my_winthread.c:
        Windows implementation of my_pthread_once().
      0841caaf