Commit graph

66320 commits

Author SHA1 Message Date
Vladislav Vaintroub
f1b2ecc437 Add option to enable feedback plugin to the MSI installer. 2011-10-12 12:07:14 +02:00
Vladislav Vaintroub
08fe6cba06 merge 2011-10-11 20:16:11 +02:00
Vladislav Vaintroub
ab5c1e433e remove unconditional SAFEMALLOC/SAFEMUTEX from debug flags 2011-10-11 20:13:57 +02:00
Sergei Golubchik
3e8731dee0 merge 2011-10-10 19:34:37 +02:00
Sergei Golubchik
85ac4da3a8 add a missing definition 2011-10-10 17:59:26 +02:00
Sergei Golubchik
d94ad2ad40 fix feedback plugin for 5.2 2011-10-08 19:00:00 +02:00
Sergei Golubchik
eeca1f8694 merge with 5.1 2011-10-07 00:18:30 +02:00
Sergei Golubchik
4a4aa358f3 sort results in tests to make them stable 2011-10-06 23:40:19 +02:00
Sergei Golubchik
e513652a4e disable feedback plugin by default. Now on windows too. 2011-10-06 23:39:44 +02:00
Sergei Golubchik
d554a6c10e merge the feedback tree 2011-10-06 21:42:43 +02:00
Vladislav Vaintroub
c9783670c7 Implement uname() on Windows.
Also, fix code to get physical memory size.
2011-10-06 20:55:38 +02:00
Sergei Golubchik
4170093ab5 merge with feedback-plugin
and disable feedback plugin by default, if it's compiled in.
2011-10-06 18:48:16 +02:00
Sergei Golubchik
033a2527da add #define WITH_FEEDBACK_PLUGIN 2011-10-06 18:24:00 +02:00
Michael Widenius
9c32088322 Fixed that when using a trigger mysql.proc is now accessed
Cleanup:  Changed procedure type from a int/char to an enum for easier to manage and debug code.

mysql-test/r/trigger.result:
  Test that mysql.proc is not used as part of creating or using a trigger.
mysql-test/t/trigger.test:
  Test that mysql.proc is not used as part of creating or using a trigger.
sql/sp.cc:
  The main bug fix is to not look up triggers in mysql.proc; This is done by ignoreing type == TYPE_ENUM_TRIGGER in sp_add_used_routine()
  Cleanup:  Changed procedure type from a int/char to an enum.
sql/sp.h:
  Cleanup:  Changed procedure type from a int/char to an enum.
sql/sp_head.h:
  Cleanup:  Changed procedure type from a int/char to an enum.
sql/sql_db.cc:
  Fix include order
sql/sql_lex.cc:
  Fix include order
sql/sql_parse.cc:
  Cleanup:  Changed procedure type from a int/char to an enum.
sql/sql_show.cc:
  Fix include order
sql/sql_view.cc:
  Fix include order
2011-10-06 16:56:59 +03:00
Sergei Golubchik
da81a1f01e fix fulltext_plugin.test on windows 2011-10-05 20:16:42 +02:00
Michael Widenius
5f607a2c70 Automatic merge with 5.1 2011-10-05 16:53:35 +03:00
Michael Widenius
1351bef4df Fix for issue found in buildbot where mysqld.*.err files was missing
Added suppression message for valgrind failure found on OpenSuSE 11.1

mysql-test/mysql-test-run.pl:
  Fix for issue found in buildbot where mysqld.*.err files was missing
  Patch by Kristian Nielsen
mysql-test/valgrind.supp:
  Added suppression message for valgrind failure found on OpenSuSE 11.1
sql/mysqld.cc:
  Added missing space to comment
2011-10-05 16:37:05 +03:00
Michael Widenius
5c3e18fe0e Fixed lp:859051 "Periodic aria checkpoints prevent power management"
Now the aria_log_control_file and log file is not touched if aria files are not written to.

storage/maria/ma_checkpoint.c:
  Fixed wrong test if log file has increased.
  Don't reset pages_to_flush_before_next_checkpoint as this would cause the checkpoint to happen at next checkpoint interval
