An error occurred fetching the project authors.
- 22 Jan, 2007 1 commit
-
-
We use INT_RESULT type if all arguments are of type INT for 'if', 'case', 'coalesce' functions regardless of arguments' unsigned flag, so sometimes we can exceed the INT bounds.
-
- 03 Jan, 2007 1 commit
-
-
malff/marcsql@weblab.(none) authored
With MySQL 3.23 and 4.0, the syntax 'LIMIT N, -1' is accepted, and returns all the rows located after row N. This behavior, however, is not the intended result, and defeats the purpose of LIMIT, which is to constrain the size of a result set. With MySQL 4.1 and later, this construct is correctly detected as a syntax error. This fix does not change the production code, and only adds a new test case to improve test coverage in this area, to enforce in the test suite the intended behavior.
-
- 06 Dec, 2006 1 commit
-
-
Problem: storing >=8 byte hexadecimal values we don't check data. Fix: check if the data fits the {u}longlong range.
-
- 20 Nov, 2006 1 commit
-
-
monty@mysql.com/nosik.monty.fi authored
(Mostly in DBUG_PRINT() and unused arguments) Fixed bug in query cache when used with traceing (--with-debug) Fixed memory leak in mysqldump Removed warnings from mysqltest scripts (replaced -- with #)
-
- 16 Oct, 2006 2 commits
-
-
igor@rurik.mysql.com authored
account predicates that become sargable after reading const tables. In some cases this resulted in choosing non-optimal execution plans. Now info of such potentially saragable predicates is saved in an array and after reading const tables we check whether this predicates has become saragable.
-
gkodinov/kgeorge@macbook.gmz authored
strings MySQL is setting the flag HA_END_SPACE_KEYS for all the keys that reference text or varchar columns with collation different than binary. This was done to handle correctly the situation where a lookup on such a key may return more than 1 row because of the presence of many rows that differ only by the amount of trailing space in the table's string column. Inserting such values however appears to violate the unique checks on INSERT/UPDATE. Thus that flag must not be set as it will prevent the optimizer from choosing a faster access method. This fix removes the setting of the HA_END_SPACE_KEYS flag.
-
- 29 Sep, 2006 1 commit
-
-
igor@rurik.mysql.com authored
After the patch for big 21698 equality propagation stopped working for BETWEEN and IN predicates with STRING arguments. This changeset completes the solution of the above patch.
-
- 28 Sep, 2006 1 commit
-
-
evgen@moonbone.local authored
while space allocation Under some circumstances DISTINCT clause can be converted to grouping. In such cases grouping is performed by all items in the select list. If an ORDER clause is present then items from it is prepended to group list. But the case with ORDER wasn't taken into account when allocating the array for sum functions. This leads to memory corruption and crash. The JOIN::alloc_func_list() function now allocates additional space if there is an ORDER by clause is specified and DISTINCT -> GROUP BY optimization is possible.
-
- 25 Aug, 2006 1 commit
-
-
igor@rurik.mysql.com authored
const tables. This resulted in choosing extremely inefficient execution plans in same cases when distribution of data in joined were skewed (see the customer test case for the bug).
-
- 26 Jul, 2006 1 commit
-
-
gkodinov/kgeorge@macbook.gmz authored
When optimizing conditions like 'a = <some_val> OR a IS NULL' so that they're united into a single condition on the key and checked together the server must check which value is the NULL value in a correct way : not only using ->is_null but also check if the expression doesn't depend on any tables referenced in the current statement. This additional check must be performed because that optimization takes place before the actual execution of the statement, so if the field was initialized to NULL from a previous statement the optimization would be applied incorrectly.
-
- 25 Jul, 2006 1 commit
-
-
timour/timka@lamia.home authored
The problem was in that opt_sum_query() replaced MIN/MAX functions with the corresponding constant found in a key, but due to imprecise representation of float numbers, when evaluating the where clause, this comparison failed. When MIN/MAX optimization detects that all tables can be removed, also remove all conjuncts in a where clause that refer to these tables. As a result of this fix, these conditions are not evaluated twice, and in the case of float number comparisons we do not discard result rows due to imprecise float representation. As a side-effect this fix also corrects an unnoticed problem in bug 12882.
-
- 17 Jul, 2006 1 commit
-
-
evgen@moonbone.local authored
Test case for bug#10977 altered to make it work in both plain and ps-protocol modes.
-
- 15 Jul, 2006 1 commit
-
-
evgen@moonbone.local authored
When an alias is set to a column leading spaces are removed from the alias. But when this is done on aliases set by user this can lead to confusion. Now Item::set_name() method issues the warning if leading spaces were removed from an alias set by user. New warning message is added.
-
- 06 Jul, 2006 1 commit
-
-
gkodinov@mysql.com authored
Adding decimal "digits" in multiplication resulted in signed overflow and producing wrong results. Fixed by using large enough buffers and intermediary result types : dec2 (currently longlong) to hold result of adding decimal "digits" (currently int32).
-
- 20 Jun, 2006 2 commits
-
-
evgen@moonbone.local authored
Additional fix for #16377 for bigendian platforms sql_select.cc, select.result, select.test: After merge fix
-
evgen@moonbone.local authored
Added test case for bug#18759 Incorrect string to numeric conversion. select.test: Added test case for bug#18759 Incorrect string to numeric conversion. item_cmpfunc.cc: Cleanup after fix for bug#18360 removal
-
- 14 Jun, 2006 1 commit
-
-
gkodinov@mysql.com authored
The Field::eq() considered instances of Field_bit that differ only in bit_ptr/bit_ofs equal. This caused equality conditions optimization (build_equal_items_for_cond()) to make bad field substitutions that result in wrong predicates. Field_bit requires an overloaded eq() function that checks the bit_ptr/bit_ofs in addition to Field::eq().
-
- 02 Jun, 2006 2 commits
-
-
gkodinov@mysql.com authored
-
gkodinov@mysql.com 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.
-
- 30 May, 2006 1 commit
-
-
igor@rurik.mysql.com authored
refers to a column name.
-
- 28 May, 2006 1 commit
-
-
igor@rurik.mysql.com authored
refers to a column name. Added a new error message ER_INDEX_DOES_NOT_EXIST.
-
- 12 May, 2006 1 commit
-
-
igor@rurik.mysql.com authored
a worse execution plan than in 4.1 for some queries. It happened due the fact that at some conditions the optimizer always preferred range or full index scan access methods to lookup access methods even when the latter were much cheaper. The problem was not observed in 4.1 for the reported query because the WHERE condition was not of a form that could cause the problem. Equality propagation introduced on 5.0 added an extra predicate and changed the WHERE condition. The new condition provoked the optimizer to make a bad choice. The problem was fixed by the patch for bug 17379.
-
- 10 May, 2006 1 commit
-
-
sergefp@mysql.com authored
Re-work best_access_path() and find_best() to reuse E(#rows(range access)) as E(#rows(ref[_or_null](const) access) only when it is appropriate. [This is the final cumulative patch]
-
- 04 May, 2006 1 commit
-
-
jani@ua141d10.elisa.omakaista.fi authored
is only to make sure that this will not be fixed, as it is intended behaviour. Documentation will be improved accordingly.
-
- 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.
-
- 11 Jan, 2006 3 commits
-
-
evgen@moonbone.local authored
Absence of table in left part of LEFT/RIGHT join wasn't checked before name resolution which resulted in NULL dereferencing and server crash. Modified rules: "table_ref LEFT opt_outer JOIN_SYM table_ref" and "table_ref RIGHT opt_outer JOIN_SYM table_ref" NULL check is moved before push_new_name_resolution_context()
-
evgen@moonbone.local authored
functions are involved. When subselect is a join with set functions and no record have been found in it, end_send_group() sets null_row for all tables in order aggregate functions to calculate their values correctly. Normally this null_row flag is cleared for each table in sub_select(), but flush_cached_records() doesn't do so. Due to this all fields from the table processed by flush_cached_records() are always evaluated as nulls and whole select produces wrong result. flush_cached_records() now clears null_row flag at the very beginning.
-
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.
-
- 09 Dec, 2005 1 commit
-
-
evgen@moonbone.local authored
cmp_item_sort_string::cmp() wasn't checking values_res variable for null. Later called function was dereferenced it and crashed server. Added null check to cmp_item_sort_string::cmp().
-
- 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.
-
- 24 Nov, 2005 1 commit
-
-
evgen@moonbone.local authored
crash resolve_const_item() substitutes item which will evaluate to constant with equvalent constant item, basing on the item's result type. In this case subselect was resolved as constant, and resolve_const_item() was substituting it's result's Item_caches to Item_null. Later Item_cache's function was called for Item_null object, which caused server crash. resolve_const_item() now substitutes constants for items with result_type == ROW_RESULT only for Item_rows.
-
- 11 Nov, 2005 1 commit
-
-
timour@mysql.com authored
the same column as an aliased and as a non-aliased column. The problem was that Item_direct_view_ref::eq() was first comparing view columns by name, and in this case the name of one of them is different since it is aliased.
-
- 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.
-
- 25 Oct, 2005 1 commit
-
-
timour@mysql.com authored
The cause for the bug is that the priorities of all rules/terminals that process the FROM clause are not fully specified, and the parser generator produces a parser that doesn't always parse the FROM clause so that JOINs are left-associative. As a result the final join tree produced by the parser is incorrect, which is the cause for subsequent name resolution to fail.
-
- 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)
-
- 13 Oct, 2005 4 commits
-
-
evgen@moonbone.local authored
DISTINCT wasn't optimized away and caused creation of tmp table in wrong case. This result in integer overrun and running out of memory. Fix backported from 4.1. Now if optimizer founds that in result be only 1 row it removes distinct.
-
monty@mysql.com authored
Move handling of suffix_length from strnxfrm_bin() to filesort to ensure proper sorting of all kind of binary objects field::sort_key() now adds length last for varbinary/blob VARBINARY/BLOB is now sorted by filesort so that shorter strings comes before longer ones Fixed issues in test cases from last merge
-
hf@deer.(none) authored
-
hf@deer.(none) authored
-
- 12 Oct, 2005 1 commit
-
-
evgen@moonbone.local authored
Bug #7672 after merge fix
-