- 06 Apr, 2013 1 commit
-
-
Sergei Golubchik authored
fulltext search was initialized for all MATCH ... AGAINST items at the end of the JOIN::optimize(). But since 5.3 derived tables are initialized lazily on first use, very late in the sub_select(). Skip Item_func_match::init_search initialization if the corresponding table isn't open yet; repeat fulltext initialization for all not-yet-initialized MATCH ... AGAINST items after creating derived tables.
-
- 08 Apr, 2013 1 commit
-
-
unknown authored
currently get_mm_tree skipped the evaluation of this constant and icorrectly proceeded. The correct behavior is to return a NULL subtree, according to the IF branch being fixed - when it evaluates the constant it returns a value, and doesn't continue further.
-
- 04 Apr, 2013 1 commit
-
-
Sergey Petrunya authored
-
- 01 Apr, 2013 1 commit
-
-
Sergey Petrunya authored
- Let index_merge allocate table handlers on quick select's MEM_ROOT, not on statement's MEM_ROOT. This is crucial for big "range checked for each record" queries, where index_merge can be created and deleted many times during query exection. We should not make O(#rows) allocations on statement's MEM_ROOT.
-
- 29 Mar, 2013 1 commit
-
-
Sergey Petrunya authored
- When converting a subquery to a semi-join, propagate OPTION_SCHEMA_TABLE.
-
- 27 Mar, 2013 1 commit
-
-
Igor Babaev authored
-
- 26 Mar, 2013 4 commits
-
-
Sergei Golubchik authored
-
Alexey Botchkov authored
The get_mbr() method shouldn't return the error, rather an invalid MBR in this case.
-
Sergei Golubchik authored
-
unknown authored
Fixed printing column_get finction.
-
- 23 Mar, 2013 1 commit
-
-
Igor Babaev authored
In some cases, when using views the optimizer incorrectly determined possible join orders for queries with nested outer and inner joins. This could lead to invalid execution plans for such queries.
-
- 22 Mar, 2013 1 commit
-
-
Alexey Botchkov authored
The Geometry::get_mbr() function can return an error on a bad data. We have to check for that and act respectively.
-
- 21 Mar, 2013 2 commits
-
-
Sergey Petrunya authored
-
Sergey Petrunya authored
- Set MI_INFO::external_ref for MyISAM tables that are parts of myisamMRG table.
-
- 20 Mar, 2013 2 commits
-
-
Sergei Golubchik authored
./mtr --suite=main,plugins will work on all branches.
-
Sergei Golubchik authored
MDEV-4293 Valgrind warnings (Conditional jump or move depends on uninitialised value) in remove_eq_conds on time functions with NULL argument val_int() is expected to return 0 for NULL's
-
- 19 Mar, 2013 2 commits
-
-
Alexey Botchkov authored
Need to check if the number of points is 0 for the polygon.
-
Alexey Botchkov authored
Forgotten DBUG_ASSERT should be replaced with the 'return error'.
-
- 18 Mar, 2013 4 commits
-
-
unknown authored
Item_default_value inherited form Item_field so should create temporary table field similary.
-
Alexey Botchkov authored
Additional fixes for possible overflows in length-related calculations in 'spatial' implementations. Checks added to the ::get_data_size() methods. max_n_points decreased to occupy less 2G size. An object of that size is practically inoperable anyway.
-
Sergei Golubchik authored
Item_func_make_set wasn't taking into account the first argument when calculating maybe_null. sql/item_strfunc.cc: rewrite Item_func_make_set, removing separate storage of the first argument sql/item_strfunc.h: rewrite Item_func_make_set, removing separate storage of the first argument
-
Sergei Golubchik authored
with decimals=NOT_FIXED_DEC it is possible to have 'decimals' larger than 'max_length', it's not an error for temporal functions. But when Item_func_numhybrid converts the value to DECIMAL_RESULT, it must limit 'decimals' to be a valid scale of a decimal number.
-
- 17 Mar, 2013 2 commits
-
-
Sergei Golubchik authored
AVG() returns a double, its max_length is reasonably limited by a double number length, even if the argument is many Kbytes long.
-
Sergei Golubchik authored
MDEV-4281 Assertion `maybe_null && item->null_value' fails in make_sortkey on CASE with different return types, GROUP_CONCAT, GROUP BY Fix Item::get_date() to mark the item NULL when returning an error.
-
- 10 Mar, 2013 1 commit
-
-
Alexey Botchkov authored
The bug was found by Alyssa Milburn. If the number of points of a geometry feature read from binary representation is greater than 0x10000000, then the (uint32) (num_points * 16) will cut the higher byte, which leads to various errors. Fixed by additional check if (num_points > max_n_points).
-
- 08 Mar, 2013 1 commit
-
-
Igor Babaev authored
This is a bug in the legacy code. It did not manifest itself because it was masked by other bugs that were fixed by the patches for mdev-4172 and mdev-4177.
-
- 06 Mar, 2013 2 commits
-
-
Vladislav Vaintroub authored
-
unknown authored
Field_enum incorrectly inherited decimals() from Field_string. Field_enum should be always integer in numeric context.
-
- 01 Mar, 2013 2 commits
-
-
Sergey Petrunya authored
-
Igor Babaev authored
-
- 28 Feb, 2013 7 commits
-
-
Igor Babaev authored
Do not include BLOB fields into the key to access the temporary table created for a materialized view/derived table. BLOB components are not allowed in keys.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Igor Babaev authored
-
Sergei Golubchik authored
MySQL Bug #12408412: GROUP_CONCAT + ORDER BY + INPUT/OUTPUT SAME USER VARIABLE = CRASH and MySQL Bug#14664077 SEVERE PERFORMANCE DEGRADATION IN SOME CASES WHEN USER VARIABLES ARE USED sql/item_func.cc: don't use anything from Item_func_set_user_var::fix_fields() in Item_func_set_user_var::save_item_result() sql/sql_class.cc: Call suv->save_item_result(item) *before* doing suv->fix_fields(), because the former evaluates the item (and caches its value), while the latter marks the user variable as non-const. The problem is that the item was fix_field'ed when the user variable was const, and it doesn't expect it to change to non-const in the middle of the execution.
-
Michael Widenius authored
-
Sergei Golubchik authored
mysys/errors.c: revert upstream's fix. use a much simpler one mysys/my_write.c: revert upstream's fix. use a simpler one sql/item_xmlfunc.cc: useless, but ok sql/mysqld.cc: simplify upstream's fix storage/heap/hp_delete.c: remove upstream's fix. we'll use a much less expensive approach.
-
- 26 Feb, 2013 1 commit
-
-
Vladislav Vaintroub authored
-
- 25 Feb, 2013 1 commit
-
-
Igor Babaev authored
The function remove_eq_cond removes the parts of a disjunction for which it has been proved that they are always true. In the result of this removal the disjunction may be converted into a formula without OR that must be merged into the the AND formula that contains the disjunction. The merging of two AND conditions must take into account the multiple equalities that may be part of each of them. These multiple equality must be merged and become part of the and object built as the result of the merge of the AND conditions. Erroneously the function remove_eq_cond lacked the code that would merge multiple equalities of the merged AND conditions. This could lead to confusing situations when at the same AND level there were two multiple equalities with common members and the list of equal items contained only some of these multiple equalities. This, in its turn, could lead to an incorrect work of the function substitute_for_best_equal_field when it tried to optimize ref accesses. This resulted in forming invalid TABLE_REF objects that were used to build look-up keys when materialized subqueries were exploited.
-
- 22 Feb, 2013 1 commit
-
-
Igor Babaev authored
This bug in the legacy code could manifest itself in queries with semi-join materialized subqueries. When a subquery is materialized all conditions that are imposed only on the columns belonging to the tables from the subquery are taken into account.The code responsible for subquery optimizations that employes subquery materialization makes sure to remove these conditions from the WHERE conditions of the query obtained after it has transformed the original query into a query with a semi-join. If the condition to be removed is an equality condition it could be added to ON expressions and/or conditions from disjunctive branches (parts of OR conditions) in an attempt to generate better access keys to the tables of the query. Such equalities are supposed to be removed later from all the formulas where they have been added to. However, erroneously, this was not done in some cases when an ON expression and/or a disjunctive part of the OR condition could be converted into one multiple equality. As a result some equality predicates over columns belonging to the tables of the materialized subquery remained in the ON condition and/or the a disjunctive part of the OR condition, and the excuter later, when trying to evaluate them, returned wrong answers as the values of the fields from these equalities were not valid. This happened because any standalone multiple equality (a multiple equality that are not ANDed with any other predicates) lacked the information about equality predicates inherited from upper levels (in particular, inherited from the WHERE condition). The fix adds a reference to such information to any standalone multiple equality.
-