too much memory. Instead, either create the equvalent SEL_TREE manually, or create only two ranges that
strictly include the area to scan
(Note: just to re-iterate: increasing NOT_IN_IGNORE_THRESHOLD will make optimization run slower for big
IN-lists, but the server will not run out of memory. O(N^2) memory use has been eliminated)
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.
mysql-test/r/having.result:
Adjusted a test case results after fix for bug #16504.
mysql-test/r/select.result:
Added a test case for bug #16504.
mysql-test/r/subselect.result:
Adjusted a test case results after fix for bug #16504.
mysql-test/r/varbinary.result:
Adjusted a test case results after fix for bug #16504.
mysql-test/t/select.test:
Added a test case for bug #16504.
sql/item.cc:
Fixed bug #16504.
An Item_equal object may contain only a constant member.
It may happen after reading constant tables.
sql/item_cmpfunc.cc:
Fixed bug #16504.
Added method Item_equal::check_const that check appearance of new
constant items in a multiple equality.
sql/item_cmpfunc.h:
Fixed bug #16504.
Added method Item_equal::check_const that check appearance of new
constant items in a multiple equality.
sql/sql_select.cc:
Fixed bug #16504.
Adjusted multiple equalities after reading constant tables.
Fixed a few typo in comments.
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.
- Added empty constructors and virtual destructors to many classes and structs
- Removed some usage of the offsetof() macro to instead use C++ class pointers
configure.in:
Added comment
ndb/include/ndbapi/NdbDictionary.hpp:
Fixed compiler warnings from gcc 4.0.2
sql/field.cc:
Fixed compiler warnings from gcc 4.0.2
sql/handler.h:
Fixed compiler warnings from gcc 4.0.2
sql/item.h:
Fixed compiler warnings from gcc 4.0.2
sql/item_cmpfunc.h:
Fixed compiler warnings from gcc 4.0.2
sql/log_event.h:
Fixed compiler warnings from gcc 4.0.2
sql/mysql_priv.h:
Fixed compiler warnings from gcc 4.0.2
For find_table_in_list I fixed it to use proper C++ class pointers instead of C style pointers
sql/opt_range.cc:
Fixed compiler warnings from gcc 4.0.2
sql/parse_file.h:
Fixed compiler warnings from gcc 4.0.2
sql/sp_rcontext.h:
Fixed compiler warnings from gcc 4.0.2
sql/spatial.h:
Fixed compiler warnings from gcc 4.0.2
sql/sql_base.cc:
Fixed compiler warnings from gcc 4.0.2
sql/sql_cache.h:
Fixed compiler warnings from gcc 4.0.2
sql/sql_class.h:
Fixed compiler warnings from gcc 4.0.2
sql/sql_parse.cc:
Fixed compiler warnings from gcc 4.0.2
(Not pretty, but seams to work...)
sql/sql_select.h:
Fixed compiler warnings from gcc 4.0.2
sql/sql_update.cc:
Fixed compiler warnings from gcc 4.0.2
sql/table.h:
Fixed compiler warnings from gcc 4.0.2
sql/tztime.cc:
Fixed compiler warnings from gcc 4.0.2
sql/tztime.h:
Fixed compiler warnings from gcc 4.0.2
- Added empty constructors and virtual destructors to many classes and structs
- Removed some usage of the offsetof() macro to instead use C++ class pointers
return incorrect result set for a select SQL request"
mysql-test/r/ps.result:
Test results fixed (Bug#12734)
mysql-test/t/ps.test:
A test case for Bug#12734
sql/item_cmpfunc.cc:
Reset canDoTurboBM in Item_func_like::cleanup()
sql/item_cmpfunc.h:
Add Item_func_like::cleanup()
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.
mysql-test/t/select.test:
Added test case for bug #15633: Evaluation of Item_equal for non-const table caused wrong select result
mysql-test/r/select.result:
Added test case for bug #15633: Evaluation of Item_equal for non-const table caused wrong select result
mysql-test/r/func_group.result:
Corrected test result for bug #12882 after fix for bug#15633
sql/item_cmpfunc.h:
Fixed bug #15633: Evaluation of Item_equal for non-const table caused wrong select result
Added comment about fields from non-const tables in class description.
sql/item_cmpfunc.cc:
Fixed bug #15633: Evaluation of Item_equal for non-const table caused wrong select result
Added check for field's table being const in Item_equal::val_int().
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.
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().
sql/item_cmpfunc.h:
Fix bug#15268 Unchecked null value caused server crash
Added null check to cmp_item_sort_string::cmp().
mysql-test/t/select.test:
Test case for bug#15268 Unchecked null value caused server crash
mysql-test/r/select.result:
Test case for bug#15268 Unchecked null value caused server crash
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().
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)
mysql-test/r/select.result:
results of test for bug 12595
mysql-test/t/select.test:
test for bug #12595 (ESCAPE must be exactly one character long)
sql/item_cmpfunc.cc:
if ESCAPE was in the statement check whether its length is
different than 1. In NO_BACKSLASH_ESCAPES mode only length of 1 is
allowed, otherwise the length could be 0 or 1 character (code point
in the sense of Unicode).
sql/item_cmpfunc.h:
pass variable from the parsing stage - whether
ESCAPE clause was found in the statement
sql/sql_help.cc:
pass FALSE for escape_used_in_parsing because we
want the default mode of no error checking - our internal code.
sql/sql_lex.cc:
initialized variable used to transfer information during
parsing up in the stack when reducing in the grammar
sql/sql_lex.h:
new variable used for transfering information when
reducing in the grammar.
sql/sql_yacc.yy:
initialize Lex->escape_used and then use it when reducing.
This is needed as fix for bug #12595 to distinguish between
situation where ESCAPE was found and when not because internally
we may pass a string an empty string and there is no other way
to find out whether this is correct or not in case of
NO_BACKSLASH_ESCAPES mode, which allows only length of 1 if
ESCAPE is part of the SQL statement.
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)
client/mysqltest.c:
Auto merged
mysql-test/lib/mtr_process.pl:
Auto merged
os2/MySQL-Source.icc:
Auto merged
regex/Makefile.am:
Auto merged
regex/engine.c:
Auto merged
regex/main.c:
Auto merged
regex/regerror.c:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/mysqld.cc:
Auto merged
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
client/mysqltest.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
os2/MySQL-Source.icc:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/Makefile.am:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/debug.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/debug.ih:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/engine.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/engine.ih:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/main.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/main.ih:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/regcomp.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/regerror.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/regerror.ih:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/my_regex.h:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/regexec.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/regfree.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/reginit.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
sql/item_cmpfunc.cc:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
sql/item_cmpfunc.h:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
sql/mysqld.cc:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
client/mysqlimport.c:
Auto merged
configure.in:
Auto merged
include/my_global.h:
Auto merged
mysql-test/r/connect.result:
Auto merged
mysql-test/r/func_gconcat.result:
Auto merged
mysql-test/t/connect.test:
Auto merged
mysql-test/t/func_gconcat.test:
Auto merged
ndb/src/kernel/blocks/backup/Backup.cpp:
Auto merged
ndb/src/kernel/blocks/backup/Backup.hpp:
Auto merged
ndb/src/kernel/main.cpp:
Auto merged
ndb/src/mgmsrv/MgmtSrvr.cpp:
Auto merged
ndb/src/mgmsrv/MgmtSrvr.hpp:
Auto merged
ndb/src/ndbapi/Makefile.am:
Auto merged
ndb/test/src/NdbBackup.cpp:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/sql_select.cc:
Auto merged
into mysql.com:/home/alexi/dev/mysql-5.0-0
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
into mysql.com:/usr/home/bar/mysql-5.0
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/r/func_like.result:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
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
mysql-test/t/join_outer.test:
Added testcases for bugs #12101, #12102
mysql-test/r/join_outer.result:
Fixed some testcases results (bugs #12101, #12102)
sql/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.
sql/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/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().
sql/item_cmpfunc.h:
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.
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
Bug 12611 : ESCAPE + LIKE do not work when the escape char is a multibyte one
Forgot to commit this file in the previous changeset,
together with other files.
sql/item_cmpfunc.h:
Bug 12611 : ESCAPE + LIKE do not work when the escape char is a multibyte one
Forgot to commit this file in the previous changeset,
together with other files.
Bug 12611 : ESCAPE + LIKE do not work when the escape char is a multibyte one
Forgot to commit this file in the previous changeset,
together with other files.
view.
For Item_func_strcmp print() was not defined and for this class was called
print_op of it's parent class. Because of this strcmp() was printed wrongly
and this results int creation of broken view.
Added function Item_func_strcmp::print() which correctly prints strcmp()
function.
sql/item_cmpfunc.h:
Fix bug #12489 wrongly printed strcmp() function results in creation of broken view.
mysql-test/r/view.result:
Test case for bug #12489 wrongly printed strcmp() function results in creation of broken view.
mysql-test/t/view.test:
Test case for bug #12489 wrongly printed strcmp() function results in creation of broken view.
view.
For Item_func_strcmp print() was not defined and for this class was called
print_op of it's parent class. Because of this strcmp() was printed wrongly
and this results int creation of broken view.
Added function Item_func_strcmp::print() which correctly prints strcmp()
function.
mysql-test/r/row.result:
Correct NULL handling in row comporison
mysql-test/t/row.test:
Correct NULL handling in row comporison (BUG#12509)
sql/item_cmpfunc.cc:
stop on NULL comparison only if it is allowed
sql/item_cmpfunc.h:
support optimisation in case of processing WHERE/HAVING, where NULL and FALSE are equal
into hasky.mysql.fi:/home/sanja/work-merge-5.0
mysql-test/r/subselect.result:
Auto merged
mysql-test/t/subselect.test:
Auto merged
sql/item.h:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/item_subselect.cc:
merge
mysql-test/r/subselect.result:
testst of IN subqueries with row
mysql-test/t/subselect.test:
tests of ion subqueries with row
sql/item.h:
add method to prevent of removing Item_ref_null_helper from HAVING
sql/item_cmpfunc.h:
Prevented removing of Item_test_isnotnull from HAVING
sql/item_subselect.cc:
fixed converting row IN subqueries
sql/sql_select.cc:
fixed debug print