- 12 Jan, 2007 2 commits
-
-
unknown authored
- Make the code produce correct result: use an array of triggers to turn on/off equalities for each compared column. Also turn on/off optimizations based on those equalities. - Make EXPLAIN output show "Full scan on NULL key" for tables for which we switch between ref/unique_subquery/index_subquery and ALL access. - index_subquery engine now has HAVING clause when it is needed, and it is displayed in EXPLAIN EXTENDED - Fix incorrect presense of "Using index" for index/unique-based subqueries (BUG#22930) // bk trigger note: this commit refers to BUG#24127 mysql-test/r/ndb_subquery.result: BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...) - Updated test results (checked) mysql-test/r/subselect.result: BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...) - Updated test results (checked) mysql-test/r/subselect2.result: BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...) - Updated test results (checked) mysql-test/r/subselect3.result: BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...) - Testcases mysql-test/t/subselect3.test: BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...) - Testcases sql/item_cmpfunc.cc: BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...) - For row-based IN subqueries, use one flag per each column. Set the flags appropriately before running the subquery. sql/item_cmpfunc.h: BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...) - Added Item_func_trig_cond::get_triv_var() sql/item_subselect.cc: BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...) - Item_subselect::exec() and subselect_*_engine::exec() don't have parameter anymore - now Item_subselect owns the pushed down predicates guard flags. - A correct set of conditional predicates is now pushed into row-based IN subquery. - select_indexsubquery_engine now has "HAVING clause" (needed for correct query results), and it is shown in EXPLAIN EXTENDED sql/item_subselect.h: BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...) - Item_subselect::exec() and subselect_*_engine::exec() don't have parameter anymore - now Item_subselect owns the pushed down predicates guard flags. - A correct set of conditional predicates is now pushed into row-based IN subquery. - select_indexsubquery_engine now has "HAVING clause" (needed for correct query results), and it is shown in EXPLAIN EXTENDED sql/mysql_priv.h: BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...) - Added "in_having_cond" special Item name sql/mysqld.cc: BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...) - Added "in_having_cond" special Item name sql/sql_lex.h: BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...) sql/sql_select.cc: BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...) - Make "ref" analyzer be able to work with conditional equalities - Fix subquery optimization code to match the changes in what kinds of conditions are pushed down into subqueries - Fix wrong EXPLAIN output in some queries with subquery (BUG#22390) sql/sql_select.h: BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...) - Make "ref" analyzer be able to work with conditional equalities - Fix wrong EXPLAIN output in some queries with subquery (BUG#22390)
-
unknown authored
When transforming "oe IN (SELECT ie ...)" wrap the pushed-down predicates iff "oe can be null", not "ie can be null". The fix doesn't cover row-based subqueries, those will be fixed in #24127. mysql-test/r/subselect.result: BUG#24085: Wrong result for NULL IN (SELECT not_null_val FROM ...) Update the test results (checked) mysql-test/r/subselect3.result: BUG#24085: Wrong result for NULL IN (SELECT not_null_val FROM ...) - Testcase mysql-test/t/subselect3.test: BUG#24085: Wrong result for NULL IN (SELECT not_null_val FROM ...) - Testcase sql/item_subselect.cc: BUG#24085: Wrong result for NULL IN (SELECT not_null_val FROM ...) When transforming "oe IN (SELECT ie ...)" we should make special provisions (wrap the pushed predicates) if we can encounter NULL IN (SELECT ...), i.e. when oe->maybe_null. The code was checking for ie->maybe_null instead, fixed it for single value based subqueries. Row-based subqueries (e.g. (a,b) IN (SELECT c,d ...)) are not fixed because they won't produce correct results for several other reasons (filed as #24085)
-
- 10 Jan, 2007 6 commits
-
-
unknown authored
into olga.mysql.com:/home/igor/mysql-5.0-opt sql/item.cc: Auto merged mysql-test/r/order_by.result: Manual merge mysql-test/t/order_by.test: Manual merge
-
unknown authored
-
unknown authored
into mysql.com:/home/gluh/MySQL/Merge/5.0-opt sql/mysqld.cc: Auto merged sql/sql_base.cc: Auto merged sql/mysql_priv.h: manual merge
-
unknown authored
2nd version During tmp tables cleanup we get the handler for temporary table and delete table using handler method. sql/mysql_priv.h: added function prototype sql/mysqld.cc: added call of mysql_rm_tmp_tables() function sql/sql_base.cc: mysql_rm_tmp_tables() -removed from table_cache_init -During tmp tables cleanup we get the handler for temporary table and delete table using handler method. it allows to remove orphan records from data dictionary(InnoDB)
-
unknown authored
In the method Item_field::fix_fields we try to resolve the name of the field against the names of the aliases that occur in the select list. This is done by a call of the function find_item_in_list. When this function finds several occurrences of the field name it sends an error message to the error queue and returns 0. Yet the code did not take into account that find_item_in_list could return 0 and tried to dereference the returned value. mysql-test/r/order_by.result: Added a test case for bug #25427. mysql-test/t/order_by.test: Added a test case for bug #25427. sql/item.cc: Fixed bug #25427. In the method Item_field::fix_fields we try to resolve the name of the field against the names of the aliases that occur in the select list. This is done by a call of the function find_item_in_list. When this function finds several occurrences of the field name it sends an error message to the error queue and returns 0. Yet the code did not take into account that find_item_in_list could return 0 and tried to dereference the returned value.
-
unknown authored
into olga.mysql.com:/home/igor/mysql-5.0-opt
-
- 09 Jan, 2007 9 commits
-
-
unknown authored
used. The Item::save_in_field() function is called from fill_record() to fill the new row with data while execution of the CREATE TABLE ... SELECT statement. Item::save_in_field() calls val_xxx() methods in order to get values. val_xxx() methods do not take into account the result field. Due to this Item_func_set_user_var::val_xxx() methods returns values from the original table, not from the temporary one. The save_in_field() member function is added to the Item_func_set_user_var class. It detects whether the result field should be used and properly updates the value of the user variable. sql/item_func.cc: Bug#16861: User defined variable can have a wrong value if a tmp table was used. Added the save_in_field() member function to the Item_func_set_user_var class. sql/item_func.h: Bug#16861: User defined variable can have a wrong value if a tmp table was used. Added the save_in_field() member function to the Item_func_set_user_var class. mysql-test/r/user_var.result: Extended the test case for bug#18681: User defined variable can have a wrong value if a tmp table was used. mysql-test/t/user_var.test: Extended the test case for bug#18681: User defined variable can have a wrong value if a tmp table was used.
-
unknown authored
into olga.mysql.com:/home/igor/mysql-5.0-opt sql/item_cmpfunc.cc: Auto merged
-
unknown authored
A BINARY field is represented by the Field_string class. The space character is used as the filler for unused characters in such a field. But a BINARY field should use \x00 instead. Field_string:reset() now detects whether the current field is a BINARY one and if so uses the \x00 character as a default value filler. sql/field.h: Bug#14171: Wrong internal default value for a BINARY field. Field_string:reset() now detects whether the current field is a BINARY one and if so uses the \x00 character as a default value filler. mysql-test/r/type_binary.result: Added a test case for the bug#14171: Wrong internal default value for a BINARY field. mysql-test/t/type_binary.test: Added a test case for the bug#14171: Wrong internal default value for a BINARY field.
-
unknown authored
into moonbone.local:/home/evgen/bk-trees/mysql-5.0-opt
-
unknown authored
into olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug25027 sql/item_cmpfunc.cc: Auto merged sql/item_cmpfunc.h: Auto merged sql/sql_lex.cc: Auto merged
-
unknown authored
into mysql.com:/d2/hf/opt/my50-opt
-
unknown authored
into moonbone.local:/home/evgen/bk-trees/mysql-5.0-opt sql/filesort.cc: Auto merged sql/handler.cc: Auto merged sql/item_cmpfunc.cc: Auto merged sql/item_subselect.cc: Auto merged sql/item_timefunc.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_parse.cc: Auto merged sql-common/client.c: Auto merged sql-common/my_time.c: Auto merged sql/sql_select.cc: Auto merged sql/table.cc: Auto merged strings/decimal.c: Auto merged
-
unknown authored
into olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug24345 sql/sql_select.cc: Auto merged
-
unknown authored
into mysql.com:/d2/hf/opt/my50-opt
-
- 05 Jan, 2007 1 commit
-
-
unknown authored
The optimizer removes expressions from GROUP BY/DISTINCT if they happen to participate in a <expression> = <const> predicates of the WHERE clause (the idea being that if it's always equal to a constant it can't have multiple values). However for predicates where the expression and the constant item are of different result type this is not valid (e.g. a string column compared to 0). Fixed by additional check of the result types of the expression and the constant and if they differ the expression don't get removed from the group by list. mysql-test/r/distinct.result: Bug #15881: cast problems - test case mysql-test/t/distinct.test: Bug #15881: cast problems - test case sql/sql_select.cc: Bug #15881: cast problems - can't use <expr>=<const> to remove GROUP BY/DISTINCT cols if they're not of the same type.
-
- 04 Jan, 2007 2 commits
- 03 Jan, 2007 5 commits
-
-
unknown authored
This bug appeared after the patch for bug 21390 that had added some code to handle outer joins with no matches after substitution of a const table in an efficient way. That code as it is cannot be applied to the case of nested outer join operations. Being applied to the queries with nested outer joins the code can cause crashes or wrong result sets. The fix blocks row substitution for const inner tables of an outer join if the inner operand is not a single table. mysql-test/r/join_nested.result: Added a test case for bug #24345. mysql-test/t/join_nested.test: Added a test case for bug #24345.
-
unknown authored
into rakia.gmz:/home/kgeorge/mysql/work/B15439-5.0-opt sql/sql_udf.cc: Auto merged
-
unknown authored
Addendum to the fix for bug#15439 : valgrind pb failed sql/sql_udf.cc: Addendum to the fix for bug#15439 : valgrind pb failed
-
unknown authored
into mysql.com:/d2/hf/opt/my41-opt
-
unknown authored
into mysql.com:/d2/hf/opt/my50-opt myisam/mi_check.c: Auto merged sql/item_subselect.cc: Auto merged sql/item_subselect.h: Auto merged sql/sql_lex.cc: Auto merged sql/sql_udf.cc: Auto merged
-
- 02 Jan, 2007 11 commits
-
-
unknown authored
mysql-test/r/flush_block_commit_notembedded.result: result fixed
-
unknown authored
mysql-test/t/mysql_upgrade.test: test disabled in embedded server
-
unknown authored
into mysql.com:/d2/hf/common/my50-common libmysqld/lib_sql.cc: merging
-
unknown authored
libmysqld/lib_sql.cc: reading warning count added
-
unknown authored
into mysql.com:/d2/hf/common/my50-common
-
unknown authored
into mysql.com:/d2/hf/common/my50-common libmysqld/lib_sql.cc: merging
-
unknown authored
-
unknown authored
-
unknown authored
into mysql.com:/d2/hf/common/my50-common mysql-test/t/mysqladmin.test: Auto merged sql/item_func.cc: Auto merged libmysqld/lib_sql.cc: merging mysql-test/t/distinct.test: merging sql/sql_prepare.cc: SCCS merged
-
unknown authored
libmysqld/lib_sql.cc: error message moved to 'stmt' mysql-test/t/distinct.test: temporary disabled in embedded server mysql-test/t/mysqladmin.test: disabled in embedded server sql/sql_prepare.cc: superfluous #ifndef removed
-
unknown authored
Temporary work around for bug#25359 mysql-test/r/view.result: Temporary work around for bug#25359
-
- 31 Dec, 2006 4 commits
-
-
unknown authored
into mysql.com:/d2/hf/common/my50-common mysql-test/mysql-test-run.pl: Auto merged sql/item_func.cc: Auto merged sql/item_strfunc.cc: Auto merged
-
unknown authored
into mysql.com:/d2/hf/common/my41-common sql/item_func.cc: Auto merged
-
unknown authored
into mysql.com:/d2/hf/common/my50-common libmysqld/lib_sql.cc: Auto merged sql/item_func.cc: Auto merged
-
unknown authored
into mysql.com:/home/kent/bk/main/mysql-5.0 myisam/mi_check.c: Auto merged myisam/mi_dynrec.c: Auto merged myisam/mi_packrec.c: Auto merged myisam/mi_range.c: Auto merged myisam/mi_test1.c: Auto merged myisam/mi_write.c: Auto merged myisam/rt_split.c: Auto merged sql/opt_range.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_insert.cc: Auto merged
-