- 27 Nov, 2007 5 commits
-
-
unknown authored
into magare.gmz:/home/kgeorge/mysql/autopush/B30355-5.0-opt
-
unknown authored
into gleb.loc:/work/bk/5.0-opt sql/opt_range.cc: Auto merged
-
unknown authored
into magare.gmz:/home/kgeorge/mysql/autopush/B30355-5.0-opt
-
unknown authored
There's currently no way of knowing the determinicity of an UDF. And the optimizer and the sequence() UDFs were making wrong assumptions about what the is_const member means. Plus there was no implementation of update_system_tables() causing the optimizer to overwrite the information returned by the <udf>_init function. Fixed by equating the assumptions about the semantics of is_const and providing a implementation of update_used_tables(). Added a TODO item for the UDF API change needed to make a better implementation. include/mysql_com.h: Bug #30355: comment added mysql-test/r/udf.result: Bug #30355: test case mysql-test/t/udf.test: Bug #30355: test case sql/item_func.cc: Bug #30355: keep const_item_cache and used_tables_cache in sync sql/item_func.h: Bug #30355: - a better implementation of update_used_tables() - keep const_item_cache and used_tables_cache in sync sql/udf_example.c: Bug #30355: Wrong value for const_item fixed.
-
unknown authored
memory corruptions. The right pointer field of the SEL_ARG structure was not initialized in the constructor and sometimes that led to server crashes. There is no testcase because the bug occurs only when uninitialized memory has particular values, which can't be re-created in the test suite. sql/opt_range.cc: Fixed bug #32403. The eq_tree function requires that SEL_ARG::left and SEL_ARG::right are equal to null pointer if SEL_ARG type is MAYBE_KEY, but SEL_ARG::right was not initialized and contained garbage.
-
- 26 Nov, 2007 6 commits
-
-
unknown authored
into polly.(none):/home/kaa/src/opt/mysql-5.0-opt sql/ha_myisam.cc: Auto merged mysql-test/r/merge.result: Manual merge. mysql-test/r/myisam.result: Manual merge. mysql-test/t/merge.test: Manual merge. mysql-test/t/myisam.test: Manual merge.
-
unknown authored
self-join When doing DELETE with self-join on a MyISAM or MERGE table, it could happen that a record being retrieved in join_read_next_same() has already been deleted by previous iterations. That caused the engine's index_next_same() method to fail with HA_ERR_RECORD_DELETED error and the whole DELETE query to be aborted with an error. Fixed by suppressing the HA_ERR_RECORD_DELETED error in hy_myisam::index_next_same() and ha_myisammrg::index_next_same(). Since HA_ERR_RECORD_DELETED can only be returned by MyISAM, there is no point in filtering this error in the SQL layer. mysql-test/r/merge.result: Added a test case for bug #28837. mysql-test/r/myisam.result: Added a test case for bug #28837. mysql-test/t/merge.test: Added a test case for bug #28837. mysql-test/t/myisam.test: Added a test case for bug #28837. sql/ha_myisam.cc: Skip HA_ERR_RECORD_DELETED silently when calling mi_rnext_same(). sql/ha_myisammrg.cc: Skip HA_ERR_RECORD_DELETED silently when calling mi_rnext_same().
-
unknown authored
into magare.gmz:/home/kgeorge/mysql/autopush/B32036-5.0-opt
-
unknown authored
into magare.gmz:/home/kgeorge/mysql/autopush/B32036-5.0-opt mysql-test/r/subselect.result: merge of fix for bug 32036 to 5.0-opt mysql-test/t/subselect.test: merge of fix for bug 32036 to 5.0-opt
-
unknown authored
crashes MySQL 5.122 There was a difference in how UNIONs are handled on top level and when in sub-query. Because the rules for sub-queries were syntactically allowing cases that are not currently supported by the server we had crashes (this bug) or wrong results (bug 32051). Fixed by making the syntax rules for UNIONs match the ones at top level. These rules however do not support nesting UNIONs, e.g. (SELECT a FROM t1 UNION ALL SELECT b FROM t2) UNION (SELECT c FROM t3 UNION ALL SELECT d FROM t4) Supports for statements with nested UNIONs will be added in a future version. mysql-test/r/subselect.result: Bug #32036: test case mysql-test/t/subselect.test: Bug #32036: test case sql/sql_yacc.yy: Bug #32036: Make the syntax rules for UNIONs in subqueries the same as for top level UNIONs.
-
unknown authored
into magare.gmz:/home/kgeorge/mysql/autopush/B32268-5.0-opt sql/sql_select.cc: Auto merged
-
- 24 Nov, 2007 5 commits
-
-
unknown authored
into mysql.com:/home/hf/work/30284/my50-30284 mysql-test/r/gis.result: merging mysql-test/t/gis.test: merging
-
unknown authored
into mysql.com:/home/hf/work/30284/my50-30284 mysql-test/r/gis.result: merging mysql-test/t/gis.test: merging
-
unknown authored
into mysql.com:/home/hf/work/30284/my41-30284 mysql-test/r/gis.result: merging mysql-test/t/gis.test: merging
-
unknown authored
mysql-test/r/gis.result: result fixed mysql-test/t/gis.test: test fixed
-
unknown authored
into mysql.com:/home/hf/work/30284/my50-30284 myisam/mi_check.c: Auto merged mysql-test/t/gis.test: Auto merged mysql-test/r/gis.result: SCCS merged
-
- 23 Nov, 2007 1 commit
-
-
unknown authored
into magare.gmz:/home/kgeorge/mysql/autopush/B32400-5.0-opt tests/mysql_client_test.c: Auto merged mysql-test/r/subselect.result: SCCS merged mysql-test/t/subselect.test: SCCS merged
-
- 22 Nov, 2007 5 commits
-
-
unknown authored
Fix for the bug#31048 for 64bit platforms. subselect.test, subselect.result: Corrected text case for the bug#31048. mysql-test/t/subselect.test: Corrected text case for the bug#31048. mysql-test/r/subselect.result: Corrected text case for the bug#31048. sql/opt_range.cc: Fix for the bug#31048 for 64bit platforms.
-
unknown authored
into gleb.loc:/work/bk/5.0-opt
-
unknown authored
into polly.(none):/home/kaa/src/opt/mysql-5.0-opt
-
unknown authored
We do not have any executables in libmysql/release/ anymore.
-
unknown authored
into polly.(none):/home/kaa/src/opt/mysql-5.0-opt tests/mysql_client_test.c: Auto merged
-
- 21 Nov, 2007 3 commits
-
-
unknown authored
is_last_prefix <= 0, file .\opt_range.cc. SELECT ... GROUP BY bit field failed with an assertion if the bit length of that field was not divisible by 8. sql/key.cc: Fixed bug #32556. Copying of "uneven" bits of a bit field was duplicated in the key_copy() and in the Field_bit::get_key_image(). So, instead of copying of the rest of a bit field, Field_bit::get_key_image() copied "uneven" bits to key image again, and the lowest field byte was not copied to key at all. Duplicated code has been removed from the key_copy function. mysql-test/t/type_bit.test: Added test case for bug #32556. mysql-test/r/type_bit.result: Added test case for bug #32556.
-
unknown authored
into magare.gmz:/home/kgeorge/mysql/autopush/B30788-5.0-opt sql/item.h: Auto merged sql/sql_select.cc: Auto merged mysql-test/r/subselect.result: merge of 5.0-opt mysql-test/t/subselect.test: merge of 5.0-opt
-
unknown authored
Index lookup does not always guarantee that we can simply remove the relevant conditions from the WHERE clause. Reasons can be e.g. conversion errors, partial indexes etc. The optimizer was removing these parts of the WHERE condition without any further checking. This leads to "false positives" when using indexes. Fixed by checking the index reference conditions (using WHERE) when using indexes with sub-queries. mysql-test/r/subselect.result: Bug #30788: - using where - test case mysql-test/r/subselect3.result: Bug #30788: using where mysql-test/t/subselect.test: Bug #30788: test case sql/item.h: Bug #30788: - Declare eq() method of Item_cache descendants : this is used in test_if_ref() - preserve the field that is being cached for type comparisions sql/sql_select.cc: Bug #30788: Don't remove the WHERE when using index lookup with subqueries.
-
- 20 Nov, 2007 10 commits
-
-
unknown authored
into moonbone.local:/work/31048-bug-5.0-opt-mysql
-
unknown authored
Additional stack check for the bug#31048. sql/sql_select.cc: Additional stack check for the bug#31048.
-
unknown authored
only on some occasions Referencing an element from the SELECT list in a WHERE clause is not permitted. The namespace of the WHERE clause is the table columns only. This was not enforced correctly when resolving outer references in sub-queries. Fixed by not allowing references to aliases in a sub-query in WHERE. mysql-test/include/ps_query.inc: Bug #32400: fixed old test queries mysql-test/r/ps_2myisam.result: Bug #32400: fixed old test queries mysql-test/r/ps_3innodb.result: Bug #32400: fixed old test queries mysql-test/r/ps_4heap.result: Bug #32400: fixed old test queries mysql-test/r/ps_5merge.result: Bug #32400: fixed old test queries mysql-test/r/ps_6bdb.result: Bug #32400: fixed old test queries mysql-test/r/ps_7ndb.result: Bug #32400: fixed old test queries mysql-test/r/subselect.result: Bug #32400: test case mysql-test/t/subselect.test: Bug #32400: test case sql/item.cc: Bug #32400: don't allow references to aliases in WHERE tests/mysql_client_test.c: Bug #32400: fixed old test queries
-
unknown authored
into gleb.loc:/work/bk/5.0-opt
-
unknown authored
8bit escape characters, termination and enclosed characters were silently ignored by SELECT INTO query, but LOAD DATA INFILE algorithm is 8bit-clean, so data was corrupted during encoding. sql/sql_class.cc: Fixed bug #32533. SELECT INTO OUTFILE encoding was not 8bit clear, it has been fixed for a symmetry with the LOAD DATA INFILE decoding algorithm. mysql-test/t/outfile_loaddata.test: Added test case for bug #32533. mysql-test/r/outfile_loaddata.result: Added test case for bug #32533.
-
unknown authored
Loose index scan does the grouping so the temp table does not need to do it, even when sorting. Fixed by checking if the grouping is already done before doing sorting and grouping in a temp table and do only sorting. mysql-test/r/group_min_max.result: Bug #32268: test case mysql-test/t/group_min_max.test: Bug #32268: test case sql/sql_select.cc: Bug #32268: don't group in the temp table if already done
-
unknown authored
into mysql.com:/home/hf/work/mysql-5.0-opt
-
unknown authored
mysql-test/r/gis.result: test result complete mysql-test/t/gis.test: test case added for the bug
-
unknown authored
into mysql.com:/home/hf/work/31868/my50-31868 sql/sql_table.cc: merging
-
unknown authored
into mysql.com:/home/hf/work/31868/my41-31868
-
- 19 Nov, 2007 5 commits
-
-
unknown authored
into moonbone.local:/work/31048-bug-5.0-opt-mysql
-
unknown authored
into moonbone.local:/work/31048-bug-5.0-opt-mysql sql/item_subselect.cc: Auto merged mysql-test/r/subselect.result: Manual merge mysql-test/t/subselect.test: Manual merge
-
unknown authored
into moonbone.local:/work/30384-bug-5.0-opt-mysql sql/sql_class.h: Auto merged
-
unknown authored
led to creating corrupted index. Corrected fix. The new method called prepare2 is added to the select_create class. As all preparations are done by the select_create::prepare function it doesn't do anything. Slightly changed algorithm of calling the start_bulk_insert function. Now it's called from the select_insert::prepare2 function when the SQL_BUFFER_RESULT flags is set. The is_bulk_insert_mode flag is removed as it is not needed anymore. sql/sql_class.h: Bug#30384: Having SQL_BUFFER_RESULT option in the CREATE .. KEY(..) .. SELECT led to creating corrupted index. Corrected fix. The new method called prepare2 is added to the select_create class. As all preparetions are done by the select_create::prepare function it doesn't do anything. The is_bulk_insert_mode flag is removed as it is not needed anymore. sql/sql_insert.cc: Bug#30384: Having SQL_BUFFER_RESULT option in the CREATE .. KEY(..) .. SELECT led to creating corrupted index. Slightly changed algorithm of calling the start_bulk_insert function. Now it's called from the select_insert::prepare2 function when the SQL_BUFFER_RESULT flags is set. Corrected fix. The is_bulk_insert_mode flag is removed as it is not needed anymore.
-
unknown authored
This bug is actually two. The first one manifests itself on an EXPLAIN SELECT query with nested subqueries that employs the filesort algorithm. The whole SELECT under explain is marked as UNCACHEABLE_EXPLAIN to preserve some temporary structures for explain. As a side-effect of this values of nested subqueries weren't cached and subqueries were re-evaluated many times. Each time buffer for filesort was allocated but wasn't freed because freeing occurs at the end of topmost SELECT. Thus all available memory was eaten up step by step and OOM event occur. The second bug manifests itself on SELECT queries with conditions where a subquery result is compared with a key field and the subquery itself also has such condition. When a long chain of such nested subqueries is present the stack overrun occur. This happens because at some point the range optimizer temporary puts the PARAM structure on the stack. Its size if about 8K and the stack is exhausted very fast. Now the subselect_single_select_engine::exec function allows subquery result caching when the UNCACHEABLE_EXPLAIN flag is set. Now the SQL_SELECT::test_quick_select function calls the check_stack_overrun function for stack checking purposes to prevent server crash. mysql-test/t/subselect.test: Added a test case for the bug#31048: Many nested subqueries may cause server crash. mysql-test/r/subselect.result: Added a test case for the bug#31048: Many nested subqueries may cause server crash. sql/opt_range.cc: Bug#31048: Many nested subqueries may cause server crash. Now the SQL_SELECT::test_quick_select function calls the check_stack_overrun function for stack checking purposes to preven server crash. sql/item_subselect.cc: Bug31048: Many nested subqueries may cause server crash. Now the subselect_single_select_engine::exec function allows subquery result caching when the UNCACHEABLE_EXPLAIN flag is set.
-