- 23 Jan, 2007 1 commit
-
-
unknown authored
into macbook.gmz:/Users/kgeorge/mysql/work/merge-5.1-opt mysql-test/r/func_in.result: Auto merged mysql-test/r/range.result: Auto merged mysql-test/r/select.result: Auto merged mysql-test/r/sp-code.result: Auto merged mysql-test/r/trigger.result: Auto merged mysql-test/r/udf.result: Auto merged mysql-test/r/view.result: Auto merged mysql-test/t/func_in.test: Auto merged mysql-test/t/func_str.test: Auto merged mysql-test/t/range.test: Auto merged mysql-test/t/select.test: Auto merged mysql-test/t/trigger.test: Auto merged mysql-test/t/udf.test: Auto merged sql/item.cc: Auto merged sql/item.h: Auto merged sql/item_cmpfunc.cc: Auto merged sql/item_func.cc: Auto merged sql/item_strfunc.cc: Auto merged sql/mysql_priv.h: Auto merged sql/opt_range.h: Auto merged sql/sql_base.cc: Auto merged sql/sql_delete.cc: Auto merged sql/sql_insert.cc: Auto merged sql/sql_lex.cc: Auto merged sql/sql_lex.h: Auto merged sql/sql_prepare.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_table.cc: Auto merged sql/sql_union.cc: Auto merged sql/sql_update.cc: Auto merged mysql-test/r/func_str.result: merge 5.0-opt -> 5.1-opt mysql-test/r/group_by.result: merge 5.0-opt -> 5.1-opt mysql-test/r/insert.result: merge 5.0-opt -> 5.1-opt mysql-test/r/subselect.result: merge 5.0-opt -> 5.1-opt mysql-test/t/group_by.test: merge 5.0-opt -> 5.1-opt mysql-test/t/insert.test: merge 5.0-opt -> 5.1-opt mysql-test/t/subselect.test: merge 5.0-opt -> 5.1-opt mysql-test/t/view.test: merge 5.0-opt -> 5.1-opt sql/item_cmpfunc.h: merge 5.0-opt -> 5.1-opt sql/item_strfunc.h: merge 5.0-opt -> 5.1-opt
-
- 22 Jan, 2007 5 commits
-
-
unknown authored
Code cleanup after fix for bug#23417. sql/sql_select.cc: Code cleanup after fix for bug#23417.
-
unknown authored
Post fix for bug#25123. sql/sql_prepare.cc: Post fix for bug#25123.
-
unknown authored
When inserting into a join-based view the update fields from the ON DUPLICATE KEY UPDATE wasn't checked to be from the table being inserted into and were silently ignored. The new check_view_single_update() function is added to check that insert/update fields are being from the same single table of the view. sql/sql_insert.cc: Bug#25123: ON DUPLICATE KEY clause allows fields not from the insert table. The new check_view_single_update() function is added to check that insert/update fields are being from the same single table of the view. mysql-test/r/insert.result: Added a test case for bug#25123: ON DUPLICATE KEY clause allows fields not from the insert table. mysql-test/t/insert.test: Added a test case for bug#25123: ON DUPLICATE KEY clause allows fields not from the insert table.
-
unknown authored
into rakia.gmz:/home/kgeorge/mysql/autopush/B16590-5.1-opt mysql-test/r/order_by.result: Auto merged mysql-test/t/order_by.test: Auto merged sql/sql_select.cc: Auto merged
-
unknown authored
st_table::const_key_parts member is used in determining if certain key has a prefix that is compared to constant(s) in the query predicates. If there's such prefix the index can be used to get the data from the remaining suffix columns in sorted order. However if a field is compared to another field from a "const" table the const_key_parts is not amended. This makes the optimizer unable to detect that the key can be used for sorting and adds an extra filesort. Fixed by updating const_key_parts after reading in the "const" table. mysql-test/r/order_by.result: BUG#16590: Optimized does not do right "const" table pre-read - test case mysql-test/t/order_by.test: BUG#16590: Optimized does not do right "const" table pre-read - test case sql/sql_select.cc: BUG#16590: Optimized does not do right "const" table pre-read - fill up the const_key_parts structure
-
- 19 Jan, 2007 6 commits
-
-
unknown authored
into olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug25580
-
unknown authored
into moonbone.local:/work/25172-bug-5.0-opt-mysql
-
unknown authored
into olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug25580 mysql-test/r/subselect.result: Auto merged
-
unknown authored
into olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug25580
-
unknown authored
After fix for bug#21798 JOIN stores the pointer to the buffer for sorting fields. It is used while sorting for grouping and for ordering. If ORDER BY clause has more elements then the GROUP BY clause then a memory overrun occurs. Now the length of the ORDER BY list is always passed to the make_unireg_sortorder() function and it allocates buffer big enough to be used for bigger list. sql/sql_delete.cc: Bug#25172: Not checked buffer size leads to a server crash. Length parameter is initialized to 0 for the make_unireg_sortorder() function. sql/sql_select.cc: Bug#25172: Not checked buffer size leads to a server crash. Now the length of the ORDER BY list is always passed to the make_unireg_sortorder() function and it allocates buffer big enough to be used for bigger list. sql/sql_table.cc: Bug#25172: Not checked buffer size leads to a server crash. Length parameter is initialized to 0 for the make_unireg_sortorder() function. sql/sql_update.cc: Bug#25172: Not checked buffer size leads to a server crash. Length parameter is initialized to 0 for the make_unireg_sortorder() function. mysql-test/r/select.result: Added a test case for bug#25172: Not checked buffer size leads to a server crash. mysql-test/t/select.test: Added a test case for bug#25172: Not checked buffer size leads to a server crash.
-
unknown authored
UNION over correlated and uncorrelated SELECTS. In such subqueries each uncorrelated SELECT should be considered as uncacheable. Otherwise join_free is called for it and in many cases it causes some problems. mysql-test/r/subselect.result: Added a test case for bug #25219. mysql-test/t/subselect.test: Added a test case for bug #25219. sql/mysql_priv.h: Fixed bug #25219: crash for a query that contains an EXIST subquery with UNION over correlated and uncorrelated SELECTS. In such subqueries each uncorrelated SELECT should be considered as uncacheable. Otherwise join_free is called for it and in many cases it causes some problems. Added a new flag UNCACHEABLE_UNITED for such SELECTs. sql/sql_lex.cc: Fixed bug #25219: crash for a query that contains an EXIST subquery with UNION over correlated and uncorrelated SELECTS. In such subqueries each uncorrelated SELECT should be considered as uncacheable. Otherwise join_free is called for it and in many cases it causes some problems. Added a new flag UNCACHEABLE_UNITED for such SELECTs.
-
- 18 Jan, 2007 3 commits
-
-
unknown authored
into rakia.gmz:/home/kgeorge/mysql/autopush/B25382-5.0-opt
-
unknown authored
crashes server Check for null value is reliable only after calling some of the val_xxx() methods. If the val_xxx() method is not called the null_value flag will be set only for certain types of NULL values (like SQL constant NULLs for example). This caused a crash while trying to dereference a NULL pointer that is returned by val_str() for NULL values. Fixed by swapping the order of val_xxx() and null_value check. mysql-test/r/udf.result: Bug #25382: Passing NULL to an UDF called from stored procedures crashes server - test case mysql-test/t/udf.test: Bug #25382: Passing NULL to an UDF called from stored procedures crashes server - test case sql/item_func.cc: Bug #25382: Passing NULL to an UDF called from stored procedures crashes server - reliably check null_value
-
unknown authored
when they contain the '!' operator. Added an implementation for the method Item_func_not::print. The method encloses any NOT expression into extra parentheses to avoid incorrect stored representations of views that use the '!' operators. Without this change when a view was created that contained the expression !0*5 its stored representation contained not this expression but rather the expression not(0)*5 . The operator '!' is of a higher precedence than '*', while NOT is of a lower precedence than '*'. That's why the expression !0*5 is interpreted as not(0)*5, while the expression not(0)*5 is interpreted as not((0)*5) unless sql_mode is set to HIGH_NOT_PRECEDENCE. Now we translate !0*5 into (not(0))*5. mysql-test/r/sp-code.result: Adjusted results after the fix of bug 25580. mysql-test/r/subselect.result: Adjusted results after the fix of bug 25580. mysql-test/r/view.result: Added a test case for bug #25580. mysql-test/t/view.test: Added a test case for bug #25580. sql/item_cmpfunc.cc: Fixed bug #25580: incorrect stored representations of views in cases when they contain the '!' operator. Added an implementation for the method Item_func_not::print. The method encloses the NOT expression into extra parenthesis to avoid incorrect stored representations of views that use the '!' operators. sql/item_cmpfunc.h: Fixed bug #25580: incorrect stored representations of views in cases when they contain the '!' operator. Added an implementation for the method Item_func_not::print. The method encloses the NOT expression into extra parenthesis to avoid incorrect stored representations of views that use the '!' operators.
-
- 15 Jan, 2007 8 commits
-
-
unknown authored
-
unknown authored
into olga.mysql.com:/home/igor/mysql-5.0-opt
-
unknown authored
into olga.mysql.com:/home/igor/mysql-5.0-opt
-
unknown authored
Fix for crashes on 64bit platforms after fixing bug#23417. sql/sql_select.cc: Fix for crashes on 64bit platforms after fixing bug#23417.
-
unknown authored
into olga.mysql.com:/home/igor/mysql-5.0-opt mysql-test/r/range.result: Auto merged mysql-test/t/range.test: Auto merged sql/opt_range.h: Manual merge.
-
unknown authored
into rakia.gmz:/home/kgeorge/mysql/autopush/B20420-5.0-opt sql/item_cmpfunc.h: Auto merged
-
unknown authored
The optimizer needs to evaluate whether predicates are better evaluated using an index. IN is one such predicate. To qualify an IN predicate must involve a field of the index on the left and constant arguments on the right. However whether an expression is a constant can be determined only by knowing the preceding tables in the join order. Assuming that only IN predicates with expressions on the right that are constant for the whole query qualify limits the scope of possible optimizations of the IN predicate (more specifically it doesn't allow the "Range checked for each record" optimization for such an IN predicate. Fixed by not pre-determining the optimizability of the IN predicate in the case when all right IN operands are not SQL constant expressions mysql-test/r/func_in.result: BUG#20420: optimizer reports wrong keys on left join with IN - test case mysql-test/t/func_in.test: BUG#20420: optimizer reports wrong keys on left join with IN - test case sql/item_cmpfunc.h: BUG#20420: optimizer reports wrong keys on left join with IN - cannot decide on the optimizability of a function without knowing the tables before it in the join order
-
unknown authored
added new field 'REFERENCED_TABLE_NAME' to 'referential_constraints' table field 'UNIQUE_CONSTRAINT_NAME' contains the name of the referenced index mysql-test/r/information_schema_inno.result: result fix mysql-test/t/information_schema_inno.test: test fix sql/sql_show.cc: added new field 'REFERENCED_TABLE_NAME' to 'referential_constraints' table field 'UNIQUE_CONSTRAINT_NAME' contains the name of the referenced index sql/table.h: added 'referenced_key_name' member to 'st_foreign_key_info' struct storage/innobase/handler/ha_innodb.cc: added the filling of referenced key name
-
- 14 Jan, 2007 1 commit
-
-
unknown authored
into mysql.com:/home/hf/work/my51-24186
-
- 13 Jan, 2007 1 commit
-
-
unknown authored
for queries using 'range checked for each record'. The problem was fixed in 5.0 by the patch for bug 12291. This patch down-ported the corresponding code from 5.0 into QUICK_SELECT::init() and added a new test case. mysql-test/r/range.result: Added a test case for bug #24776. mysql-test/t/range.test: Added a test case for bug #24776. sql/opt_range.h: Fixed bug #24776: an assertion abort in handler::ha_index_init for queries using 'range checked for each record'. The problem was fixed in 5.0 by the patch for bug 12291. The patch for 4.1 down-ported the corresponding code from 5.0 into QUICK_SELECT::init().
-
- 12 Jan, 2007 11 commits
-
-
unknown authored
into olga.mysql.com:/home/igor/mysql-5.0-opt
-
unknown authored
in a select list. The objects of the Item_trigger_field class inherited the implementations of the methods copy_or_same, get_tmp_table_item and get_tmp_table_field from the class Item_field while they rather should have used the default implementations defined for the base class Item. It could cause catastrophic problems for triggers that used SELECTs with select list containing trigger fields such as NEW.<table column> under DISTINCT. mysql-test/r/trigger.result: Added a test case for bug #25398. mysql-test/t/trigger.test: Added a test case for bug #25398.
-
unknown authored
After merge fix mysql-test/r/func_str.result: After merge fix
-
unknown authored
into moonbone.local:/work/latest-5.0-opt-mysql mysql-test/t/func_str.test: Auto merged sql/item_strfunc.cc: Auto merged sql/item_strfunc.h: Auto merged sql/sql_delete.cc: Auto merged mysql-test/r/delete.result: Manual merge mysql-test/r/func_str.result: Manual merge mysql-test/t/delete.test: Manual merge
-
unknown authored
Subselect's engine checks table->status field to determine if the record was properly found when we use keyread upon the table. Partition engine checks all the partitions for given key before return. So if matching record was found in the first partition and no matching records were found in the second, we have table->status == NOT_FOUND after the function, what makes subselects to skip matching records. The patch adds table->status= 0 if we actually found something. mysql-test/r/partition.result: result fixed mysql-test/t/partition.test: testcase sql/ha_partition.cc: table->status set to 0 if we found something in previous partitions
-
unknown authored
into mysql.com:/home/gluh/MySQL/Merge/5.1-opt sql/mysqld.cc: Auto merged
-
unknown authored
into mysql.com:/home/gluh/MySQL/Merge/5.1-opt mysql-test/r/order_by.result: Auto merged mysql-test/t/order_by.test: Auto merged sql/item.cc: Auto merged sql/mysqld.cc: Auto merged sql/sql_base.cc: Auto merged mysql-test/r/join.result: manual merge mysql-test/t/join.test: manual merge
-
unknown authored
into mysql.com:/home/gluh/MySQL/Merge/5.1-opt sql/mysqld.cc: Auto merged storage/innobase/handler/ha_innodb.cc: Auto merged
-
unknown authored
into mysql.com:/home/gluh/MySQL/Merge/5.0
-
unknown authored
into mysql.com:/home/gluh/MySQL/Merge/5.0 sql/mysqld.cc: Auto merged
-
unknown authored
fixed valgrind error fixed indentation
-
- 11 Jan, 2007 4 commits
-
-
unknown authored
into tiger.mmj.dk:/Users/mmj/bktrees/mysql-5.1-build configure.in: Auto merged mysql-test/install_test_db.sh: Auto merged BitKeeper/deleted/.del-CMakeLists.txt~3: Auto merged BitKeeper/deleted/.del-configure.js: Auto merged mysql-test/mysql-test-run.pl: Auto merged scripts/mysql_install_db.sh: Auto merged sql/mysqld.cc: Auto merged
-
unknown authored
into siva.hindu.god:/home/tsmith/m/bk/mysql-5.1-build BitKeeper/deleted/.del-CMakeLists.txt~3: Auto merged BitKeeper/deleted/.del-README~1: Auto merged BitKeeper/deleted/.del-configure.js: Auto merged BitKeeper/deleted/.del-mysql_test_run_new.c~a23ab2c4b28b25ad: Auto merged mysql-test/mysql-test-run.pl: Auto merged scripts/mysql_install_db.sh: Auto merged configure.in: Manual merge mysql-test/install_test_db.sh: Manual merge sql/mysqld.cc: Manual merge
-
unknown authored
into moonbone.local:/work/23417-bug-5.0-opt-mysql sql/sql_base.cc: Auto merged
-
unknown authored
Currently in the ONLY_FULL_GROUP_BY mode no hidden fields are allowed in the select list. To ensure this each expression in the select list is checked to be a constant, an aggregate function or to occur in the GROUP BY list. The last two requirements are wrong and doesn't allow valid expressions like "MAX(b) - MIN(b)" or "a + 1" in a query with grouping by a. The correct check implemented by the patch will ensure that: any field reference in the [sub]expressions of the select list is under an aggregate function or is mentioned as member of the group list or is an outer reference or is part of the select list element that coincide with a grouping element. The Item_field objects now can contain the position of the select list expression which they belong to. The position is saved during the field's Item_field::fix_fields() call. The non_agg_fields list for non-aggregated fields is added to the SELECT_LEX class. The SELECT_LEX::cur_pos_in_select_list now contains the position in the select list of the expression being currently fixed. sql/item.cc: Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode. The Item_field objects now contain the position of the select list expression which they belong to. The position is saved at the field's Item_field::fix_fields() call. sql/item.h: Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode. The Item_field objects now can store the position in the select list of the expression to which they are belongs to. sql/mysql_priv.h: Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode. Added the UNDEF_POS constant. sql/sql_base.cc: Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode. Now the setup_fields() function maintains the cur_pos_in_select_list variable. sql/sql_lex.cc: Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode. Set the cur_pos_in_select_list variable and the non_agg_fields list to their initial state. sql/sql_lex.h: Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode. The non_agg_fields list for non-aggregated fields is added to the SELECT_LEX class. The SELECT_LEX::cur_pos_in_select_list now stores the position in the select list of the expression being currently fixed. sql/sql_select.cc: Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode. Each select now keeps the list of fields that aren't used under any aggregate function. If an expression from the select list isn't found in the GROUP BY list the setup_group() function additionally checks whether non-aggregated fields occur in that expression. If there at least one such field and it isn't found in the GROUP BY list then an error is thrown. sql/sql_union.cc: Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode. Clean up of the non_agg_fields list. mysql-test/r/group_by.result: Added a test case for the bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode. mysql-test/t/group_by.test: Added a test case for the bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
-