- 26 Apr, 2007 2 commits
-
-
unknown authored
into moonbone.local:/mnt/gentoo64/work/16377-bug-5.0-opt-mysql mysql-test/r/subselect.result: Auto merged sql/item.cc: Auto merged sql/item.h: Auto merged sql/item_cmpfunc.cc: Auto merged sql/item_cmpfunc.h: Auto merged sql/sql_select.cc: Auto merged tests/mysql_client_test.c: Auto merged
-
unknown authored
DATE and DATETIME can be compared either as strings or as int. Both methods have their disadvantages. Strings can contain valid DATETIME value but have insignificant zeros omitted thus became non-comparable with other DATETIME strings. The comparison as int usually will require conversion from the string representation and the automatic conversion in most cases is carried out in a wrong way thus producing wrong comparison result. Another problem occurs when one tries to compare DATE field with a DATETIME constant. The constant is converted to DATE losing its precision i.e. losing time part. This fix addresses the problems described above by adding a special DATE/DATETIME comparator. The comparator correctly converts DATE/DATETIME string values to int when it's necessary, adds zero time part (00:00:00) to DATE values to compare them correctly to DATETIME values. Due to correct conversion malformed DATETIME string values are correctly compared to other DATE/DATETIME values. As of this patch a DATE value equals to DATETIME value with zero time part. For example '2001-01-01' equals to '2001-01-01 00:00:00'. The compare_datetime() function is added to the Arg_comparator class. It implements the correct comparator for DATE/DATETIME values. Two supplementary functions called get_date_from_str() and get_datetime_value() are added. The first one extracts DATE/DATETIME value from a string and the second one retrieves the correct DATE/DATETIME value from an item. The new Arg_comparator::can_compare_as_dates() function is added and used to check whether two given items can be compared by the compare_datetime() comparator. Two caching variables were added to the Arg_comparator class to speedup the DATE/DATETIME comparison. One more store() method was added to the Item_cache_int class to cache int values. The new is_datetime() function was added to the Item class. It indicates whether the item returns a DATE/DATETIME value. sql/item.cc: Bug#27590: Wrong DATE/DATETIME comparison. One more store() method was added to the Item_cache_int class to cache int values. The new is_datetime() function was added to the Item class. It indicates whether the item returns a DATE/DATETIME value. sql/item.h: Bug#27590: Wrong DATE/DATETIME comparison. One more store() method was added to the Item_cache_int class to cache int values. The new is_datetime() function was added to the Item class. It indicates whether the item returns a DATE/DATETIME value. sql/item_cmpfunc.cc: Bug#27590: Wrong DATE/DATETIME comparison. The compare_datetime() function is added to the Arg_comparator class. It implements the correct comparator for DATE/DATETIME values. Two supplementary functions called get_date_from_str() and get_datetime_value() are added. The first one extracts DATE/DATETIME value from a string and the second one retrieves the correct DATE/DATETIME value from an item. The new Arg_comparator::can_compare_as_dates() function is added and used to check whether two given items can be compared by the compare_datetime() comparator. sql/item_cmpfunc.h: Bug#27590: Wrong DATE/DATETIME comparison. The compare_datetime() function is added to the Arg_comparator class. It implements the correct comparator for DATE/DATETIME values. Two supplementary functions called get_date_from_str() and get_datetime_value() are added. The first one extracts DATE/DATETIME value from a string and the second one retrieves the correct DATE/DATETIME value from an item. The new Arg_comparator::can_compare_as_dates() function is added and used to check whether two given items can be compared by the compare_datetime() comparator. Two caching variables were added to the Arg_comparator class to speedup the DATE/DATETIME comparison. mysql-test/include/ps_conv.inc: Test case adjusted after fix for bug#27590. mysql-test/r/distinct.result: Test cases results are corrected after fix for bug#27590. sql/sql_select.cc: Bug#27590: Wrong DATE/DATETIME comparison. The test_if_equality_guarantees_uniqueness() function now uses Arg_comparator::can_compare_as_dates() to detect comparable DATE/DATETIME items. mysql-test/r/ps_2myisam.result: The result of the adjusted test case after fix for bug#27590. mysql-test/r/ps_3innodb.result: The result of the adjusted test case after fix for bug#27590. mysql-test/r/ps_4heap.result: The result of the adjusted test case after fix for bug#27590. mysql-test/r/ps_5merge.result: The result of the adjusted test case after fix for bug#27590. mysql-test/r/subselect.result: Test cases results are corrected after fix for bug#27590. mysql-test/r/type_datetime.result: Added a test case for the bug#27590: Wrong DATE/DATETIME comparison. mysql-test/t/type_datetime.test: Added a test case for the bug#27590: Wrong DATE/DATETIME comparison. tests/mysql_client_test.c: Test case adjusted after fix for bug#27590.
-
- 23 Apr, 2007 2 commits
-
-
unknown authored
into magare.gmz:/home/kgeorge/mysql/autopush/B27811-5.0-opt
-
unknown authored
FORCE_INIT_OF_VARS was not defined for the debug builds on Windows. This caused LINT_INIT macro to be defined as NOP and this triggers false alarms about use of uninitialized with the runtime libs of some Visual Studio versions. Fixed by defining FORCE_INIT_OF_VARS to match the state of the Windows CMakeLists.txt: Bug #27811: added the missing build option mysql-test/r/windows.result: Bug #27811: test case mysql-test/t/windows.test: Bug #27811: test case
-
- 21 Apr, 2007 1 commit
-
-
unknown authored
into mysql.com:/home/psergey/mysql-5.0-bug27939 sql/sql_select.cc: Auto merged
-
- 20 Apr, 2007 12 commits
-
-
unknown authored
into bk-internal.mysql.com:/data0/bk/mysql-5.0-opt sql/item_cmpfunc.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_show.cc: Auto merged sql/sql_view.cc: Auto merged
-
unknown authored
into mysql.com:/home/psergey/mysql-5.0-bug27939
-
unknown authored
into mysql.com:/home/psergey/mysql-5.0-bug27939 sql/sql_select.cc: Auto merged
-
unknown authored
mysql-test/r/rpl_critical_errors.result: New BitKeeper file ``mysql-test/r/rpl_critical_errors.result''
-
unknown authored
into gshchepa.loc:/home/uchum/work/bk-trees/mysql-5.0-opt-27704
-
unknown authored
into gshchepa.loc:/home/uchum/work/bk-trees/mysql-5.0-opt-27704 mysql-test/r/subselect.result: Auto merged mysql-test/t/row.test: Auto merged mysql-test/r/row.result: Test case updated for Bug#27704 (incorrect comparison of rows with NULL components). sql/item_cmpfunc.cc: Bug#27704: incorrect comparison of rows with NULL components. sql/item_cmpfunc.h: Bug#27704: incorrect comparison of rows with NULL components. Cosmetic fix.
-
unknown authored
Support for NULL components was incomplete for row comparison, fixed. Added support for abort_on_null at compare_row() like in 5.x sql/item_cmpfunc.h: Bug#27704: incorrect comparison of rows with NULL components Added support for abort_on_null at Item_bool_func2 like in 5.x sql/item_cmpfunc.cc: Bug#27704: incorrect comparison of rows with NULL components Support for NULL components was incomplete for row comparison, fixed. Added support for abort_on_null at compare_row() like in 5.x mysql-test/t/row.test: Test case updated for Bug#27704 (incorrect comparison of rows with NULL components) mysql-test/r/row.result: Test case updated for Bug#27704 (incorrect comparison of rows with NULL components) mysql-test/r/subselect.result: Test case updated for Bug#27704 (incorrect comparison of rows with NULL components)
-
unknown authored
into magare.gmz:/home/kgeorge/mysql/autopush/B27786-5.0-opt
-
unknown authored
This bug was intruduced by the fix for bug#17212 (in 4.1). It is not ok to call test_if_skip_sort_order since this function will alter the execution plan. By contract it is not ok to call test_if_skip_sort_order in this context. This bug appears only in the case when the optimizer has chosen an index for accessing a particular table but finds a covering index that enables it to skip ORDER BY. This happens in test_if_skip_sort_order. mysql-test/r/key.result: Bug#24778 test case. The bug causes the result to be the empty set. mysql-test/t/key.test: Bug#24778 The minimal test case that reveals the bug. The reason for such a complicated schema is that we have to convince the optimizer to pick one index, then discard it in order to be able to skip ORDER BY. sql/sql_select.cc: bug#24778 Removed the call to test_if_skip_sort_order that constituted the bug.
-
unknown authored
into romeo.(none):/home/bk/merge-mysql-5.0 client/mysql.cc: Auto merged sql/mysql_priv.h: Auto merged sql/mysqld.cc: Auto merged sql/set_var.cc: Auto merged sql/slave.cc: Auto merged sql/sql_class.cc: Auto merged
-
unknown authored
into romeo.(none):/home/bkroot/mysql-5.0-rpl
-
unknown authored
When merging views into the enclosing statement the ORDER BY clause of the view is merged to the parent's ORDER BY clause. However when the VIEW is merged into an UNION branch the ORDER BY should be ignored. Use of ORDER BY for individual SELECT statements implies nothing about the order in which the rows appear in the final result because UNION by default produces unordered set of rows. Fixed by ignoring the ORDER BY clause from the merge view when expanded in an UNION branch. mysql-test/r/view.result: Bug #27786: test case mysql-test/t/view.test: Bug #27786: test case sql/sql_lex.h: Bug #27786: add a is_union() inlined function Returns true if the unit represents an UNION. sql/sql_view.cc: Bug #27786: ignore ORDER BY in mergeable views when in UNION context
-
- 19 Apr, 2007 2 commits
-
-
unknown authored
into magare.gmz:/home/kgeorge/mysql/autopush/B27530-5.0-opt
-
unknown authored
They can drop table after table names list creation and before table opening. We open non existing table and get ER_NO_SUCH_TABLE error. In this case we do not store the record into I_S table and clear error. sql/sql_show.cc: Hide error for not existing table
-
- 18 Apr, 2007 2 commits
-
-
unknown authored
- Turn it on for JT_EQ_REF access method mysql-test/r/join.result: BUG#27939: Testcase mysql-test/t/join.test: BUG#27939: Testcase
-
unknown authored
conditions when executing an equijoin query with WHERE condition containing a subquery predicate of the form join_attr NOT IN (SELECT ...). To resolve a problem of the correct evaluation of the expression attr NOT IN (SELECT ...) an array of guards is created to make it possible to filter out some predicates of the EXISTS subquery into which the original subquery predicate is transformed, in the cases when a takes the NULL value. If attr is defined as a field that cannot be NULL than such an array is not needed and is not created. However if the field a occurred also an an equijoin predicate t2.a=t1.b and table t1 is accessed before table t2 then it may happen that the the EXISTS subquery is pushed down to the condition evaluated just after table t1 has been accessed. In this case any occurrence of t2.a is substituted for t1.b. When t1.b takes the value of NULL an attempt is made to turn on the corresponding guard. This action caused a crash as no guard array had been created. Now the code of Item_in_subselect::set_cond_guard_var checks that the guard array has been created before setting a guard variable on. Otherwise the method does nothing. It cannot results in returning a row that could be rejected as the condition t2.a=t1.b will be checked later anyway. mysql-test/r/subselect3.result: Added a test case for bug #27870. mysql-test/t/subselect3.test: Added a test case for bug #27870. sql/item_subselect.h: Fixed bug #27870. The bug that causes crashes manifests itself at some conditions when executing an equijoin query with WHERE condition containing a subquery predicate of the form join_attr NOT IN (SELECT ...). Forced Item_in_subselect::set_cond_guard_var to check that the guard array has been created before setting a guard variable on. Otherwise the method does nothing.
-
- 17 Apr, 2007 2 commits
- 15 Apr, 2007 4 commits
-
-
unknown authored
Fix warning after fix for bug#27321. sql/item.cc: Fix warning after fix for bug#27321.
-
unknown authored
After merge fix. mysql-test/r/subselect.result: After merge fix. mysql-test/t/subselect.test: After merge fix.
-
unknown authored
into moonbone.local:/mnt/gentoo64/work/27321-bug-5.0-opt-mysql mysql-test/r/subselect3.result: Auto merged sql/item.cc: Auto merged sql/item.h: Auto merged sql/sql_select.cc: Auto merged mysql-test/r/subselect.result: Manually merged mysql-test/t/subselect.test: Manually merged mysql-test/t/subselect3.test: Manually merged
-
unknown authored
The Item_outer_ref class based on the Item_direct_ref class was always used to represent an outer field. But if the outer select is a grouping one and the outer field isn't under an aggregate function which is aggregated in that outer select an Item_ref object should be used to represent such a field. If the outer select in which the outer field is resolved isn't grouping then the Item_field class should be used to represent such a field. This logic also should be used for an outer field resolved through its alias name. Now the Item_field::fix_outer_field() uses Item_outer_field objects to represent aliased and non-aliased outer fields for grouping outer selects only. Now the fix_inner_refs() function chooses which class to use to access outer field - the Item_ref or the Item_direct_ref. An object of the chosen class substitutes the original field in the Item_outer_ref object. The direct_ref and the found_in_select_list fields were added to the Item_outer_ref class. mysql-test/t/subselect3.test: Some test cases were corrected after the fix for the bug#27321. mysql-test/r/subselect3.result: Some test cases were corrected after the fix for the bug#27321. mysql-test/t/subselect.test: Added a test case for the bug#27321: Wrong subquery result in a grouping select. mysql-test/r/subselect.result: Added a test case for the bug#27321: Wrong subquery result in a grouping select. Some test cases were corrected after this fix. sql/sql_union.cc: Bug#27321: Wrong subquery result in a grouping select. Cleanup of the inner_refs_list. sql/sql_select.cc: Bug#27321: Wrong subquery result in a grouping select. Now the fix_inner_refs() function chooses which class to use to access outer field - the Item_ref or the Item_direct_ref. An object of the chosen class substitutes the original field in the Item_outer_ref object. A comment is corrected. sql/item.cc: Bug#27321: Wrong subquery result in a grouping select. Now the Item_field::fix_outer_field() uses Item_outer_field objects to represent aliased and non-aliased outer fields for grouping outer selects only. sql/item.h: Bug#27321: Wrong subquery result in a grouping select. The direct_ref and the found_in_select_list fields were added to the Item_outer_ref class.
-
- 14 Apr, 2007 3 commits
- 13 Apr, 2007 7 commits
-
-
unknown authored
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-opt
-
unknown authored
into a88-113-38-195.elisa-laajakaista.fi:/home/my/new/mysql-5.0-marvel heap/hp_write.c: Auto merged sql/item_cmpfunc.cc: Auto merged sql-common/my_time.c: Auto merged sql/mysqld.cc: Auto merged sql/opt_range.cc: Auto merged sql/table.cc: Auto merged
-
unknown authored
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-opt
-
unknown authored
into a88-113-38-195.elisa-laajakaista.fi:/home/my/new/mysql-5.0-marvel
-
unknown authored
into a88-113-38-195.elisa-laajakaista.fi:/home/my/new/mysql-4.1-main
-
unknown authored
into mysql.com:/home/bar/mysql-5.0.b20095
-
unknown authored
Problem: single byte do_varstring1() function was called, which didn't check limit on "number of character", and checked only "number of bytes". Fix: adding a multi-byte aware function do_varstring1_mb(), to limit on "number of characters" mysql-test/r/ctype_utf8.result: Adding test case mysql-test/t/ctype_utf8.test: Adding test case sql/field_conv.cc: Adding missing function to copy VARCHAR strings having one length byte.
-
- 12 Apr, 2007 3 commits