2011-10-05 15:59:49 +03:00
Sergei Golubchik
1b7e566683 tests for feedback plugin,
bugfix: garbage in PLUGIN_VAR_STR variables when INSTALL'ing a plugin

mysql-test/include/default_mysqld.cnf:
  disable feedback plugin by default.
  when enabled - tag is as a test run
2011-10-04 16:51:39 +02:00
Sergei Golubchik
031e78dd5b merge feedback plugin 2011-10-04 16:03:10 +02:00
Sergei Golubchik
c0e11db793 fix for static plugins in mariadb.
send "startup" message 5 minutes after startup, not immediately

Makefile.am:
  mariadb uses .la libraries for static plugins.
  mysql - .a libraries
plug.in:
  mariadb uses .la libraries for static plugins.
  mysql - .a libraries
sender_thread.cc:
  send "startup" message 5 minutes after startup, not immediately
url_http.cc:
  avoid "unused variable https" warning
2011-10-04 15:48:39 +02:00
Sergei Golubchik
630b0b8779 support for plugins on windows
CMakeLists.txt:
  1. add -DSAFEMALLOC -DSAFE_MUTEX in the top-level CMakeLists.txt
     don't force plugins to copy-paste these lines in their CMakeLists.txt
  2.1 search plugin/* for plugins (not only storage/*),
  2.2 recognize MYSQL_PLUGIN (not only MYSQL_STORAGE_ENGINE),
  2.3 extract library names from the plug.in (don't force library names to
      be ha_<engine>.dll and <engine>.lib)
include/mysql/plugin.h:
  define MYSQL_PLUGIN_EXPORT appropriately
  (backport from 5.5)
libmysqld/CMakeLists.txt:
  remove unnecessary workaround
plugin/fulltext/CMakeLists.txt:
  build fulltext example plugin on windows
storage/maria/CMakeLists.txt:
  The library is called libmaria_s.lib, not maria.lib
storage/maria/unittest/CMakeLists.txt:
  The library is called libmaria_s.lib, not maria.lib
storage/myisam/CMakeLists.txt:
  The library is called libmyisam_s.lib, not myisam.lib
storage/mysql_storage_engine.cmake:
  introduce MYSQL_PLUGIN macro.
  don't force library names to be ha_<engine>.dll and <engine>.lib
storage/xtradb/CMakeLists.txt:
  remove a condition from include
win/README:
  don't use deprecated syntax
win/configure-mariadb.sh:
  don't use deprecated syntax
win/configure.js:
  1. support MYSQL_PLUGIN in addition to MYSQL_STORAGE_ENGINE.
  2. support plugin/* in addition to storage/*
2011-10-04 15:41:52 +02:00
Sergei Golubchik
f3523559aa my_gethwaddr() on Solaris and Windows 2011-10-04 15:07:55 +02:00
Sergei Golubchik
45ee26699e remove redundant declarations 2011-10-04 15:01:26 +02:00
Sergei Golubchik
9401ae9425 don't use https url by default, if ssl is not available 2011-10-03 08:43:01 +02:00
Sergei Golubchik
4c34bcf856 initial checkin 2011-10-01 21:23:01 +02:00
Vladislav Vaintroub
fac1a8110a merge 2011-09-16 18:30:46 +02:00
Vladislav Vaintroub
d202a22132 Fix path lookup for singtool 2011-09-16 18:15:04 +02:00
Vladislav Vaintroub
57f0b8b935 Fix compile warning 2011-09-16 18:14:19 +02:00
Michael Widenius
dcce428640 Fixed race condition that could cause diff to fail.
(Code taken from 5.5)
2011-09-15 16:56:06 +03:00
Michael Widenius
da223f146a Fixed test to be repeatable 2011-09-15 10:36:17 +03:00
Michael Widenius
0e06d3c107 Reset variable to not access it uninitialized 2011-09-14 12:48:08 +03:00
Michael Widenius
4139bba281 Increased version number
Give proper error to client on shutdown.

configure.in:
  Increased version number
mysql-test/mysql-test-run.pl:
  Ignore errors that one can get while running with --mysqld=--log-warnings=2
mysql-test/r/variables.result:
  Remember original value of log_warnings
mysql-test/suite/rpl/r/rpl_idempotency.result:
  Ignore errors that one can get while running with --mysqld=--log-warnings=2
mysql-test/suite/rpl/t/rpl_idempotency.test:
  Ignore errors that one can get while running with --mysqld=--log-warnings=2
mysql-test/t/variables.test:
  Remember original value of log_warnings
sql/mysqld.cc:
  Give proper error to close_connection() on shutdown
storage/maria/ha_maria.cc:
  Added missing DBUG_RETURN
2011-09-13 18:46:47 +03:00
Michael Widenius
0db9c26b05 Automatic merge 2011-09-10 09:37:55 +03:00
Michael Widenius
8fb10c24d7 Fixed that automatic killing of delayed insert thread (in flush, alter table etc) will not abort auto-repair of MyISAM table.
Give more information when finding an error in a MyISAM table.
When killing system thread, use KILL_SYSTEM_THREAD instead of KILL_CONNECTION to make it easier to ignore the signal in sensitive context (like auto-repair)
Added new kill level: KILL_SERVER that will in the future to be used to signal killed by shutdown.
Add more warnings about killed connections when warning level > 3

include/myisamchk.h:
  Added counting of printed info/notes
mysys/mf_iocache.c:
  Remove duplicate assignment
sql/handler.cc:
  Added test of KILL_SERVER
sql/log.cc:
  Ignore new 'kill' error ER_NEW_ABORTING_CONNECTION when requesting query error code.
sql/mysqld.cc:
  Add more warnings for killed connections when warning level > 3
sql/scheduler.cc:
  Added checks for new kill signals
sql/slave.cc:
  Ignore new kill signal ER_NEW_ABORTING_CONNECTION
sql/sp_head.cc:
  Fixed assignment to bool
  Added testing of new kill signals
sql/sql_base.cc:
  Use KILL_SYSTEM_THREAD to auto-kill system threads
sql/sql_class.cc:
  Add more warnings for killed connections when warning level > 3
  thd_killed() now ignores KILL_BAD_DATA and THD::KILL_SYSTEM_THREAD as these should not abort sensitive operations.
sql/sql_class.h:
  Added KILL_SYSTEM_THREAD and KILL_SERVER
sql/sql_connect.cc:
  Added handling of KILL_SERVER
sql/sql_insert.cc:
  Use KILL_SYSTEM_THREAD to auto-kill system threads
  Added handling of KILL_SERVER
sql/sql_parse.cc:
  Add more warnings for killed connections when warning level > 3
  Added checking that thd->abort_on_warning is reset at end of query.
sql/sql_show.cc:
  Update condition for when a query is 'killed'
storage/myisam/ha_myisam.cc:
  Added counting of info/notes printed
storage/myisam/mi_check.c:
  Always print an an error if we find data errors when checking/repairing a MyISAM table.
  When a repair was killed, don't retry repair.
  Added assert if sort_get_next_record() returned an error without an error message.
  Removed nonsence check "if (sort_param->read_cache.error < 0)" in repair.
storage/myisam/myisamchk.c:
  Added counting of notes printed
storage/pbxt/src/thread_xt.cc:
  Better error message.
2011-09-09 19:44:07 +03:00
unknown
b80641b36c LP BUG#813418 fix.
The problem was that optimization code did not take into account later feature when instad of NOT before BETWEEN it has negated flag into the Item_func_between inherited from Item_func_neg_opt. So optimizer tried process NOT BETWEEN as BETWEEN.

The patch just switches off the optimisation for NOT BETWEEN as it was before when NOT function was really used.
2011-09-08 16:57:46 +03:00
unknown
8b062c1fef Fix of LP BUG#780386.
ALL subquery should return TRUE if subquery rowa set is empty independently
  of left part.  The problem was that Item_func_(eq,ne,gt,ge,lt,le) do not
  call execution of second argument if first is NULL no in this case subquery
  will not be executed and when Item_func_not_all calls any_value() of the
  subquery or aggregation function which report that there was rows. So for
  NULL < ALL (SELECT...) result was FALSE instead of TRUE.
  
  Fix is just swapping of arguments of Item_func_(eq,ne,gt,ge,lt,le) (with
  changing the operation if it is needed) so that result will be the same
  (for examole a < b is equal to b > a). This fix exploit the fact that
  first argument will be executed in any case.
2011-09-05 09:29:49 +03:00
unknown
4338091967 Fix pbxt suite to keep the same opti9misation it was before. 2011-09-05 08:15:46 +03:00
Michael Widenius
13e4d54795 Fixed lp:814238 "safe_mutex issues must be assertions in debug binary"
Added --debug-assert-on-error variable which, if set, will cause safe_mutex to assert if it founds an error.

include/my_sys.h:
  Added my_assert_on_error
mysys/my_static.c:
  Added my_assert_on_error
mysys/thr_mutex.c:
  Assert when found wrong mutex usage if my_assert_on_error is set
sql/mysqld.cc:
  Added setting of my_assert_on_error
2011-09-02 12:41:20 +03:00
unknown
37a8497d49 LP BUG#823169 fix.
For ANY subqueries NULLs should be ignored (if there is other values) when finding max min.
For ALL subqueries NULLs should be saved if they found.

Optimisation for ALL suqbueries if NULL is possible in the SELECT list with max/min aggregate function switched off.

Some test changed where NULL is not used but optimization with max/min aggregate function important so NOT NULL added.

mysql-test/r/explain.result:
  Forced old optimization.
mysql-test/r/subselect.result:
  Forced old optimization.
  
  New test suite.
mysql-test/t/explain.test:
  Forced old optimization.
mysql-test/t/subselect.test:
  Forced old optimization.
  
  New test suite.
sql/item_subselect.cc:
  Store converted subquery type.
  
  Switch off aggregate function optimisation for ALL and nulls.
sql/sql_class.cc:
  Fixed NULL comparison.
sql/sql_class.h:
  Store converted subquery type.
2011-09-02 10:11:13 +03:00
Michael Widenius
31c8c95bb2 Added logging of all errors from my_read/my_write/my_pread/my_pwrite/my_open & my_malloc to mysqld error log if one sets log-warning to 10 or 11
The idea is that my_global_flags is ored to the MyFlags parameter for the above functions if the MY_WME flag is not set.
As the my_global_flags has ME_JUST_INFO (mark error as 'note') and possible ME_NOREFRESH (write error to log) this will force mysqld to log the not critical error to the log as a note.


 

include/my_sys.h:
  Moved MY_SYNC_DIR to ensure it never clashes with ME_JUST_INFO
  Added my_global_flags
mysql-test/Makefile.am:
  Removed not used bugs directory
mysys/my_init.c:
  Added my_global_flags, a variable that is ored to MyFlags in a those mysys functions we want extra logging.
mysys/my_malloc.c:
  Added support for my_global_flags
mysys/my_open.c:
  Added support for my_global_flags
mysys/my_pread.c:
  Added support for my_global_flags
mysys/my_read.c:
  Added support for my_global_flags
mysys/my_static.c:
  Added my_global_flags
mysys/my_write.c:
  Added support for my_global_flags
sql/mysqld.cc:
  Set my_global_flags for warning levels 10 & 11
sql/sql_base.cc:
  Don't increment unhandled errors for notes or warnings.
2011-09-02 01:22:34 +03:00
Michael Widenius
4692537f60 Fixed non critical buffer overflow bug in open_binary_frm() that could cause ASSERT
Added more printing of errors to myisamchk.

mysys/mf_iocache.c:
  Write error message if failed seek.
sql/table.cc:
  Fixed buffer overflow bug:
  - It's not enough to check for mysql_version to to detect partion indicator as the version may have been updated by mysql_upgrade.
storage/myisam/ha_myisam.cc:
  Don't log same error twice.
  Don't reset log_all_errors if it's set
storage/myisam/mi_check.c:
  Fixed bug that caused repair() to not report error if called twice (as when doing retry)
  More printing of errors.
storage/myisam/sort.c:
  Set my_errno in case of out of memory errors.
2011-09-01 21:18:29 +03:00
Michael Widenius
1a51fe363d Added variable ARIA_CHECKPOINT_LOG_ACTIVITY to allow one to specify how often we should do a checkpoint.
Added more error printing to log if log_warnings > 2
Give an error if checkpoint record is not correct,

mysql-test/suite/maria/r/compat_aliases.result:
  Added ARIA_CHECKPOINT_LOG_ACTIVITY
mysql-test/suite/maria/r/maria3.result:
  Added ARIA_CHECKPOINT_LOG_ACTIVITY
storage/maria/ha_maria.cc:
  Added ARIA_CHECKPOINT_LOG_ACTIVITY
  Added more error printing to log if log_warnings > 2
  Added db and table name to error message when printing to log
storage/maria/ma_check.c:
  Fixed bug where we didn't reset some variables between repair() calls
storage/maria/ma_checkpoint.c:
  Made maria_checkpoint_min_activity global.
  Don't do checkpoint if no data logged.
  Changed test for if we should do checkpoint to test separately for if log has grown or if we have had a lot of of cache writes.
storage/maria/ma_recovery.c:
  Give an error if checkpoint record is not correct
storage/maria/trnman.c:
  Don't print not needed long_transaction_id entries for checkpoints.
2011-09-01 21:13:09 +03:00
Michael Widenius
8b7a63b17f Added logging of all messages (also system warnings) one gets during a MyISAM recovery or auto-recovery.
sql/mysqld.cc:
  Log errors if thd->log_all_errors is set
sql/sql_class.cc:
  Add log_all_errors
sql/sql_class.h:
  Add log_all_errors
storage/myisam/ha_myisam.cc:
  Write db and table name for all logged errors
  Log errors also during auto_recovery
  During auto_recovery, set thd->log_all_errors if log_warnings >2 to ensure that system errors are also logged to file
2011-08-29 20:38:21 +03:00
Michael Widenius
1a344b87e4 Fixed wrong testcase 2011-08-16 19:01:31 +03:00
Michael Widenius
cea27d3002 Fixed build failure in embedded library regarding that decrease_user_connections() was not declared 2011-08-16 13:28:20 +03:00
Michael Widenius
a75dbb4158 If mysqld --log-warnings=3 or higher, then print all check and repair warnings for MyISAM tables to the log.
This is useful when trying to find out why an automatic myisam repair failes.

storage/myisam/ha_myisam.cc:
  If mysqld --log-warnings=3 or higher, then print all check and repair warnings for MyISAM tables to the error log.
2011-08-16 13:06:07 +03:00
Michael Widenius
8ce93bbd64 Fixed bug that MAX_USER_CONNECTIONS was not working properly in all situations (which could cause aborted connects)
thd->user_connect is now handled in thd->clenup() which will ensure that it works in all context (including slaves).
I added also some DBUG_ASSERT() to ensure that things are working correctly.


sql/sql_acl.cc:
  Reset thd->user_connect on failed check_for_max_user_connections() to ensure we don't decrement value twice.
  Removed not needed call to decrease_user_connections() as thd->cleanup() will now do it.
sql/sql_class.cc:
  Call decrease_user_connections() in thd->cleanup()
sql/sql_connect.cc:
  Ensure we don't allocate thd->user_connect twice.
  Simplify check_for_max_user_connections().
sql/sql_parse.cc:
  Ensure that thd->user_connect is handled properly in for 'change_user' command.
2011-08-16 12:32:06 +03:00
Michael Widenius
13af398240 Fixed recovery crash lp:814806 "Unclean shutdown corrupted Aria table blocking startup"
storage/maria/ma_recovery.c:
  Moved trman_init() before parse_checkpoint_record() as this calls trnman functions if we have to open tables.
2011-08-15 23:53:55 +03:00
Michael Widenius
b5f830d88d Merge in bug fix from 5.1 2011-08-15 20:42:29 +03:00