- 17 Oct, 2006 1 commit
-
-
unknown authored
list using a function When executing dependent subqueries they are re-inited and re-exec() for each row of the outer context. The cause for the bug is that during subquery reinitialization/re-execution, the optimizer reallocates JOIN::join_tab, JOIN::table in make_simple_join() and the local variable in 'sortorder' in create_sort_index(), which is allocated by make_unireg_sortorder(). Care must be taken not to allocate anything into the thread's memory pool while re-initializing query plan structures between subquery re-executions. All such items mush be cached and reused because the thread's memory pool is freed at the end of the whole query. Note that they must be cached and reused even for queries that are not otherwise cacheable because otherwise it will grow the thread's memory pool every time a cacheable query is re-executed. We provide additional members to the JOIN structure to store references to the items that need to be cached. mysql-test/r/subselect.result: Bug#21798: memory leak during query execution with subquery in column list using a function - test case mysql-test/t/subselect.test: Bug#21798: memory leak during query execution with subquery in column list using a function - test case sql/mysql_priv.h: Bug#21798: memory leak during query execution with subquery in column list using a function - cache the entities allocated in the threads memory pool by JOIN::exec (). sql/sql_delete.cc: Bug#21798: memory leak during query execution with subquery in column list using a function - cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's memory pool by JOIN::exec (). sql/sql_select.cc: Bug#21798: memory leak during query execution with subquery in column list using a function - cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's memory pool by JOIN::exec (). sql/sql_select.h: Bug#21798: memory leak during query execution with subquery in column list using a function - cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's memory pool by JOIN::exec (). sql/sql_table.cc: Bug#21798: memory leak during query execution with subquery in column list using a function - cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's memory pool by JOIN::exec (). sql/sql_update.cc: Bug#21798: memory leak during query execution with subquery in column list using a function - cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's memory pool by JOIN::exec ().
-
- 07 Sep, 2006 2 commits
-
-
unknown authored
into rurik.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug21698 sql/sql_select.cc: Auto merged
-
unknown authored
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.
-
- 05 Sep, 2006 2 commits
-
-
unknown authored
-
unknown authored
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
-
- 04 Sep, 2006 5 commits
-
-
unknown authored
into rakia.(none):/home/kgeorge/mysql/autopush/B21392-5.0-opt sql/sql_yacc.yy: Auto merged
-
unknown authored
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
-
unknown authored
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
-
unknown authored
into rurik.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug16081
-
unknown authored
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
-
- 01 Sep, 2006 3 commits
-
-
unknown authored
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.
-
unknown authored
into mysql.com:/home/psergey/mysql-5.0-bug21477-look-64bit
-
unknown authored
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.
-
- 31 Aug, 2006 3 commits
-
-
unknown authored
into rurik.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug16249
-
unknown authored
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
-
unknown authored
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.
-
- 26 Aug, 2006 3 commits
- 25 Aug, 2006 3 commits
-
-
unknown authored
into mysql.com:/home/psergey/mysql-5.0-bug16255-merge
-
unknown authored
into rurik.mysql.com:/home/igor/mysql-5.0-opt
-
unknown 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). 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.
-
- 24 Aug, 2006 5 commits
-
-
unknown authored
Corrected fix for bug#18165 sql/opt_range.cc: Corrected fix for bug#18165
-
unknown authored
Corrected fix for bug#18165 sql/opt_range.cc: Corrected fix for bug#18165
-
unknown authored
-
unknown authored
mysql-test/r/subselect.result: BUG#16255: A proper testcase mysql-test/t/subselect.test: BUG#16255: A proper testcase
-
unknown authored
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).
-
- 23 Aug, 2006 1 commit
-
-
unknown authored
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
-
- 22 Aug, 2006 12 commits
-
-
unknown authored
into moonbone.local:/work/21475-fix-5.0-opt-mysql
-
unknown authored
Additional fix for bug #21475 item_func.h, item_func.cc: Additional fix for bug#16861 sql/item_func.h: Additional fix for bug#16861 sql/item_func.cc: Additional fix for bug#16861 sql/item_cmpfunc.cc: Additional fix for bug #21475 sql/item.cc: Additional fix for bug #21475
-
unknown authored
into salvation.intern.azundris.com:/home/tnurnberg/work/mysql-5.0-maint-20987
-
unknown authored
into salvation.intern.azundris.com:/home/tnurnberg/work/mysql-5.0-maint-20987
-
unknown authored
into zippy.cornsilk.net:/home/cmiller/work/mysql/merge/mysql-5.0
-
unknown authored
into rurik.mysql.com:/home/igor/mysql-5.0-opt
-
unknown authored
into sunlight.local:/local_work/16861-bug-5.0-mysql sql/sql_select.cc: Auto merged
-
unknown authored
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.
-
unknown authored
into moonbone.local:/work/21475-bug-5.0-opt-mysql
-
unknown authored
into salvation.intern.azundris.com:/home/tnurnberg/work/mysql-5.0-maint-20411 sql/sql_acl.cc: Auto merged
-
unknown authored
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.
-
unknown authored
into salvation.intern.azundris.com:/home/tnurnberg/work/mysql-5.0-maint-20987 sql/item_timefunc.cc: Auto merged mysql-test/r/func_time.result: manual merge mysql-test/t/func_time.test: manual merge
-