An error occurred fetching the project authors.
- 29 May, 2006 1 commit
-
-
evgen@moonbone.local 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.
-
- 18 May, 2006 1 commit
-
-
igor@rurik.mysql.com authored
This bug was introduced when the patch resolving the performance problem 17164 was applied. As a result of that modification the not_null_tables attributes were calculated incorrectly for constant OR conditions. This triggered invalid conversion of outer joins into inner joins.
-
- 17 May, 2006 1 commit
-
-
evgen@moonbone.local authored
The convert_constant_item() function converts constant items to ints on prepare phase to optimize execution speed. In this case it tries to evaluate subselect which contains a derived table and is contained in a derived table. All derived tables are filled only after all derived tables are prepared. So evaluation of subselect with derived table at the prepare phase will return a wrong result. A new flag with_subselect is added to the Item class. It indicates that expression which this item represents is a subselect or contains a subselect. It is set to 0 by default. It is set to 1 in the Item_subselect constructor for subselects. For Item_func and Item_cond derived classes it is set after fixing any argument in Item_func::fix_fields() and Item_cond::fix_fields accordingly. The convert_constant_item() function now doesn't convert a constant item if the with_subselect flag set in it.
-
- 21 Apr, 2006 1 commit
-
-
ramil@mysql.com authored
- after review fixes
-
- 11 Apr, 2006 1 commit
-
-
igor@rurik.mysql.com authored
If the second or the third argument of a BETWEEN predicate was a constant expression, like '2005.09.01' - INTERVAL 6 MONTH, while the other two arguments were fields then the predicate was evaluated incorrectly and the query returned a wrong result set. The bug was introduced in 5.0.17 when in the fix for 12612.
-
- 08 Apr, 2006 1 commit
-
-
igor@rurik.mysql.com authored
The function agg_cmp_type in item_cmpfunc.cc neglected the fact that the first argument in a BETWEEN/IN predicate could be a field of a view. As a result in the case when the retrieved table was hidden by a view over it and the arguments in the BETWEEN/IN predicates are of the date/time type the function did not perform conversion of the constant arguments to the same format as the first field argument. If formats of the arguments differed it caused wrong a evaluation of the predicates.
-
- 04 Apr, 2006 1 commit
-
-
igor@rurik.mysql.com authored
-
- 01 Apr, 2006 1 commit
-
-
igor@rurik.mysql.com authored
Multiple equalities were not adjusted after reading constant tables. It resulted in neglecting good index based methods that could be used to access of other tables.
-
- 24 Mar, 2006 1 commit
-
-
igor@rurik.mysql.com authored
If the WHERE condition of a query contained an ORed FALSE term then the set of tables whose rows cannot serve for null complements in outer joins was determined incorrectly. It resulted in blocking possible conversions of outer joins into joins for such queries.
-
- 06 Mar, 2006 1 commit
-
-
ramil@mysql.com authored
-
- 03 Mar, 2006 2 commits
-
-
evgen@moonbone.local authored
When the Item_cond::fix_fields() function reduces cond tree, it in loop scans it's own list and when it founds Item_cond with same function (AND or OR) it does next things: 1) replaces that item with item's list. 2) empties item's list. Due to this operation is done twice - for update and for view, at the update phase cond's list of lower view is already empty. Empty list returns ref to itself, thus making endless loop by replacing list with itself, emptying, replacing again and so on. This results in server hung up. To the Item_cond::fix_fields() function added check that ensures that list being replaced with isn't empty.
-
gluh@eagle.intranet.mysql.r18.ru authored
removed unnecessary calculation of cache value otherwise Join::preapre tries to calculate undefined values(filed values)
-
- 01 Mar, 2006 1 commit
-
-
holyfoot@deer.(none) authored
-
- 14 Feb, 2006 1 commit
-
-
evgen@moonbone.local authored
The Item_func_if::fix_length_and_dec() function when calculating length of result doesn't take into account unsigned_flag. But it is taken when calculating length of temporary field. This result in creating field that shorter than needed. Due to this, in the reported query 40.0 converted to 9.99. The function Item_func_if::fix_length_and_dec() now adds 1 to the max_length if the unsigned_flag isn't set.
-
- 14 Jan, 2006 1 commit
-
-
konstantin@mysql.com authored
return incorrect result set for a select SQL request"
-
- 11 Jan, 2006 1 commit
-
-
evgen@moonbone.local authored
select result Item equal objects are employed only at the optimize phase. Usually they are not supposed to be evaluated. Yet in some cases we call the method val_int() for them. Here we have to take care of restricting the predicate such an object represents f1=f2= ...=fn to the projection of known fields fi1=...=fik. Added a check for field's table being const in Item_equal::val_int(). If the field's table is not const val_int() just skips that field when evaluating Item_equal.
-
- 06 Jan, 2006 1 commit
-
-
monty@mysql.com authored
Remove wrong fix for Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash Safety fix for bug #13855 "select distinct with group by caused server crash"
-
- 26 Nov, 2005 1 commit
-
-
igor@rurik.mysql.com authored
A typo bug caused loss of a predicate of the form field=const in some cases.
-
- 20 Nov, 2005 1 commit
-
-
bell@sanja.is.com.ua authored
Bad examples of usage of a string with its length fixed. The incorrect length in the trigger file configuration descriptor fixed (BUG#14090). A hook for unknown keys added to the parser to support old .TRG files.
-
- 07 Nov, 2005 1 commit
-
-
jimw@mysql.com authored
are done for the = operator, such as when doing a comparison with a large unsigned number that was quoted. (Bug #12612)
-
- 03 Nov, 2005 1 commit
-
-
evgen@moonbone.local authored
Invalid date like 2000-02-32 wasn't converted to int, which lead to not using index and comparison with field as astring, which results in slow query execution. convert_constatn_item() and get_mm_leaf() now forces MODE_INVALID_DATES to allow such conversion.
-
- 21 Oct, 2005 1 commit
-
-
andrey@lmy004. authored
ESCAPE has length of 1 if specified and sql_mode is NO_BACKSLASH_ESCAPES or has length of 0 or 1 in every other situation. (approved patch applied on a up-to-date tree re-commit)
-
- 15 Oct, 2005 1 commit
-
-
igor@rurik.mysql.com authored
allowed set functions aggregated in outer subqueries, allowed nested set functions.
-
- 06 Oct, 2005 1 commit
-
-
bar@mysql.com authored
Wrong variable.
-
- 05 Oct, 2005 2 commits
-
-
bar@mysql.com authored
sorry, another wrong variable
-
bar@mysql.com authored
wrong variable.
-
- 29 Sep, 2005 1 commit
-
-
kent@mysql.com authored
Prefix regex functions/types with "my_" as our library is not compatible with normal regex lib. my_regex.h: Rename: regex/regex.h -> regex/my_regex.h
-
- 21 Sep, 2005 1 commit
-
-
bar@mysql.com authored
index doesn't return correct result item_cmpfunc.cc: Use charset of LIKE to decide whether to use 8bit or Unicode "escape" value. But use charset of "escape" to scan escape character. strings/ctype-xxx.c: We cannot reduce "end" pointer using charpos(), because of possible escape characters in the string. Limit the loop using count of written characters instead. ctype_like_escape.inc: new file mysql-test/t/ctype_xxx: mysql-test/r/ctype_xxx: Adding test case.
-
- 12 Sep, 2005 2 commits
-
-
-
monty@mishka.mysql.com authored
Fix for bug #13025; Server crash in filesort because wrong call to handler::position()
-
- 09 Sep, 2005 1 commit
-
-
aivanov@mysql.com authored
-
- 07 Sep, 2005 1 commit
-
-
aivanov@mysql.com authored
Post merge changes sql_yacc.yy: Post merge changes sql_select.cc: Fixed bugs #12101, #12102: wrong calculation of not_null_tables() for some expressions (post merge changes). The function add_key_fields() is modified. There cannot be NOT before BETWEEN/IN anymore. Rather Item_func_between/in objects can represent now [NOT]BETWEEN/IN expressions.
-
- 06 Sep, 2005 2 commits
-
-
aivanov@mysql.com authored
Fixed bugs #12101, #12102: wrong calculation of not_null_tables() for some expressions. The classes Item_func_between, Item_func_if, Item_func_in are modified. Item_func_between/in objects can represent now [NOT]BETWEEN/IN expressions. The class Item_func_opt_neg is added to factor out the functionality common for the modified classes Item_func_between and Item_func_in. item_cmpfunc.cc: Fixed bugs #12101, #12102: wrong calculation of not_null_tables() for some expressions. Added Item_func_between::fix_fields(), Item_func_if::fix_fields(), Item_func_in::fix_fields(). They correct generic calculation of the not_null_tables attribute when it is needed. Modified Item_func_between::val_int(), Item_func_in::val_int(). opt_range.cc: Fixed bugs #12101, #12102: wrong calculation of not_null_tables() for some expressions. The function get_mm_tree() is modified. There cannot be NOT before BETWEEN/IN anymore. Rather Item_func_between/in objects can represent now [NOT]BETWEEN/IN expressions. sql_yacc.yy: Fixed bugs #12101, #12102: wrong calculation of not_null_tables() for some expressions. Item_func_between/in objects can represent now [NOT]BETWEEN/IN expresions. join_outer.result: Fixed some testcases results (bugs #12101, #12102) join_outer.test: Added testcases for bugs #12101, #12102
-
bar@mysql.com authored
adding test case. item_cmpfunc.cc: Bug#12611 ESCAPE + LIKE do not work when the escape char is a multibyte one Additional fix for 8bit character sets: escape character must be converted into operation character set.
-
- 02 Sep, 2005 1 commit
-
-
konstantin@mysql.com authored
- current_arena to stmt_arena: the thread may have more than one 'current' arenas: one for runtime data, and one for the parsed tree of a statement. Only one of them is active at any moment. - set_item_arena -> set_query_arena, because Item_arena was renamed to Query_arena a while ago - set_n_backup_item_arena -> set_n_backup_active_arena; the active arena is the arena thd->mem_root and thd->free_list are currently pointing at. - restore_backup_item_arena -> restore_active_arena (with the same rationale) - change_arena_if_needed -> activate_stmt_arena_if_needed; this method sets thd->stmt_arena active if it's not done yet.
-
- 31 Aug, 2005 1 commit
-
-
bar@mysql.com authored
item_cmpfunc.cc: Pass unicode value as "escape" argument to my_wildcmp if a multibyte character set is used. For single byte character set nothing has changed: native (non-unicode) character code is still passed. ctype_utf8.result, ctype_utf8.test: adding test case
-
- 21 Aug, 2005 1 commit
-
-
monty@mishka.local authored
-
- 18 Aug, 2005 2 commits
-
-
bell@sanja.is.com.ua authored
-
jimw@mysql.com authored
-
- 16 Aug, 2005 1 commit
-
-
andrey@lmy004. authored
-