- 13 Jun, 2006 2 commits
-
-
unknown authored
into moonbone.local:/work/16377-bug-4.1-opt-mysql
-
unknown authored
can lead to a wrong result. All date/time functions has the STRING result type thus their results are compared as strings. The string date representation allows a user to skip some of leading zeros. This can lead to wrong comparison result if a date/time function result is compared to such a string constant. The idea behind this bug fix is to compare results of date/time functions and data/time constants as ints, because that date/time representation is more exact. To achieve this the agg_cmp_type() is changed to take in the account that a date/time field or an date/time item should be compared as ints. This bug fix is partially back ported from 5.0. The agg_cmp_type() function now accepts THD as one of parameters. In addition, it now checks if a date/time field/function is present in the list. If so, it tries to coerce all constants to INT to make date/time comparison return correct result. The field for the constant coercion is taken from the Item_field or constructed from the Item_func. In latter case the constructed field will be freed after conversion of all constant items. Otherwise the result is same as before - aggregated with help of the item_cmp_type() function. From the Item_func_between::fix_length_and_dec() function removed the part which was converting date/time constants to int if possible. Now this is done by the agg_cmp_type() function. The new function result_as_longlong() is added to the Item class. It indicates that the item is a date/time item and result of it can be compared as int. Such items are date/time fields/functions. Correct val_int() methods are implemented for classes Item_date_typecast, Item_func_makedate, Item_time_typecast, Item_datetime_typecast. All these classes are derived from Item_str_func and Item_str_func::val_int() converts its string value to int without regard to the date/time type of these items. Arg_comparator::set_compare_func() and Arg_comparator::set_cmp_func() functions are changed to substitute result type of an item with the INT_RESULT if the item is a date/time item and another item is a constant. This is done to get a correct result of comparisons like date_time_function() = string_constant. mysql-test/r/cast.result: Fixed wrong test case result after bug fix#16377. sql/item_timefunc.h: Fixed bug#16377: result of DATE/TIME functions were compared as strings which can lead to a wrong result. The result_as_longlong() function is set to return TRUE for these classes: Item_date, Item_date_func, Item_func_curtime, Item_func_sec_to_time, Item_date_typecast, Item_time_typecast, Item_datetime_typecast, Item_func_makedate. sql/item_timefunc.cc: Fixed bug#16377: result of DATE/TIME functions were compared as strings which can lead to a wrong result.Correct val_int() methods are implemented for classes Item_date_typecast, Item_func_makedate, Item_time_typecast, Item_datetime_typecast. sql/item_cmpfunc.h: Fixed bug#16377: result of DATE/TIME functions were compared as strings which can lead to a wrong result. Arg_comparator::set_compare_func() and Arg_comparator::set_cmp_func() functions are changed to substitute result type of an item with the INT_RESULT if the item is a date/time item and another item is a constant. sql/field.cc: Fixed bug#16377: result of DATE/TIME functions were compared as strings which can lead to a wrong result. Field::set_warning(), Field::set_datetime_warning() now use current_thd to get thd if table isn't set. sql/item_cmpfunc.cc: Fixed bug#16377: result of DATE/TIME functions were compared as strings which can lead to a wrong result. The agg_cmp_type() function now accepts THD as one of parameters. In addition, it now checks if a date/time field/function is present in the list. If so, it tries to coerce all constants to INT to make date/time comparison return correct result. The field for the constant coercion is taken from the Item_field or constructed from the Item_func. In latter case the constructed field will be freed after conversion of all constant items. Otherwise the result is same as before - aggregated with help of the item_cmp_type() function. sql/item.h: The new function result_as_longlong() is added to the Item class. It indicates that the item is a date/time item and result of it can be compared as int. Such items are date/time fields/functions. mysql-test/t/func_time.test: Added test case fot bug#16377: result of DATE/TIME functions were compared as strings which can lead to a wrong result. mysql-test/r/func_time.result: Added test case fot bug#16377: result of DATE/TIME functions were compared as strings which can lead to a wrong result.
-
- 03 Jun, 2006 1 commit
-
-
unknown authored
sql/opt_sum.cc: Cleanup
-
- 02 Jun, 2006 3 commits
-
-
unknown authored
into rurik.mysql.com:/home/igor/mysql-4.1-opt
-
unknown authored
The bug report revealed two problems related to min/max optimization: 1. If the length of a constant key used in a SARGable condition for for the MIN/MAX fields is greater than the length of the field an unwanted warning on key truncation is issued; 2. If MIN/MAX optimization is applied to a partial index, like INDEX(b(4)) than can lead to returning a wrong result set. mysql-test/r/func_group.result: Added test cases for bug #18206. mysql-test/t/func_group.test: Added test cases for bug #18206. sql/opt_sum.cc: Fixed bug #18206. Suppressed the warning about data truncation when store_val_in_field was used to store keys for the field used in MIN/MAX optimization. Blocked MIN/MAX optimization for partial keys, such as in INDEX(b(4)). sql/sql_select.cc: Fixed bug #18206. Added a parameter for the function store_val_in_field allowing to control setting warnings about data truncation in the function. sql/sql_select.h: Fixed bug #18206. Added a parameter for the function store_val_in_field allowing to control setting warnings about data truncation in the function.
-
unknown authored
3.23 regression test failure The member SEL_ARG::min_flag was not initialized, due to which the condition for no GEOM_FLAG in function key_or did not choose "Range checked for each record" as the correct access method. mysql-test/r/select.result: testcase for 'Range checked' access method mysql-test/t/select.test: testcase for 'Range checked' access method sql/opt_range.cc: All of the class members initialized
-
- 30 May, 2006 1 commit
-
-
unknown authored
into moonbone.local:/work/18360-bug-4.1-mysql-opt
-
- 29 May, 2006 1 commit
-
-
unknown authored
The IN() function uses agg_cmp_type() to aggregate all types of its arguments to find out some common type for comparisons. In this particular case the char() and the int was aggregated to double because char() can contain values like '1.5'. But all strings which do not start from a digit are converted to 0. thus 'a' and 'z' become equal. This behaviour is reasonable when all function arguments are constants. But when there is a field or an expression this can lead to false comparisons. In this case it makes more sense to coerce constants to the type of the field argument. The agg_cmp_type() function now aggregates types of constant and non-constant items separately. If some non-constant items will be found then their aggregated type will be returned. Thus after the aggregation constants will be coerced to the aggregated type. mysql-test/t/func_in.test: Added test case for bug#18360: Incorrect type coercion in IN() results in false comparison. mysql-test/r/func_in.result: Added test case for bug#18360: Incorrect type coercion in IN() results in false comparison. sql/item_cmpfunc.cc: Fixed bug#18360: Incorrect type coercion in IN() results in false comparison. The agg_cmp_type() function now aggregates types of constant and non-constant items separately. If some non-constant items will be found then their aggregated type will be returned. Thus after the aggregation constants will be coerced to the aggregated type.
-
- 28 May, 2006 1 commit
-
-
unknown authored
In multi-table delete a table for delete can't be used for selecting in subselects. Appropriate error was raised but wasn't checked which leads to a crash at the execution phase. The mysql_execute_command() now checks for errors before executing select for multi-delete. mysql-test/t/multi_update.test: Added test case for bug#19225: unchecked error results in server crash mysql-test/r/multi_update.result: Added test case for bug#19225: unchecked error results in server crash sql/sql_parse.cc: Fixed bug#19225: unchecked error results in server crash The mysql_execute_command() now checks for errors before executing select for multi-delete.
-
- 23 May, 2006 3 commits
- 22 May, 2006 1 commit
-
-
unknown authored
into mysql.com:/usr/home/ram/work/4.1.b18536
-
- 21 May, 2006 1 commit
-
-
unknown authored
into mysql.com:/home/hf/work/mysql-4.1.clean
-
- 20 May, 2006 2 commits
- 19 May, 2006 4 commits
-
-
unknown authored
client/mysqldump.c: Fix for bug #18536: mysqldump does not maintain table orders as per --tables option - use list to store table names instead of hash. mysql-test/r/mysqldump.result: Fix for bug #18536: mysqldump does not maintain table orders as per --tables option - test result. mysql-test/t/mysqldump.test: Fix for bug #18536: mysqldump does not maintain table orders as per --tables option - test case.
-
unknown authored
into neptunus.(none):/home/msvensson/mysql/mysql-4.1
-
unknown authored
into neptunus.(none):/home/msvensson/mysql/mysql-4.1
-
unknown authored
- A segfault occured when the function 'kill_server' called 'my_sigset' with signal number 0. 'my_sigset' is a macro which uses 'sigaction' to install the signal handler with an invalid signal number will on most platforms return EINVAL but yields a segfauilt on IRIX 6.5 - The server crash was detected by mysqld_safe and it was restarted although a shutdown was requested. - Semantics of kill_server(0) is not known, leaving it intact include/my_pthread.h: Check return value from sigaction with a DBUG_ASSERT Also DBUG_ASSERT if signal number 0 is passed sql/mysqld.cc: Don't call my_sigset if signo is 0
-
- 17 May, 2006 2 commits
- 16 May, 2006 9 commits
-
-
unknown authored
into poseidon.ndb.mysql.com:/home/tomas/mysql-4.1-main
-
unknown authored
into poseidon.ndb.mysql.com:/home/tomas/mysql-4.1-main
-
unknown authored
ndb: ndb_waiter disconnect/reconnect on get status error ndb/src/mgmapi/mgmapi.cpp: ndb: added some missing error codes to mgmapi ndb/tools/waiter.cpp: ndb: ndb_waiter disconnect/reconnect on get status error
-
unknown authored
into production.mysql.com:/usersnfs/tulin/mysql-4.1
-
unknown authored
into mysql.com:/data0/mysqldev/my/mysql-4.1 mysql-test/t/disabled.def: SCCS merged
-
unknown authored
fixing encoding example because of table names can not be in koi8r on some platforms. mysql-test/t/rpl_temporary.test: koi8r encoding to name tables is changed for latin1 for the former does not work on some platforms. The effect of the test remains: a test table is named to have multibyte utf8 representation, which is the essence of the bug.
-
unknown authored
into poseidon.ndb.mysql.com:/home/tomas/mysql-4.1-main
-
unknown authored
- not having lock can cause "block number list" to become corrupt => crash - also may result in 2 threads receiving same block no => possble cause of Bug #13987 Cluster: Loss of data nodes can cause high CPU usage from ndb_mgmd ndb/src/mgmsrv/MgmtSrvr.cpp: ndb: added missing lock of mutex
-
unknown authored
into poseidon.ndb.mysql.com:/home/tomas/mysql-4.1 support-files/mysql.spec.sh: Auto merged
-
- 15 May, 2006 5 commits
-
-
unknown authored
ndb/test/ndbapi/Makefile.am: enable testInterpreter ndb/test/ndbapi/testInterpreter.cpp: add test case Bug19537 the bug fix also fixed IncValue64 for whatever reason.. ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp: bug#19537: write_attr: perform arithmetic conversion Uint64 to Uint32
-
unknown authored
into mysql.com:/home/alexi/innodb/mysql-4.1-ss29
-
unknown authored
-
unknown authored
- invalidate ndb dict cache on cluster disconnect (ClusterMgr.cpp) - add check for correct frm on external lock when table cache is found invalid ndb/include/ndbapi/ndb_cluster_connection.hpp: Bug #16875 Using stale MySQLD FRM files can cause restored cluster to fail ndb/src/ndbapi/ClusterMgr.cpp: Bug #16875 Using stale MySQLD FRM files can cause restored cluster to fail ndb/src/ndbapi/ClusterMgr.hpp: Bug #16875 Using stale MySQLD FRM files can cause restored cluster to fail ndb/src/ndbapi/DictCache.cpp: Bug #16875 Using stale MySQLD FRM files can cause restored cluster to fail ndb/src/ndbapi/DictCache.hpp: Bug #16875 Using stale MySQLD FRM files can cause restored cluster to fail ndb/src/ndbapi/TransporterFacade.hpp: Bug #16875 Using stale MySQLD FRM files can cause restored cluster to fail ndb/src/ndbapi/ndb_cluster_connection.cpp: Bug #16875 Using stale MySQLD FRM files can cause restored cluster to fail ndb/src/ndbapi/ndb_cluster_connection_impl.hpp: Bug #16875 Using stale MySQLD FRM files can cause restored cluster to fail sql/ha_ndbcluster.cc: Bug #16875 Using stale MySQLD FRM files can cause restored cluster to fail mysql-test/r/ndb_autodiscover3.result: Bug #16875 Using stale MySQLD FRM files can cause restored cluster to fail mysql-test/t/ndb_autodiscover3.test: Bug #16875 Using stale MySQLD FRM files can cause restored cluster to fail
-
unknown authored
Fix BUG#19542 "InnoDB doesn't increase the Handler_read_prev counter. innobase/os/os0file.c: Applied innodb-4.1-ss29 snapshot. Check the page trailers also after writing to disk. This improves the chances of diagnosing Bug 18886. os_file_check_page_trailers(): New function for checking that two copies of the LSN stamped on the pages match. os_aio_simulated_handle(): Call os_file_check_page_trailers() before and after os_file_write(). sql/ha_innodb.cc: Applied innodb-4.1-ss29 snapshot. Increment statistic counter in ha_innobase::index_prev().
-
- 14 May, 2006 3 commits
-
-
unknown authored
fixing names length. Got an issue when merged to 5.0, decided to fix starting from 4.1 mysql-test/t/mysqlbinlog.test: fixing temp table name to fit to 64 bytes for 5.0 mysql-test/t/rpl_temporary.test: fixing temp table name to fit to 64 bytes for 5.0
-
unknown authored
mysqltest program should be really multithreaded to perform this test with the embedded server. So this test disabled until we redo mysqltest this way mysql-test/t/init_connect.test: test can't work properly with the embedded server yet
-
unknown authored
this test just can't work in the embedded server mysql-test/t/wait_timeout.test: test can't work properly with the embedded server yet
-
- 13 May, 2006 1 commit
-
-
unknown authored
fixing a path to find charset by $MYSQL client. I believe the fix is done what should be by default. mysql-test/t/mysqlbinlog.test: --character-sets-dir=../sql/share/charsets is added otherwise client/.libs/lt-mysql searches in /usr/local/mysql ... A bug? mysql-test/t/rpl_temporary.test: --character-sets-dir=../sql/share/charsets/
-