- 16 Sep, 2008 2 commits
-
-
Matthias Leich authored
Details: - backport of some improvements which prevent sporadic failures from 5.1 to 5.0 - @@GLOBAL.CONCURRENT_INSERT= 0 also for slave server - --sorted_result before all selects which have result sets with more than one row - Replace error numbers by error names
-
Vladislav Vaintroub authored
Correct usage of strncat() in get_symbol_path() 3rd parameter to strncat is changed to be count of remaining bytes in the output buffer minus 1.
-
- 15 Sep, 2008 2 commits
-
-
Patrick Crews authored
Moved fix for this bug to 5.0 as other mysqldump bugs seem tied to concurrent_insert being on Setting concurrent_insert off during this test as INSERTs weren't being completely processed before the calls to mysqldump, resulting in failing tests. Altered .test file to turn concurrent_insert off during the test and to restore it to whatever the value was at the start of the test when complete. Re-recorded .result file to account for changes to variables in the test.
-
Vladislav Vaintroub authored
The problem here is that symbols can not be loaded, because symbol path is not set and default path does not include the directory where PDB is located. The problem is _not_ reproducible on the same machine where mysqld.exe is built - if PDB is not found in the symbol path, dbghelp would fallback to fully qualified PDB path as given in the executable header and on the build host this will succeed. The solution is to calculate symbol path and pass it to SymInitialize() call.
-
- 11 Sep, 2008 1 commit
-
-
Timothy Smith authored
-
- 10 Sep, 2008 2 commits
-
-
Joerg Bruehe authored
-
Georgi Kodinov authored
-
- 09 Sep, 2008 1 commit
-
-
Ramil Kalimullin authored
Problem: <=> operator may return wrong results comparing NULL and a DATE/DATETIME/TIME value. Fix: properly check NULLs. mysql-test/r/type_datetime.result: Fix for bug#37526: asymertic operator <=> in trigger - test result. mysql-test/t/type_datetime.test: Fix for bug#37526: asymertic operator <=> in trigger - test case. sql/item_cmpfunc.cc: Fix for bug#37526: asymertic operator <=> in trigger - if is_nulls_eq is TRUE Arg_comparator::compare_datetime() should return 1 only if both arguments are NULL.
-
- 05 Sep, 2008 3 commits
-
-
unknown authored
-
Ramil Kalimullin authored
Problem: SELECT ... REGEXP BINARY NULL may lead to server crash/hang. Fix: properly handle NULL regular expressions. mysql-test/r/func_regexp.result: Fix for bug #39021: SELECT REGEXP BINARY NULL never returns - test result. mysql-test/t/func_regexp.test: Fix for bug #39021: SELECT REGEXP BINARY NULL never returns - test case. sql/item_cmpfunc.cc: Fix for bug #39021: SELECT REGEXP BINARY NULL never returns - checking regular expressions' null_value we tested it without a val_xxx() call before, which is wrong. Now Item_func_regex::regcomp() returns -1 in the case and allows to handle NULL expessions properly. sql/item_cmpfunc.h: Fix for bug #39021: SELECT REGEXP BINARY NULL never returns - checking regular expressions' null_value we tested it without a val_xxx() call before, which is wrong. Now Item_func_regex::regcomp() returns -1 in the case and allows to handle NULL expessions properly.
-
Ramil Kalimullin authored
-
- 03 Sep, 2008 3 commits
-
-
Ramil Kalimullin authored
in open_table() Problem: repeating "CREATE... ( AUTOINCREMENT) ... SELECT" may lead to an assertion failure. Fix: reset table->auto_increment_field_not_null after each record writing. mysql-test/r/create.result: Fix for bug#38821: Assert table->auto_increment_field_not_null failed in open_table() - test result. mysql-test/t/create.test: Fix for bug#38821: Assert table->auto_increment_field_not_null failed in open_table() - test case. sql/sql_insert.cc: Fix for bug#38821: Assert table->auto_increment_field_not_null failed in open_table() - reset table->auto_increment_field_not_null after writing a record for "{CREATE, INSERT}..SELECT".
-
Gleb Shchepa authored
-
Gleb Shchepa authored
INSERT .. SELECT .. ON DUPLICATE KEY UPDATE col=DEFAULT In order to get correct values from update fields that belongs to the SELECT part in the INSERT .. SELECT .. ON DUPLICATE KEY UPDATE statement, the server adds referenced fields to the select list. Part of the code that does this transformation is shared between implementations of the DEFAULT(col) function and the DEFAULT keyword (in the col=DEFAULT expression), and an implementation of the DEFAULT keyword is incomplete. mysql-test/r/default.result: Added test case for bug #39002. mysql-test/t/default.test: Added test case for bug #39002. sql/item.cc: The Item_default_value::transform() function has been modified to take into account the fact that the DEFAULT keyword has no arguments unlike the DEFAULT(col) function that always has an argument.
-
- 01 Sep, 2008 4 commits
-
-
Vladislav Vaintroub authored
Bug#33031 app linked to libmysql.lib crash if run as service in vista under localsystem There are some problems using DllMain hook functions on Windows that automatically do global and per-thread initialization for libmysqld.dll 1)per-thread initialization(DLL_THREAD_ATTACH) MySQL internally counts number of active threads that and causes a delay in in my_end() if not all threads are exited. But,there are threads that can be started either by Windows internally (often in TCP/IP scenarios) or by user himself - those threads are not necessarily using libmysql.dll functionality, but nonetheless the contribute to the count of open threads. 2)process-initialization (DLL_PROCESS_ATTACH) my_init() calls WSAStartup that itself loads DLLs and can lead to a deadlock in Windows loader. Fix is to remove dll initialization code from libmysql.dll in general case. I still leave an environment variable LIBMYSQL_DLLINIT, which if set to any value will cause the old behavior (DLL init hooks will be called). This env.variable exists only to prevent breakage of existing Windows-only applications that don't do mysql_thread_init() and work ok today. Use of LIBMYSQL_DLLINIT is discouraged and it will be removed in 6.0
-
Davi Arnaut authored
-
Vladislav Vaintroub authored
-
Mats Kindahl authored
-
- 29 Aug, 2008 1 commit
-
-
Kent Boortz authored
-
- 28 Aug, 2008 2 commits
-
-
Matthias Leich authored
-
Georgi Kodinov authored
-
- 27 Aug, 2008 3 commits
-
-
Gleb Shchepa authored
returns unexpected result If: 1. a table has a not nullable BIT column c1 with a length shorter than 8 bits and some additional not nullable columns c2 etc, and 2. the WHERE clause is like: (c1 = constant) AND c2 ..., the SELECT query returns unexpected result set. The server stores BIT columns in a tricky way to save disk space: if column's bit length is not divisible by 8, the server places reminder bits among the null bits at the start of a record. The rest bytes are stored in the record itself, and Field::ptr points to these rest bytes. However if a bit length of the whole column is less than 8, there are no remaining bytes, and there is nothing to store in the record at its regular place. In this case Field::ptr points to bytes actually occupied by the next column in a record. If both columns (BIT and the next column) are NOT NULL, the Field::eq function incorrectly deduces that this is the same column, so query transformation/equal item elimination code (see build_equal_items_for_cond) may mix these columns and damage conditions containing references to them. mysql-test/r/type_bit.result: Added test case for bug #37799. mysql-test/t/type_bit.test: Added test case for bug #37799. sql/field.h: 1. The Field::eq function has been modified to take types of comparing columns into account to distinguish between BIT and not BIT columns referencing the same bytes in a record. 2. Unnecessary type comparison has been removed from the Field_bit::eq function (moved to Field::eq).
-
Joerg Bruehe authored
into the 5.0 team tree.
-
Evgeny Potemkin authored
used causes server crash. When the loose index scan access method is used values of aggregated functions are precomputed by it. Aggregation of such functions shouldn't be performed in this case and functions should be treated as normal ones. The create_tmp_table function wasn't taking this into account and this led to a crash if a query has MIN/MAX aggregate functions and employs temporary table and loose index scan. Now the JOIN::exec and the create_tmp_table functions treat MIN/MAX aggregate functions as normal ones when the loose index scan is used. mysql-test/r/group_min_max.result: Added a test case for the bug#38195. mysql-test/t/group_min_max.test: Added a test case for the bug#38195. sql/sql_select.cc: Bug#38195: Incorrect handling of aggregate functions when loose index scan is used causes server crash. The JOIN::exec and the create_tmp_table functions treat MIN/MAX aggregate functions as normal ones when the loose index scan is used.
-
- 26 Aug, 2008 5 commits
-
-
Davi Arnaut authored
-
Ramil Kalimullin authored
Typo fixed. No test case as we actually don't use rtree_get_first() and rtree_get_next() at present.
-
Ramil Kalimullin authored
Problem: data consistency check (maximum record length) for a correct MyISAM table with CHECKSUM=1 and ROW_FORMAT=DYNAMIC option may fail due to wrong inner MyISAM parameter. In result we may have the table marked as 'corrupted'. Fix: properly set MyISAM maximum record length parameter. myisam/mi_create.c: Fix for bug #37310: 'on update CURRENT_TIMESTAMP' option crashes the table Use HA_OPTION_PACK_RECORD instead of HA_PACK_RECORD (typo?) calculating packed record length.
-
Alexey Botchkov authored
-
Alexey Botchkov authored
-
- 25 Aug, 2008 4 commits
-
-
Joerg Bruehe authored
Mostly, this affected files (programs, scripts, and manual pages) which got built during a RPM build but were not listed in the appropriate "%files" section of the "spec" file. This is fixed now, they are added. To make this consistent, this patch also makes the build of "innochecksum" (and its inclusion in a tar.gz or other package) depend on whether InnoDB is configured in the build. Also, some tools to create Windows packages are irrelevant in any binary Unix package (not the sources !), and so they are deleted before packaging. configure.in: To prevent "innochecksum" from getting built even if InnoDB is not configured (and then being included in such packages), we need an "automake condition" that evaluates whether we have InnoDB. extra/Makefile.am: Evaluate the new automake condition about having InnoDB, and make the build of "innochecksum" depend on it. man/Makefile.am: Cleanup: There are manual files which we do not need, like those about tools for Windows builds / packaging (irrelevant in any Unix binary package) and about NDB tools which do not get built. scripts/make_binary_distribution.sh: In any Unix binary package, do not include tools for Windows builds (and their manual pages). This does not affect source packages, of course. support-files/mysql.spec.sh: There were several files (binaries, scripts, and manuals) which got built with a RPM but never packages, add them to the respective RPM.
-
Sergey Petrunia authored
- Use the compiler's default copy constructor for QUICK_RANGE_SELECT. bcopy(this, copy, ...) call caused some odd action on gcc-4.1.2 on x86_64 sql/opt_range.cc: BUG#36639: subselect.test crashes on 64 bit pentium4 when compiled for valgrind - Set QUICK_SELECT_DESC not to use MRR implementation (code moved to here from opt_range.h) sql/opt_range.h: BUG#36639: subselect.test crashes on 64 bit pentium4 when compiled for valgrind - Use the compiler's default copy constructor for QUICK_RANGE_SELECT. bcopy(this, copy, ...) call caused some odd action on gcc-4.1.2 on x86_64
-
Davi Arnaut authored
Dumping information about locks in use by sending a SIGHUP signal to the server or by invoking the "mysqladmin debug" command may lead to a server crash in debug builds or to undefined behavior in production builds. The problem was that a mutex that protects a lock object (THR_LOCK) might have been destroyed before the lock object was actually removed from the list of locks in use, causing a race condition with other threads iterating over the list. The solution is to destroy the mutex only after removing lock object from the list. mysys/thr_lock.c: Destroy the mutex that protects the lock object only after removing the lock object from the list of locks in use.
-
Sergey Glukhov authored
plugin_dir option backported from 5.1 mysql-test/r/udf.result: result fix sql/mysql_priv.h: opt_plugin_dir and opt_plugin_dir_ptr declared. sql/mysqld.cc: 'plugin_dir' option added sql/set_var.cc: 'plugin_dir' option added. sql/sql_udf.cc: opt_plugin_dir added to the udf->dl path. Warn if it's not specified. sql/unireg.h: PLUGINDIR defined.
-
- 22 Aug, 2008 3 commits
-
-
Timothy Smith authored
-
Matthias Leich authored
Bug#26687 rpl_ddl test fails if run with --innodb option Details: - The current test + the expected results do only fit if the slave uses MyISAM for mysqltest1.t1. Therefore skip the test if we do not meet these conditions. - The solution for 5.1 will look quite different because "ps_ddl" is already much improved in MySQL 5.1.
-
Alexey Botchkov authored
test_if_data_home_dir fixed to look into real path. Checks added to mi_open for symlinks into data home directory. per-file messages: include/my_sys.h Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY. my_is_symlink interface added include/myisam.h Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY. myisam_test_invalid_symlink interface added myisam/mi_check.c Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY. mi_open_datafile calls modified myisam/mi_open.c Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY. code added to mi_open to check for symlinks into data home directory. mi_open_datafile now accepts 'original' file path to check if it's an allowed symlink. myisam/mi_static.c Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY. myisam_test_invlaid_symlink defined myisam/myisamchk.c Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY. mi_open_datafile call modified myisam/myisamdef.h Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY. mi_open_datafile interface modified - 'real_path' parameter added mysql-test/r/symlink.test Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY. error codes corrected as some patch now rejected pointing inside datahome mysql-test/r/symlink.result Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY. error messages corrected in the result mysys/my_symlink.c Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY. my_is_symlink() implementsd my_realpath() now returns the 'realpath' even if a file isn't a symlink sql/mysql_priv.h Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY. test_if_data_home_dir interface sql/mysqld.cc Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY. myisam_test_invalid_symlik set with the 'test_if_data_home_dir' sql/sql_parse.cc Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY. error messages corrected test_if_data_home_dir code fixed
-
- 21 Aug, 2008 1 commit
-
-
Vladislav Vaintroub authored
- Cherry pick 6.0 changes for Visual Studio 2008 support - Add scripts win\build-vs9.bat and win\build-vs9_x64.bat Also, remove CMake generated visual studio project files. extra/yassl/taocrypt/taocrypt.vcproj: remove file that is generated each time by cmake extra/yassl/yassl.vcproj: remove file that is generated each time by cmake server-tools/instance-manager/mysqlmanager.vcproj: remove file that is generated each time by cmake win/build-vs9.bat: Add script for Visual Studio 2008 support win/build-vs9_x64.bat: Add script for Visual Studio 2008 support zlib/zutil.h: support Visual Studio 2008
-
- 20 Aug, 2008 1 commit
-
-
Sergey Glukhov authored
Send_field.org_col_name has broken value on secondary execution. It happens when result field is created from the field which belongs to view due to forgotten assignment of some Send_field attributes. The fix: set Send_field.org_col_name,org_table_name with correct value during Send_field intialization. mysql-test/r/metadata.result: result fix The result file was changed because now forgotten attributes are properly set. mysql-test/r/sp.result: test result mysql-test/t/sp.test: test case sql/item.cc: Send_field.org_col_name has broken value on secondary execution. It happens when result field is created from the field which belongs to view due to forgotten assignment of some Send_field attributes. The fix: set Send_field.org_col_name,org_table_name with correct value during Send_field intialization. tests/mysql_client_test.c: test case fix The test was changed because now forgotten attributes are properly set.
-
- 19 Aug, 2008 2 commits
-
-
Georgi Kodinov authored
-
Georgi Kodinov authored
is used causes server crash. Revert the fix : unstable test case revealed by pushbuild
-