- 15 May, 2006 1 commit
-
-
unknown authored
sql/sql_acl.cc: Use LOCK_grant on access to grant_version.
-
- 12 May, 2006 1 commit
-
-
unknown authored
from within triggers Add support for passing NEW.x as INOUT and OUT parameters to stored procedures. Passing NEW.x as INOUT parameter requires SELECT and UPDATE privileges on that column, and passing it as OUT parameter requires only UPDATE privilege. mysql-test/r/sp-error.result: Update the result for new message. mysql-test/r/trigger-grant.result: Add result for bug#14635. mysql-test/r/trigger.result: Add result for bug#14635. mysql-test/t/trigger-grant.test: Add test case for bug#14635. mysql-test/t/trigger.test: Add test case for bug#14635. sql/item.cc: Add implementations of set_value() and set_required_privilege() methods of Settable_routine_parameter interface. Use Item_trigger_field::want_privilege instead of Item_trigger_field::access_type. Reset privileges on Item_trigger_field::cleanup(). sql/item.h: Add interface class Settable_routine_parameter and interface query method to Item class. Item_splocal and Item_trigger_field implement this interface. For Item_trigger_field: - add read_only attribute and is_read_only() method. - remove access_type and add original_privilege and want_privilege instead. - add set_value() method. - add reset_privilege() method. sql/item_func.cc: Add implementations of set_value() method of Settable_routine_parameter interface. sql/item_func.h: Item_func_get_user_var implements Settable_routine_parameter interface. sql/share/errmsg.txt: Update english ER_SP_NOT_VAR_ARG message. sql/sp_head.cc: Use Settable_routine_parameter interface for parameter update. sql/sql_yacc.yy: Set read_only and want_privilege members in Item_trigger_field appropriately. For NEW.x trigger variable used in left-hand-side of SET statement the latter is set to UPDATE_ACL, otherwise it is set to SELECT_ACL (but see Item_trigger_field::set_required_privilege(), where it may be updated to different value).
-
- 10 May, 2006 7 commits
-
-
unknown authored
garbles data if longer than 766 chars. The problem is that a stored routine returns BLOBs to the previous caller, BLOBs are shallow-copied (i.e. only pointers to the data are copied). The fix is to also copy data of BLOBs. mysql-test/r/sp.result: Updated result file. mysql-test/t/sp.test: Added a test case for BUG#18587. sql/field_conv.cc: Do not jump to optimization if the field type is BLOB and the destination table requires copying of BLOBs. sql/item_func.cc: Request copying BLOBs for the result table.
-
unknown authored
-
unknown authored
into mysql.com:/home/dlenev/mysql-5.0-bg12472
-
unknown authored
mysql-test/r/im_options_set.result: Fixed result file. mysql-test/r/im_options_unset.result: Fixed result file.
-
unknown authored
into mysql.com:/home/dlenev/mysql-5.0-bg12472
-
unknown authored
which explicitly or implicitly uses stored function gives 'Table not locked' error" Test case for these bugs crashed in --ps-protocol mode. The crash was caused by incorrect usage of check_grant() routine from create_table_precheck() routine. The former assumes that either number of tables to be inspected by it is limited explicitly (i.e. is is not UINT_MAX) or table list used and thd->lex->query_tables_own_last value correspond to each other. create_table_precheck() was not fulfilling this condition and crash happened. The fix simply sets number of tables to be inspected by check_grant() to 1. sql/sql_parse.cc: create_table_precheck(): At the moment when create_table_precheck() is called TABLE_LIST element representing table to be created does not belong to global table list therefore we should limit number of tables to be inspected by check_grant() explicitly (as in this case table list passed to this function does not correspond to thd->lex->query_tables_own_last value).
-
unknown authored
into mysql.com:/mnt/raid/MySQL/devel/5.0-bug14106
-
- 09 May, 2006 2 commits
-
-
unknown authored
into mysql.com:/home/dlenev/mysql-5.0-bg12472 sql/mysql_priv.h: Auto merged sql/sql_base.cc: Auto merged sql/sql_insert.cc: Auto merged sql/sql_table.cc: Auto merged mysql-test/r/sp.result: Manual merge. mysql-test/t/sp.test: Manual merge.
-
unknown authored
or implicitly uses stored function gives "Table not locked" error' CREATE TABLE ... SELECT ... statement which was explicitly or implicitly (through view) using stored function gave "Table not locked" error. The actual bug resides in the current locking scheme of CREATE TABLE SELECT code, which first opens and locks tables of the SELECT statement itself, and then, having SELECT tables locked, creates the .FRM, opens the .FRM and acquires lock on it. This scheme opens a possibility for a deadlock, which was present and ignored since version 3.23 or earlier. This scheme also conflicts with the invariant of the prelocking algorithm -- no table can be open and locked while there are tables locked in prelocked mode. The patch makes an exception for this invariant when doing CREATE TABLE ... SELECT, thus extending the possibility of a deadlock to the prelocked mode. We can't supply a better fix in 5.0. mysql-test/r/sp.result: Added tests for bugs#12472/#15137 'CREATE TABLE ... SELECT ... which explicitly or implicitly uses stored function gives "Table not locked" error' mysql-test/t/sp.test: Added tests for bugs#12472/#15137 'CREATE TABLE ... SELECT ... which explicitly or implicitly uses stored function gives "Table not locked" error' sql/mysql_priv.h: Added flag which can be passed to open_table() routine in order to ignore set of locked tables and prelocked mode. We don't need declaration of create_table_from_items() any longer as it was moved into sql_insert.cc and made static. sql/sql_base.cc: open_table(): Added flag which allows open table ignoring set of locked tables and prelocked mode. sql/sql_insert.cc: Moved create_table_from_items() from sql_table.cc to sql_insert.cc as it was not used outside of sql_insert.cc and contains code which is specific for CREATE TABLE ... SELECT. Also now when we are executing CREATE TABLE ... SELECT ... statement which SELECT part requires execution in prelocked mode we ignore set of locked tables in order to get access to the table we just have created. We probably don't want to do this if we are under real LOCK TABLES since it will widen window for deadlock too much. sql/sql_table.cc: Moved create_table_from_items() routine into sql_insert.cc, since it was not used anywhere outside of this file and contains logic which is specific for CREATE TABLE ... SELECT statement.
-
- 06 May, 2006 3 commits
-
-
unknown authored
tests fail on FreeBSD. The patch contains of the following: - make Instance Manager, running in the daemon mode, dump the pid of angel-process in the special file; - default value of angel-pid-file-name is 'mysqlmanager.angel.pid'; - if ordinary (IM) pid-file-name is specified in the configuration, angel-pid-file-name is updated according to the following rule: extension of the basename of pid-file-name is replaced by '.angel.pid. For example: - pid-file-name: /tmp/im.pid => angel-pid-file-name: /tmp/im.angel.pid - pid-file-name: /tmp/im.txt => angel-pid-file-name: /tmp/im.angel.pid - pid-file-name: /tmp/5.0/im => angel-pid-file-name: /tmp/5.0/im.angel.pid - add support for configuration option to customize angel pid file name; - fix test suite to use angel pid to kill Instance Manager by all means if something went wrong. Background ---------- The problem is that on some OSes (FreeBSD for one) Instance Manager does not get SIGTERM, so can not shutdown gracefully. Test suite wasn't able to cope with it, so this leads to the mess in test results. The problem should be split into two: - fix signal handling; - fix test suite. This patch fixes test suite so that it will be able to kill uncooperative Instance Manager. In order to achieve this, test suite needs to know PID of IM Angel process. mysql-test/lib/mtr_process.pl: Added a function to send a signal to a process. mysql-test/mysql-test-run.pl: Changed procedure of stopping Instance Manager. 1. Try to stop IM normally (by sending SIGTERM); 2. If one of IM-related processes is still alive, kill them all by SIGKILL and complain in the log. server-tools/instance-manager/manager.cc: Made create_pid_file() available for the whole project. server-tools/instance-manager/manager.h: Made create_pid_file() available for the whole project. server-tools/instance-manager/mysqlmanager.cc: Dump PID of angel process into file. server-tools/instance-manager/options.cc: Added an option to allow to customize angel pid file name. server-tools/instance-manager/options.h: Added an option to allow to customize angel pid file name.
-
unknown authored
hog memory". During each invocation of stored function or trigger some objects which lifetime is one function call (e.g. sp_rcontext) were allocated on arena/memroot of calling statement. This led to consumption of fixed amount of memory for each function/trigger invocation and so statements which involve lot of them were hogging memory. This in its return led to OOM crashes or freezes. This fix introduces new memroot and arena for objects which lifetime is whole duration of function call. So all memory consumed by such objects is freed at the end of function call. sql/sp_head.cc: sp_head::execute_function(): Introduced new memroot and arena for objects which lifetime is whole duration of function call (e.g. sp_rcontext, sp_cursor). We can't use caller's arena/memroot for those objects because in this case some fixed amount of memory will be consumed for each function/trigger invocation and so statements which involve lot of them will hog memory. Got rid of param_values array to avoid excessive juggling with arenas.
-
unknown authored
random test failures. mysql-test/t/rename.test: Fix race condition and add cleanup code.
-
- 04 May, 2006 2 commits
- 03 May, 2006 1 commit
-
-
unknown authored
There were two distict bugs: parse error was returned for valid statement and that error wasn't reported to the client. The fix ensures that EXPLAIN SELECT..INTO is accepted by parser and any other parse error will be reported to the client. mysql-test/r/explain.result: Add result for bug#15463. mysql-test/t/explain.test: Add test case for bug#15463. sql/sql_parse.cc: Assert that if parsing error has occured then apropriate error message has been pushed into error stack. sql/sql_yacc.yy: If there is no lex->result in select_var_ident rule, then we have to be in DESCRIBE mode.
-
- 02 May, 2006 6 commits
-
-
unknown authored
into mysql.com:/home/dlenev/mysql-5.0-bg11081
-
unknown authored
VC++Files/mysql.sln: mysql_client_test depends on mysys. VC++Files/mysys/mysys.vcproj: Add new file missing in previous push. mysys/my_memmem.c: Fix illegal pointer arithmetics on void *. tests/Makefile.am: -L must go before -l tests/mysql_client_test.c: No declarations after statement in C code.
-
unknown authored
into mysql.com:/home/hf/work/mysql-5.0.clean
-
unknown authored
-
unknown authored
into zippy.(none):/home/cmiller/work/mysql/mysql-5.0__bug17667 mysys/Makefile.am: Auto merged sql/sql_parse.cc: Auto merged
-
unknown authored
Bug#17667: An attacker has the opportunity to bypass query logging. This adds a new, local-only printf format specifier to our *printf functions that allows us to print known-size buffers that must not be interpreted as NUL-terminated "strings." It uses this format-specifier to print to the log, thus fixing this problem. include/my_sys.h: Add prototype for my_memmem() . mysys/Makefile.am: Add reference to new file, my_memmem.c mysys/mf_iocache2.c: Add a "%.1234b" and "%.*b" percent-code. It takes a width, just like "%s", but unlike the string-indicator, it requires the width and doesn't stop printing at NUL characters. Also, simplify the code a bit. TODO: This code should be unified with the strings/my_vnsprintf.c code in the future. sql/sql_parse.cc: The query is not a C-string, but is a sized buffer, containing any character at all, which may include NUL characters. strings/my_vsnprintf.c: Add a "%.1234b" and "%.*b" percent-code. It takes a width, just like "%s", but unlike the string-indicator, it requires the width and doesn't stop printing at NUL characters. tests/Makefile.am: We may need some of our local functions. tests/mysql_client_test.c: Add a "%.1234b" and "%.*b" percent-code. It takes a width, just like "%s", but unlike the string-indicator, it requires the width and doesn't stop printing at NUL characters. mysql-test/t/mysql_client_test.opt: New BitKeeper file ``mysql-test/t/mysql_client_test.opt'' Add '--log' server parameter. mysys/my_memmem.c: New BitKeeper file ``mysys/my_memmem.c'' Implement memmem, a black-box work-alike of the GNU memmem(), which functions like strstr() but for arbitrary blocks of memory.
-
- 01 May, 2006 9 commits
-
-
unknown authored
into mysql.com:/Users/kent/mysql/bk/mysql-5.0-new
-
unknown authored
include/config-win.h: Auto merged
-
unknown authored
into mysql.com:/home/jimw/my/mysql-5.0-clean
-
unknown authored
Use "./libtool --mode=execute" to find real path to executables support-files/mysql.spec.sh: Use "./libtool --mode=execute" to find real path to executables
-
unknown authored
into mysql.com:/home/hf/work/mysql-5.0.clean
-
unknown authored
BitKeeper/etc/ignore: Added client/mysql_upgrade to the ignore list client/mysql_upgrade.c: fixed for Win build include/config-win.h: fixed for Win build
-
unknown authored
into mysql.com:/home/jimw/my/mysql-5.0-clean
-
unknown authored
into mysql.com:/home/jimw/my/mysql-5.0-clean
-
unknown authored
into zippy.(none):/home/cmiller/work/mysql/merge/mysql-5.0 mysql-test/r/null.result: Auto merged mysql-test/t/null.test: Auto merged sql/sql_table.cc: Merge.
-
- 29 Apr, 2006 3 commits
-
-
unknown authored
into mysql.com:/Users/kent/mysql/bk/mysql-4.1-new
-
unknown authored
Fix strange "double" define for popen. Avoid warnings about sprintf() etc. being unsafe. Corrected typo "#endfif" include/config-win.h: Fix strange "double" define for popen. Avoid warnings about sprintf() etc. being unsafe. Corrected typo "#endfif"
-
unknown authored
Changed version to 4.1.20 configure.in: Changed version to 4.1.20
-
- 28 Apr, 2006 5 commits
-
-
unknown authored
Backport of changes in 5.0 (bug#18294) support-files/mysql.spec.sh: Backport of changes in 5.0 (bug#18294)
-
unknown authored
into mysql.com:/Users/kent/mysql/bk/mysql-4.1-new
-
unknown authored
Now test for NULLness the pointers returned from objects created from the default value. Pushing patch on behalf of cmiller. mysql-test/r/null.result: Add test case mysql-test/t/null.test: Add test case sql/sql_table.cc: No longer blindly dereference pointer of the string representation of the values, where "NULL" is NUL. Raise INVALID DEFAULT error messages where appropriate. Note that the -O1 optimization flag made debugging this extremely tricky, with misleading results, and that removing it from the Makefile during debugging can be invaluable.
-
unknown authored
into devsrv-b.mysql.com:/users/msvensson/mysql-5.0
-
unknown authored
into mysql.com:/Users/kent/mysql/bk/mysql-5.0-new
-