- 19 Nov, 2010 3 commits
-
-
Alexander Barkov authored
Regression introduced by WL#2649. Problem: queries with date/datetime columns did not use indexes: set names non_latin1_charset; select * from date_index_test where date_column between '2010-09-01' and '2010-10-01'; before WL#2649 indexes worked fine because charset of date/datetime columns was BINARY which always won. Fix: testing that collation of the operation matches collation of the field is only needed in case of "real" string data types. For DATE, DATETIME it's not needed. @ mysql-test/include/ctype_numconv.inc @ mysql-test/r/ctype_binary.result @ mysql-test/r/ctype_cp1251.result @ mysql-test/r/ctype_latin1.result @ mysql-test/r/ctype_ucs.result @ mysql-test/r/ctype_utf8.result Adding tests @ sql/field.h Adding new method Field_str::match_collation_to_optimize_range() for use in opt_range.cc to distinguish between "real string" types like CHAR, VARCHAR, TEXT (Field_string, Field_varstring, Field_blob) and "almost string" types DATE, TIME, DATETIME (Field_newdate, Field_datetime, Field_time, Field_timestamp) @ sql/opt_range.cc Using new method instead of checking result_type() against STRING result. Note: Another part of this problem (which is not regression) is submitted separately (see bug##58329).
-
Alexander Barkov authored
Problem: nr_of_decimals could read behind the end of the buffer in case of a non-null-terminated string, which caused valgring warnings. Fix: fixing nr_of_decimals not to read behind the "end" pointer. modified: @ mysql-test/r/xml.result @ mysql-test/t/xml.test @ sql/item.cc
-
Georgi Kodinov authored
Fixed a typo in an error message.
-
- 17 Nov, 2010 1 commit
-
-
Georgi Kodinov authored
The plugin code was releasing the plugin and only then was reporting an error referencing it. Fixed by first reporting an error and then freeing up the plugin.
-
- 19 Nov, 2010 14 commits
-
-
Georgi Kodinov authored
Updated the server to treat a missing mysql.proxies_priv table as empty. Added some grants to make sure tables are correctly opened when they must be opened. Fixed a mysql_upgrade omission not adding rights to root to execute GRANT PROXY on other users. Removed a redundant CREATE TABLE from mysql_system_tables_fix.sql since it's always executed after mysql_system_tables.sql and the first file has CREATE TABLE in it. Added a test case for the above. Fixed error handling code to close the cursor
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
Sven Sandberg authored
-
Bjorn Munch authored
-
Bjorn Munch authored
-
Bjorn Munch authored
-
Vladislav Vaintroub authored
-
Bjorn Munch authored
-
Dmitry Lenev authored
during the merge.
-
Dmitry Lenev authored
mysql-5.5-runtime tree.
-
Dmitry Lenev authored
warnings in Event_queue::get_top_for_execution_if_time() method which has caused -Werror build to fail.
-
Dmitry Lenev authored
leave the table unusable". Failing ALTER statement on partitioned table could have left this table in an unusable state. This has happened in cases when ALTER was executed using "fast" algorithm, which doesn't involve copying of data between old and new versions of table, and the resulting new table was incompatible with partitioning function in some way. The problem stems from the fact that discrepancies between new table definition and partitioning function are discovered only when the table is opened. In case of "fast" algorithm this has happened too late during ALTER's execution, at the moment when all changes were already done and couldn't have been reverted. In the cases when "slow" algorithm, which copies data, is used such discrepancies are detected at the moment new table definition is opened implicitly when new version of table is created in storage engine. As result ALTER is aborted before any changes to table were done. This fix tries to address this issue by ensuring that "fast" algorithm behaves similarly to "slow" algorithm and checks compatibility between new definition and partitioning function by trying to open new definition after .FRM file for it has been created. Long term we probably should implement some way to check compatibility between partitioning function and new table definition which won't involve opening it, as this should allow much cleaner fix for this problem. mysql-test/r/partition_innodb.result: Added test for bug #57985 "ONLINE/FAST ALTER PARTITION can fail and leave the table unusable". mysql-test/t/partition_innodb.test: Added test for bug #57985 "ONLINE/FAST ALTER PARTITION can fail and leave the table unusable". sql/sql_table.cc: Ensure that in cases when .FRM for partitioned table is created without creating table in storage engine (e.g. during "fast" ALTER TABLE) we still open table definition. This allows to check that definition of created table/.FRM is compatible with its partitioning function.
-
Alexander Barkov authored
A post-patch fixing test failures on Windows. Host name in "SHOW PROCESSLIST" is displayed with port number for some reasons.
-
- 18 Nov, 2010 16 commits
-
-
Jon Olav Hauglid authored
No conflicts
-
Georgi Kodinov authored
options/settings 1. Changed the default value for socket on Windows to the windows default 2. Removed hard-coded trailing slashes from innodb_data_home_dir and innodb_log_group_name_dir. 3. Added extra backslashes to the innodb directory example 4. Made the tempdir platform "dependent" 5. Fixed the comments in the .ini files 6. Removed the tmpdir from the templates and the scripts
-
Bjorn Munch authored
-
Jon Olav Hauglid authored
No conflicts
-
Alexander Barkov authored
-
Vasil Dimov authored
-
Alexander Barkov authored
Problem: Extended characters outside of ASCII range where not displayed properly in SHOW PROCESSLIST, because thd_info->query was always sent as system_character_set (utf8). This was wrong, because query buffer is never converted to utf8 - it is always have client character set. Fix: sending query buffer using query character set @ sql/sql_class.cc @ sql/sql_class.h Introducing a new class CSET_STRING, a LEX_STRING with character set. Adding set_query(&CSET_STRING) Adding reset_query(), to use instead of set_query(0, NULL). @ sql/event_data_objects.cc Using reset_query() @ sql/log_event.cc Using reset_query() Adding charset argument to set_query_and_id(). @ sql/slave.cc Using reset_query(). @ sql/sp_head.cc Changing backing up and restore code to use CSET_STRING. @ sql/sql_audit.h Using CSET_STRING. In the "else" branch it's OK not to use global_system_variables.character_set_client. &my_charset_latin1, which is set in constructor, is fine (verified with Sergey Vojtovich). @ sql/sql_insert.cc Using set_query() with proper character set: table_name is utf8. @ sql/sql_parse.cc Adding character set argument to set_query_and_id(). (This is the main point where thd->charset() is stored into thd->query_string.cs, for use in "SHOW PROCESSLIST".) Using reset_query(). @ sql/sql_prepare.cc Storing client character set into thd->query_string.cs. @ sql/sql_show.cc Using CSET_STRING to fetch and send charset-aware query information from threads. @ storage/myisam/ha_myisam.cc Using set_query() with proper character set: table_name is utf8. @ mysql-test/r/show_check.result @ mysql-test/t/show_check.test Adding tests
-
Vasil Dimov authored
-
Vasil Dimov authored
-
Vasil Dimov authored
-
Vasil Dimov authored
-
Vasil Dimov authored
-
Davi Arnaut authored
be sent to a user even if its the connection that is actually being killed.
-
Alexander Barkov authored
-
Alexander Barkov authored
Problem: crash in Item_float constructor on DBUG_ASSERT due to not null-terminated string parameter. Fix: making Item_float::Item_float non-null-termintated parameter safe: - Using temporary buffer when generating error modified: @ mysql-test/r/xml.result @ mysql-test/t/xml.test @ sql/item.cc
-
Magne Mahre authored
NAME_CONST(..) was used wrongly in a HAVING clause, and should have caused a user error. Instead, it caused a segmentation fault. During parsing, the value parameter to NAME_CONST was specified to be an uninitialized Item_ref object (it would be resolved later). During the semantic analysis, the object is tested, and since it was not initialied, the server seg.faulted. The fix is to check if the object is initialized before testing it. The same pattern has already been applied to most other methods in the Item_ref class. Bug was introduced by the optimization done as part of Bug#33546.
-
- 17 Nov, 2010 6 commits
-
-
Vladislav Vaintroub authored
The reason for the bug is that : - we use system checks in cmake/os/mysql_release.cmake - we include cmake/os/mysql_release.cmake using CMAKE_USER_MAKE_RULES_OVERRIDE - this (having system checks based on TRY_COMPILE inside file pointed by CMAKE_USER_MAKE_RULES_OVERRIDE does not work with cmake 2.8.3, and according to Kitware was never meant to work, it just happened to work by accident until 2.8.2 release (though, it seems not to work wiith 2.6.0 either) Related CMake bug discussing the situation: http://public.kitware.com/Bug/view.php?id=11469 The fix is to use INCLUDE instead of CMAKE_USER_MAKE_RULES_OVERRIDE as suggested by Kitware. The downside is that compile flags are not in cache, but this is pure cosmetics. The functionality is the same, flags are used for compiling are correct using INCLUDE.
-
Davi Arnaut authored
sql/sql_acl.cc: Must use DBUG_RETURN in a function instrumented with DBUG_ENTER.
-
Tor Didriksen authored
mysql-test/r/func_math.result: Add test for Bug #58137 mysql-test/t/func_math.test: Add test for Bug #58137 sql/field.cc: Skip calling my_gcvt() if we are trying to insert a double into a char(0) column.
-
Bjorn Munch authored
Evaluation would start with the space and thus ignore the $ Added while() to skip past white space
-
Bjorn Munch authored
-
Bjorn Munch authored
-