- 27 Mar, 2009 1 commit
-
-
Kristofer Pettersson authored
on 5.0 The server crashes on an assert in net_end_statement indicating that the Diagnostics area wasn't set properly during execution. This happened on a multi table DELETE operation using the IGNORE keyword. The keyword is suppose to allow for execution to continue on a best effort despite some non-fatal errors. Instead execution stopped and no client response was sent which would have led to a protocol error if it hadn't been for the assert. This patch corrects this issue by checking for the existence of an IGNORE option before setting an error state during row-by-row delete iteration. mysql-test/r/innodb_mysql.result: * Added test case for bug40127 mysql-test/t/innodb_mysql.test: * Added test case for bug40127 sql/sql_delete.cc: * IGNORE option wasn't implemented in multi_delete::send_data and multi_delete::do_deletes
-
- 18 Mar, 2009 6 commits
-
-
Guangbao Ni authored
-
Guangbao Ni authored
-
Guangbao Ni authored
mysql.procs_priv table itself does not get replicated. Inserting routine privilege record into mysql.procs_priv table is triggered by creating function/procedure statements according to current user's privileges. Because the current user of SQL thread has GLOBAL_ACL, which doesn't need any check mysql.procs_priv privilege when create/alter/execute routines. Corresponding GLOBAL_ACL privilege user doesn't insert routine privilege record into mysql.procs_priv when creating a routine. Fixed by switching the current user of SQL thread to definer user if the definer user exists on slave. That populates procs_priv, otherwise to keep the SQL thread user and procs_priv remains unchanged. mysql-test/suite/rpl/r/rpl_do_grant.result: Test case result for routine privilege when definer user exist or not on slave mysql-test/suite/rpl/t/rpl_do_grant.test: Test case result for routine privilege when definer user exist or not on slave sql/sql_parse.cc: Switch current user of SQL thread to definer user if the definer user existes on slave when checking whether the routine privilege is needed to insert mysql.procs_priv table or not.
-
Satya B authored
-
Satya B authored
Any statement reading corrupt archive data file (CHECK/REPAIR/SELECT/UPDATE/DELETE) may cause assertion failure in debug builds. This assertion has been removed and an error is returned instead. Also fixed that CHECK/REPAIR returns vague error message when it mets corruption in archive data file. This is fixed by returning proper error code. mysql-test/r/archive.result: A test case for BUG#32880 mysql-test/std_data/bug32880.ARN: corrupted archive table to test check and repair table operation mysql-test/std_data/bug32880.ARZ: corrupted archive table to test check and repair table operation mysql-test/std_data/bug32880.frm: corrupted archive table to test check and repair table operation mysql-test/t/archive.test: A test case for BUG#32880 storage/archive/ha_archive.cc: Fixed unpack_row() to return the error instead of throwing assertion and also fixed repair() to throw better error when repair table operation fails on corrupted archive table
-
Leonard Zhou authored
-
- 17 Mar, 2009 9 commits
-
-
Tatiana A. Nurnberg authored
-
Tatiana A. Nurnberg authored
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
Georgi Kodinov authored
become negative - merged the fix to 5.1 - extended to cover I_S.PROCESSLIST.TIME - Changed the column type of I_S.PROCESSLIST.TIME from LOGNLONG UNSIGNED to LONG (to match the SHOW PROCESSLIST type) - Added a test case
-
Georgi Kodinov authored
-
Horst Hunger authored
"Release_lock("hello")" is now also successful when delivering NULL, replaced two sleeps by wait_condition. The last two "sleep 1" have not been replaced as all tried wait conditions leaded to nondeterministic results, especially to succeeding concurrent updates. To replace the sleeps there should be some time planned (or internal knowledge of the server may help).
-
Tatiana A. Nurnberg authored
-
Ramil Kalimullin authored
sql/sql_select.cc: the if() separate arguments checks are slightly faster.
-
- 16 Mar, 2009 7 commits
-
-
Patrick Crews authored
Re-recording of .result files for additional tests that use this include file.
-
Tatiana A. Nurnberg authored
-
Tatiana A. Nurnberg authored
-
Patrick Crews authored
-
Tatiana A. Nurnberg authored
If a sys-var has a base and a block-size>1, and then a user-supplied value >= minimum ended up below minimum thanks to block-size alignment, we threw a warning. This meant for instance that when getting, then setting the minimum, we'd see a warning. This was needlessly confusing. (updated patch)
-
Alexey Kopytov authored
Replaced a call to load_defaults() in sql_plugin.cc with its thread-safe version.
-
Ramil Kalimullin authored
select where .. (col=col and col=col) or ... (false expression) Problem: optimizer didn't take into account a singular case when we eliminated all the predicates at the AND level of WHERE. That may lead to wrong results. Fix: replace (a=a AND a=a...) with TRUE if we eliminated all the predicates. mysql-test/r/select.result: Fix for bug #42957: no results from select where .. (col=col and col=col) or ... (false expression) - test result. mysql-test/t/select.test: Fix for bug #42957: no results from select where .. (col=col and col=col) or ... (false expression) - test case. sql/sql_select.cc: Fix for bug #42957: no results from select where .. (col=col and col=col) or ... (false expression) - replacing equality predicates by multiple equality items check if we eliminate all the predicates at the AND level and replace them with TRUE if so.
-
- 15 Mar, 2009 2 commits
-
-
Patrick Crews authored
-
Patrick Crews authored
Revised patch incorporating cleaner test code brought up during review. Removed the use of grep and accomplished same actions via SQL / use of the server. Runs as before on *nix systems and now runs on Windows without Cygwin as well.
-
- 13 Mar, 2009 9 commits
-
-
Andrei Elkin authored
-
Andrei Elkin authored
-
Georgi Kodinov authored
seems to become negative THD::start_time has a dual meaning : it's either the time since the process entered a given state or is the transaction time returned by e.g. NOW(). This causes problems, as sometimes THD::start_time may be set to a value that is correct and needed when used as a base for NOW(), but these times may be arbitrary (SET @@timestamp) or non-local (coming from the master through the replication feed). If one such non-local time is set there's no way to return a correct value for e.g. SHOW PROCESSLIST or SELECT ... FROM INFORMATION_SCHEMA.PROCESSLIST. Fixed by making the Time column in SHOW PROCESSLIST SIGNED LONG instead of UNSIGNED LONG and doing the correct conversions. Note that no reliable test suite can be constructed, since it would require knowing the local time and can't be achieved by the means of the current test suite. sql/sql_show.cc: Bug #22047: make the Time in SHOW PROCESSLIST LONG from LONG UNSIGNED
-
Georgi Kodinov authored
There are some recursive targets that automake generates which reference DIST_SUBDIRS. It's critical, then, for such subdirs to exist even if they won't be built as part of SUBDIRS. During a VPATH build, it is the configure script which creates the subdirs (when it processes the AC_CONFIG_FILES() for each subdir's Makefile). If autoconf doesn't create a subdir's Makefile, then the recursive make will fail when it is unable to cd into that subdir. This isn't a problem in non-VPATH builds, because the subdirs are all present in the source tarball. So the problem only shows up during 'make distcheck', which does a VPATH build. The fix is to look, when configure is being created by autoconf, for any plugin subdirectories. These are the dynamic subdirectories which need to be handled specially. It's enough to tell autoconf to generate a Makefile for any Makefile.am found in the plugin directory - all plugin subdirectories using automake (i.e., listed in the plugin's DIST_SUBDIRS) will have a Makefile.am. This is done by calling 'find'. This means that 'find' must be in the PATH on the host that is running autoconf. 'find' is NOT needed when calling configure, so it is not an additional dependency for the user. Finally, ha_ndbcluster.m4 had called AC_CONFIG_FILES() on all those subdir Makefiles, but only when the plugin was actually being built. So it didn't work in the case that NDB was not being built. All of those Makefiles have to be removed from this static list, since the plugin machinery is now adding them automatically. autoconf fails if a file is duplicated in AC_CONFIG_FILES().
-
Sergey Glukhov authored
-
Sergey Glukhov authored
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
Sergey Glukhov authored
--added ability to obtain plugin variables from my.cnf on INSTALL PLUGIN stage --option 'ignore-builtin-innodb' disables all InnoDB builtin plugins (including I_S plugins) sql/mysql_priv.h: --added ability to obtain plugin variables from my.cnf on INSTALL PLUGIN stage sql/mysqld.cc: --added ability to obtain plugin variables from my.cnf on INSTALL PLUGIN stage sql/sql_plugin.cc: --added ability to obtain plugin variables from my.cnf on INSTALL PLUGIN stage --option 'ignore-builtin-innodb' disables all InnoDB builtin plugins (including I_S plugins)
-
- 12 Mar, 2009 6 commits
-
-
Tatiana A. Nurnberg authored
-
Chad MILLER authored
-
Tatiana A. Nurnberg authored
-
Chad MILLER authored
-
Chad MILLER authored
test and (slightly different than 5.0) results.
-
Leonard Zhou authored
The method to purge binary log files produces different results in some platforms. The reason is that the purge time is calculated based on table modified time and that can't guarantee to purge master-bin.000002 in all platforms.(eg. windows) Use a new way that sets the time to purge binlog file 1 second after the last modified time of master-bin.000002. That can be sure that the file is always deleted in any platform. mysql-test/suite/rpl/r/rpl_rotate_logs.result: Test result mysql-test/suite/rpl/t/rpl_rotate_logs.test: Test file
-