equal constant under any circumstances.
In fact this substitution can be allowed if the field is
not of a type string or if the field reference serves as
an argument of a comparison predicate.
mysql-test/r/func_str.result:
Added test cases for bug #21698.
mysql-test/r/heap_hash.result:
Adjusted results after the fix for bug #21198.
mysql-test/t/func_str.test:
Added test cases for bug #21698.
sql/item.cc:
Fixed bug #21198.
Added a method to check whether a field reference can be
substituted for a constant equal to the field.
This substitution is allowed if the field is not of a type string
or if the field reference serves as an argument of a comparison
predicate.
sql/item.h:
Fixed bug #21698.
Added a new virtual transformation method for a item 'compile'
with two callback function parameters.
Added a new virtual method 'subst_argument_checker' to be used
as an amnalyzer method.
This method is supposed to set its in/out argument to NULL for
the nodes where substitution of a string field for a constant
is not valid.
sql/item_cmpfunc.cc:
Fixed bug #21698.
Added an implementation of the compile method for class Item_cond.
First it processes the Item_cond node with a callback function and if
the latter returns TRUE it proceeds with a transformation performed by
another callback function.
sql/item_cmpfunc.h:
Fixed bug #21698.
Added the implementations of 'subst_argument_checker'
for the Item_func and Item_cond classes.
This method is supposed to set its in/out argument to NULL for
the nodes where substitution of a string field for a constant
is not valid.
Added the declaration of an implementation of the compile method for
class Item_cond.
First it processes the Item_cond node with a callback function and if
the latter returns TRUE it proceeds with a transformation performed by
another callback function.
sql/item_func.cc:
Fixed bug #21698.
Added an implementation of the compile method for class Item_func.
First it processes the Item_func node with a callback function and if
the latter returns TRUE it proceeds with a transformation performed by
another callback function.
sql/item_func.h:
Fixed bug #21698.
Added the declaration of the implementation of the compile method for
class Item_func.
First it processes the Item_func node with a callback function and if
the latter returns TRUE it proceeds with a transformation performed by
another callback function.
sql/sql_select.cc:
Fixed bug #21698.
Limited the conditions at which a field can be substituted
a for an equal constant in a formula.
This substitution is allowed if the field is not of a type string
or if the field reference serves as an argument of a comparison
predicate.
Select_type in the EXPLAIN output for the query SELECT * FROM t1 was
'SIMPLE', while for the query SELECT * FROM v1, where the view v1
was defined as SELECT * FROM t1, the EXPLAIN output contained 'PRIMARY'
for the select_type column.
mysql-test/r/group_by.result:
Adjusted results after the fix for bug #5500.
mysql-test/r/information_schema.result:
Adjusted results after the fix for bug #5500.
mysql-test/r/olap.result:
Adjusted results after the fix for bug #5500.
mysql-test/r/range.result:
Adjusted results after the fix for bug #5500.
mysql-test/r/view.result:
Added a test case for bug #5500.
Adjusted other results.
mysql-test/r/view_grant.result:
Adjusted results after the fix for bug #5500.
mysql-test/t/view.test:
Added a test case for bug #5500.
into macbook.gmz:/Users/kgeorge/mysql/work/B16792-5.0-opt
mysql-test/r/func_gconcat.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
sql/opt_sum.cc:
Auto merged
mysql-test/r/func_group.result:
merge 4.1->5.0 for bug #16792
mysql-test/t/func_group.test:
merge 4.1->5.0 for bug #16792
sql/sql_select.cc:
merge 4.1->5.0 for bug #16792
into macbook.gmz:/Users/kgeorge/mysql/work/B21392-5.0-opt
mysql-test/t/delete.test:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/r/delete.result:
merge 4.1->5.0
sql/sql_parse.cc:
merge 4.1->5.0
1003: Incorrect table name
in multi-table DELETE the set of tables to delete from actually
references then tables in the other list, e.g:
DELETE alias_of_t1 FROM t1 alias_of_t1 WHERE ....
is a valid statement.
So we must turn off table name syntactical validity check for alias_of_t1
because it's not a table name (even if it looks like one).
In order to do that we add a special flag (TL_OPTION_ALIAS) to
disable the name checking for the aliases in multi-table DELETE.
mysql-test/r/delete.result:
Bug #21392: multi-table delete with alias table name fails with
1003: Incorrect table name
- test case
mysql-test/t/delete.test:
Bug #21392: multi-table delete with alias table name fails with
1003: Incorrect table name
- test case
sql/mysql_priv.h:
Bug #21392: multi-table delete with alias table name fails with
1003: Incorrect table name
- add a special flag to disable the name checking for the aliases
in multi-table DELETE
sql/sql_parse.cc:
Bug #21392: multi-table delete with alias table name fails with
1003: Incorrect table name
- add a special flag to disable the name checking for the aliases
in multi-table DELETE
sql/sql_yacc.yy:
Bug #21392: multi-table delete with alias table name fails with
1003: Incorrect table name
- add a special flag to disable the name checking for the aliases
in multi-table DELETE
into rakia.(none):/home/kgeorge/mysql/autopush/B14654-5.0-opt
mysql-test/r/subselect.result:
Auto merged
mysql-test/t/subselect.test:
Auto merged
sql/sql_yacc.yy:
Auto merged
account by the optimizer.
Now all row equalities are converted into conjunctions of
equalities between row elements. They are taken into account
by the optimizer together with the original regular equality
predicates.
mysql-test/r/join_outer.result:
Adjusted results after fix for bug #16081.
mysql-test/r/row.result:
Added a test cases for bug #16081.
mysql-test/t/row.test:
Added a test cases for bug #16081.
sql/sql_list.h:
Corrected the copy constructor for the class base_list.
The previous implementation resulted in creation of an
inconsistent base_list if the source list was empty.
make st_select_lex::setup_ref_array() take into account that
Item_sum-descendant objects located within descendant SELECTs
may be added into ref_pointer_array.
sql/item_sum.cc:
BUG#21477 "memory overruns for certain kinds of subqueries":
Make SELECT_LEX::n_sum_items contain # of Item_sum-derived objects
that exist within this SELECT.
sql/sql_lex.h:
BUG#21477 "memory overruns for certain kinds of subqueries":
Add SELECT_LEX::n_sum_items and SELECT_LEXT::n_child_sum_items.
sql/sql_yacc.yy:
BUG#21477 "memory overruns for certain kinds of subqueries":
Make SELECT_LEX::n_sum_items contain # of Item_sum-derived objects
that exist within this SELECT.
Made the parser to support parenthesis around UNION branches.
This is done by amending the rules of the parser so it generates the correct
structure.
Currently it supports arbitrary subquery/join/parenthesis operations in the
EXISTS clause.
In the IN/scalar subquery case it will allow adding nested parenthesis only
if there is an UNION clause after the parenthesis. Otherwise it will just
treat the multiple nested parenthesis as a scalar expression.
It adds extra lex level for ((SELECT ...) UNION ...) to accommodate for the
UNION clause.
mysql-test/r/subselect.result:
Bug#14654 : Cannot select from the same table twice within a UNION statement
- test cases
mysql-test/t/subselect.test:
Bug#14654 : Cannot select from the same table twice within a UNION statement
- test cases
sql/sql_yacc.yy:
Bug#14654 : Cannot select from the same table twice within a UNION statement
- shuffle around the rules for the parenthesis in subselect
when a range condition use an invalid DATETIME constant.
Now we do not use invalid DATETIME constants to form end keys for
range intervals: range analysis just ignores predicates with such
constants.
mysql-test/r/query_cache.result:
Adjusted result warnings when adding a fix for bug #16249.
mysql-test/r/range.result:
Added a test case for bug #16249.
mysql-test/t/range.test:
Added a test case for bug #16249.
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).
mysql-test/r/select.result:
Added a test case for bug #21390: wrong estimate of rows
after elimination of const tables.
Includded a test case that checks the code added by the patch
that handles outer joins with no matches after substitution of
a const table in an efficient way.
mysql-test/t/select.test:
Added a test case for bug #21390: wrong estimate of rows
after elimination of const tables.
Included a test case that checks the code added by the patch
that handles outer joins with no matches after substitution of
a const table in an efficient way.
sql/sql_select.cc:
Fixed bug #21390: wrong estimate of rows after elimination of
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).
Also added the code to handle outer joins with no matches after
substitution of a const table in an efficient way.
Corrected calculation of the null rejecting key conditions.
Must not use Item_direct_ref in HAVING because it points to
the new value (witch is not yet calculated for the first row).
mysql-test/r/subselect.result:
Bug #16255: Subquery in where
- test case
mysql-test/t/subselect.test:
Bug #16255: Subquery in where
- test case
sql/item_subselect.cc:
Bug #16255: Subquery in where
Must not use Item_direct_ref in HAVING because it points to
the new value (witch is not yet calculated for the first row).
Corrected test case for the bug#21261
sql_parse.cc:
Corrected fix for bug#21261
mysql-test/t/view.test:
Corrected test case for the bug#21261
mysql-test/r/view.result:
Corrected test case for the bug#21261
sql/sql_parse.cc:
Corrected fix for bug#21261
used.
Sorting by RAND() uses a temporary table in order to get a correct results.
User defined variable was set during filling the temporary table and later
on it is substituted for its value from the temporary table. Due to this
it contains the last value stored in the temporary table.
Now if the result_field is set for the Item_func_set_user_var object it
updates variable from the result_field value when being sent to a client.
The Item_func_set_user_var::check() now accepts a use_result_field
parameter. Depending on its value the result_field or the args[0] is used
to get current value.
mysql-test/r/user_var.result:
Added a test case for bug#16861: User defined variable can have a wrong value if a tmp table was used.
mysql-test/t/user_var.test:
Added a test case for bug#16861: User defined variable can have a wrong value if a tmp table was used.
sql/item_func.cc:
Fixed bug#16861: User defined variable can have a wrong value if a tmp table was used.
Now if the result_field is set for the Item_func_set_user_var object it
updates variable from the result_field value when being sent to a client.
The Item_func_set_user_var::check() now accepts a use_result_field
parameter. Depending on its value the result_field or the args[0] is used
to get current value.
sql/item_func.h:
Fixed bug#16861: User defined variable can have a wrong value if a tmp table was used.
Added a new SUSERVAR_FUNC function type.
Updated the Item_func_set_user_var::check() function declaration.
Added the Item_func_set_user_var::send() member function.
sql/set_var.cc:
Fixed bug#16861: User defined variable can have a wrong value if a tmp table was used.
Modified to use updated Item_func_set_user_var::check() function.
sql/sql_class.cc:
Fixed bug#16861: User defined variable can have a wrong value if a tmp table was used.
Modified to use updated Item_func_set_user_var::check() function.
sql/sql_select.cc:
Fixed bug#16861: User defined variable can have a wrong value if a tmp table was used.
Now an Item_func_set_user_var object isn't substituted for an Item_field object after filling a temporary table.
when X.509 subject was required for a connect, we tested whether it was the right
one, but did not refuse the connexion if not. fixed.
(corrected CS now --replace_results socket-path)
mysql-test/r/openssl_1.result:
Bug#20411: "GRANT ... REQUIRE ISSUER nnn AND SUBJECT mmm" fails to require both
test not only whether we can connect with a correct X.509 subject when one is
required, but also assure that we can't without one.
mysql-test/t/openssl_1.test:
Bug#20411: "GRANT ... REQUIRE ISSUER nnn AND SUBJECT mmm" fails to require both
test not only whether we can connect with a correct X.509 subject when one is
required, but also assure that we can't without one.
sql/sql_acl.cc:
Bug#20411: "GRANT ... REQUIRE ISSUER nnn AND SUBJECT mmm" fails to require both
actually refuse connexion if X.509 is required, but does not match. kudos to Al Smith.
buffer for a MY_BITMAP temporary buffer allocated on stack in the
function get_best_covering_ror_intersect().
Now the buffer of a proper size is allocated by a request from this
function in mem_root.
We succeeded to demonstrate the bug only on Windows with a very large
database. That's why no test case is provided for in the patch.
sql/opt_range.cc:
Fixed bug 16201: a memory corruption causing crashes due to a too small
buffer for a MY_BITMAP temporary buffer allocated on stack in the
function get_best_covering_ror_intersect().
Now the buffer of a proper size is allocated by a request from this
function in mem_root.
Bug #18744 Test 'join_outer' fails if "classic" configuration in 5.0
- moved an InnoDB dependent test to the appropriate file
mysql-test/r/innodb_mysql.result:
Bug #18744 Test 'join_outer' fails if "classic" configuration in 5.0
- moved an InnoDB dependent test to the appropriate file
mysql-test/r/join_outer.result:
Bug #18744 Test 'join_outer' fails if "classic" configuration in 5.0
- moved an InnoDB dependent test to the appropriate file
mysql-test/t/innodb_mysql.test:
Bug #18744 Test 'join_outer' fails if "classic" configuration in 5.0
- moved an InnoDB dependent test to the appropriate file
mysql-test/t/join_outer.test:
Bug #18744 Test 'join_outer' fails if "classic" configuration in 5.0
- moved an InnoDB dependent test to the appropriate file