3692 Mattias Jonsson 2011-02-21
WL#4443 proof of concept.
Prototype for designing WL#4443.
Moved open_tables() and lock_tables()
(was open_and_lock_tables()) into
mysql_select/handle_select/mysql_union.
Splitted JOIN::optimize to
JOIN::optimize_before_locking +
JOIN::optimize_after_locking
Not yet done:
Implement pruning for INSERT.
Fix all problems with Items that uses tables
in the prepare/optimize_before_locking stages.
added:
mysql-test/r/wl4443.result
mysql-test/t/wl4443.test
modified:
sql/ha_partition.cc
sql/handler.h
sql/item_row.cc
sql/item_subselect.cc
sql/opt_range.cc
sql/sql_base.cc
sql/sql_base.h
sql/sql_derived.cc
sql/sql_derived.h
sql/sql_insert.cc
sql/sql_parse.cc
sql/sql_select.cc
sql/sql_select.h
sql/sql_union.cc
sql/sql_union.h
sql/sql_update.cc
sql/table.h
3691 Magnus Blåudd 2011-02-21 [merge]
Merge empty merge changeset into trunk
3690 Magnus Blåudd 2011-02-21 [merge]
Merge
modified:
include/my_global.h
include/mysql_embed.h
sql/ha_ndbcluster_cond.cc
3689 Mattias Jonsson 2011-02-21 [merge]
merge from latest mysql-trunk
modified:
mysql-test/r/alter_table.result
mysql-test/t/alter_table.test
3688 Mattias Jonsson 2011-02-21 [merge]
Merge of WL#5217 into mysql-trunk
added:
mysql-test/r/partition_explicit_prune.result
mysql-test/suite/parts/inc/partition-dml-1-1-modes.inc
mysql-test/suite/parts/inc/partition-dml-1-1.inc
mysql-test/suite/parts/inc/partition-dml-1-10.inc
mysql-test/suite/parts/inc/partition-dml-1-11.inc
mysql-test/suite/parts/inc/partition-dml-1-2.inc
mysql-test/suite/parts/inc/partition-dml-1-3.inc
mysql-test/suite/parts/inc/partition-dml-1-4.inc
mysql-test/suite/parts/inc/partition-dml-1-5.inc
mysql-test/suite/parts/inc/partition-dml-1-6.inc
mysql-test/suite/parts/inc/partition-dml-1-7.inc
mysql-test/suite/parts/inc/partition-dml-1-8.inc
mysql-test/suite/parts/inc/partition-dml-1-9.inc
mysql-test/suite/parts/inc/partition-dml_cr_tab.inc
mysql-test/suite/parts/inc/partition-dml_ins_tab.inc
mysql-test/suite/parts/inc/rpl-partition-dml-1-1.inc
mysql-test/suite/parts/r/partition-dml-1-1-innodb-modes.result
mysql-test/suite/parts/r/partition-dml-1-1-innodb.result
mysql-test/suite/parts/r/partition-dml-1-1-myisam-modes.result
mysql-test/suite/parts/r/partition-dml-1-1-myisam.result
mysql-test/suite/parts/r/partition-dml-1-10-innodb.result
mysql-test/suite/parts/r/partition-dml-1-10-myisam.result
mysql-test/suite/parts/r/partition-dml-1-11-innodb.result
mysql-test/suite/parts/r/partition-dml-1-11-myisam.result
mysql-test/suite/parts/r/partition-dml-1-2-innodb.result
mysql-test/suite/parts/r/partition-dml-1-2-myisam.result
mysql-test/suite/parts/r/partition-dml-1-3-innodb.result
mysql-test/suite/parts/r/partition-dml-1-4-innodb.result
mysql-test/suite/parts/r/partition-dml-1-5-innodb.result
mysql-test/suite/parts/r/partition-dml-1-6-innodb.result
mysql-test/suite/parts/r/partition-dml-1-7-innodb.result
mysql-test/suite/parts/r/partition-dml-1-8-innodb.result
mysql-test/suite/parts/r/partition-dml-1-9-innodb.result
mysql-test/suite/parts/r/partition-dml-1-9-myisam.result
mysql-test/suite/parts/r/rpl-partition-dml-1-1-innodb.result
mysql-test/suite/parts/r/rpl-partition-dml-1-1-myisam.result
mysql-test/suite/parts/t/partition-dml-1-1-innodb-modes.test
mysql-test/suite/parts/t/partition-dml-1-1-innodb.test
mysql-test/suite/parts/t/partition-dml-1-1-myisam-modes.test
mysql-test/suite/parts/t/partition-dml-1-1-myisam.test
mysql-test/suite/parts/t/partition-dml-1-10-innodb.test
mysql-test/suite/parts/t/partition-dml-1-10-myisam.test
mysql-test/suite/parts/t/partition-dml-1-11-innodb.test
mysql-test/suite/parts/t/partition-dml-1-11-myisam.test
mysql-test/suite/parts/t/partition-dml-1-2-innodb.test
mysql-test/suite/parts/t/partition-dml-1-2-myisam.test
mysql-test/suite/parts/t/partition-dml-1-3-innodb.test
mysql-test/suite/parts/t/partition-dml-1-4-innodb.test
mysql-test/suite/parts/t/partition-dml-1-5-innodb.test
mysql-test/suite/parts/t/partition-dml-1-6-innodb.test
mysql-test/suite/parts/t/partition-dml-1-7-innodb.test
mysql-test/suite/parts/t/partition-dml-1-8-innodb.test
mysql-test/suite/parts/t/partition-dml-1-9-innodb.test
mysql-test/suite/parts/t/partition-dml-1-9-myisam.test
mysql-test/suite/parts/t/rpl-partition-dml-1-1-innodb.test
mysql-test/suite/parts/t/rpl-partition-dml-1-1-myisam.test
mysql-test/t/partition_explicit_prune.test
modified:
include/my_base.h
include/welcome_copyright_notice.h
mysql-test/r/partition_exchange.result
mysql-test/suite/parts/inc/partition_fail.inc
mysql-test/suite/parts/r/partition_exch_qa_13.result
mysql-test/suite/parts/r/partition_exch_qa_2.result
mysql-test/suite/parts/r/partition_mgm_lc0_archive.result
mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result
mysql-test/suite/parts/r/partition_mgm_lc0_memory.result
mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result
mysql-test/suite/parts/r/partition_mgm_lc1_archive.result
mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result
mysql-test/suite/parts/r/partition_mgm_lc1_memory.result
mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result
mysql-test/suite/parts/r/partition_mgm_lc2_archive.result
mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result
mysql-test/suite/parts/r/partition_mgm_lc2_memory.result
mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result
mysql-test/suite/parts/r/partition_repair_myisam.result
mysql-test/suite/parts/t/partition_debug_myisam.test
mysql-test/suite/parts/t/partition_exch_qa_14.test
mysql-test/suite/parts/t/partition_repair_myisam.test
mysql-test/t/partition_binlog.test
mysys/hash.c
mysys/my_handler.c
mysys/my_handler_errors.h
sql/ha_partition.cc
sql/ha_partition.h
sql/handler.cc
sql/handler.h
sql/mysqld.cc
sql/opt_range.cc
sql/partition_info.cc
sql/partition_info.h
sql/share/errmsg-utf8.txt
sql/sql_base.cc
sql/sql_class.h
sql/sql_lex.cc
sql/sql_lex.h
sql/sql_parse.cc
sql/sql_partition.cc
sql/sql_table.cc
sql/sql_table.h
sql/sql_yacc.yy
sql/table.cc
sql/table.h
3687 Jorgen Loland 2011-02-21
Bug#11766642: crash in Item_field::register_field_in_read_map
with view
(Former 59793)
Prior to the refactoring in this patch, Item_cond_xor behaved
partially as an Item_cond and partially as an Item_func. The
reasoning behind this was that XOR is currently not optimized
(thus should be Item_func instead of Item_cond), but it was
planned optimize it in the future (thus, made Item_cond anyway
to ease optimization later).
Even though Item_cond inherits from Item_func, there are
differences between these two. One difference is that the
arguments are stored differently. Item_cond stores them in a
list while Item_func store them in an args[].
BUG no 45221 was caused by Item_cond_xor storing arguments in
the list while users of the objects would look for them in
args[]. The fix back then was to store the arguments in both
locations.
In this bug, Item_cond_xor initially gets two Item_field
arguments. These are stored in the list inherited from
Item_cond and in args[] inherited from Item_func. During
resolution, find_field_in_view() replaces the Item_fields
stored in the list with Item_direct_view_refs, but args[]
still points to the unresolved Item_fields. This shows that
the fix for 45221 was incorrect.
The refactoring performed in this patch removes the confusion
by making the XOR item an Item_func period. A neg_transformer()
is also implemented for Item_func_xor to improve performance
when negating XOR expressions. An XOR is negated by negating
one of the operands.
@ mysql-test/include/subquery_sj.inc
Add test for BUG#11766642
@ mysql-test/r/negation_elimination.result
Add tests for XOR
@ mysql-test/r/subquery_sj_none.result
Add test for BUG#11766642
@ mysql-test/t/negation_elimination.test
Add tests for XOR
@ sql/item_cmpfunc.cc
Refactor XOR item: it is now a pure Item_func, inheriting from Item_bool_func2 instead of Item_cond. Also added neg_transformer() function to improve performance when XOR is negated.
@ sql/item_cmpfunc.h
Refactor XOR item: it is now a pure Item_func, inheriting from Item_bool_func2 instead of Item_cond. Also added neg_transformer() function to improve performance when XOR is negated.
@ sql/item_func.h
Refactor XOR item: it is now a pure Item_func, inheriting from Item_bool_func2 instead of Item_cond
@ sql/sql_yacc.yy
Refactor XOR item: it is now a pure Item_func, inheriting from Item_bool_func2 instead of Item_cond
@ unittest/gunit/item-t.cc
Add unit test for Item_func_xor
modified:
mysql-test/include/subquery_sj.inc
mysql-test/r/negation_elimination.result
mysql-test/r/subquery_sj_none.result
mysql-test/t/negation_elimination.test
sql/item_cmpfunc.cc
sql/item_cmpfunc.h
sql/item_func.h
sql/sql_yacc.yy
unittest/gunit/item-t.cc
3686 Vasil Dimov 2011-02-21 [merge]
Merge mysql-trunk-innodb -> mysql-trunk
modified:
storage/innobase/btr/btr0sea.c
storage/innobase/include/ha0ha.h
3685 Tor Didriksen 2011-02-18
Bug #11788245 - 60110 DO MORE THD AND GLOBAL INITIALIZATION FOR UNIT TESTING
@ sql/mysqld.cc
Let unit test setup call init_common_variables() rather than init_thread_environment()
Add utility set_remaining_args() to set global variables remaining_xxx.
check_enough_stack_size should have C linkage (warning by sun compiler)
@ sql/mysqld.h
Let unit test setup call init_common_variables() rather than init_thread_environment()
Add utility set_remaining_args() to set global variables remaining_xxx.
@ sql/sql_class.cc
Change interface of plugin_thdvar_init()
@ sql/sql_plugin.cc
Change interface of plugin_thdvar_init()
@ sql/sql_plugin.h
Change interface of plugin_thdvar_init()
@ unittest/gunit/item-t.cc
More initializations in SetUpTestCase()
New tests: ItemFuncSetUserVar, OutOfMemory
modified:
sql/mysqld.cc
sql/mysqld.h
sql/sql_class.cc
sql/sql_plugin.cc
sql/sql_plugin.h
unittest/gunit/item-t.cc
3684 Sergey Vojtovich 2011-02-21 [merge]
Merge.
modified:
mysql-test/r/func_time.result
mysql-test/t/func_time.test
sql/item_timefunc.cc
sql/item_timefunc.h
3683 Nirbhay Choubey 2011-02-21
Post fix for mysqldump test.
modified:
mysql-test/r/mysqldump.result
mysql-test/t/mysqldump.test
3682 Nirbhay Choubey 2011-02-21 [merge]
Merge of fix for bug#11766310 from mysql-5.5 -> mysql-trunk.
modified:
client/mysqldump.c
mysql-test/r/mysqldump.result
mysql-test/t/mysqldump.test
3681 Libing Song 2011-02-21
WL#5576 Prohibit CREATE TABLE ... SELECT to modify other tables
BUG#11749792 and BUG#11763193 are fixed by this worklog.
In 'CREATE TABLE ... SELECT' statement, SELECT clause could call store functions
to modify other tables. It made CTS's behavior towards complex and not
understandable. It also caused some binlogging problem. So the behavior modifying
other tables is prohibited in this worklog.
In this patch, code is added to check if there is any other table owning WRITE
lock just after all tables have been locked. CREATE TABLE ... SELECT will fail
and print an error immediately if any other table has WRITE lock.
As SELECT ... FOR UPDATE uses WRITE lock too. FOR UPDATE clause is also
prohibited in CREATE TABLE ... SELECT statement.
@ mysql-test/include/unsafe_binlog.inc
The CREATE TABLE ... SELECT with a store function which updates
other tables fails with a new error added by WL#5576.
@ mysql-test/r/create.result
Added test to verify WL#5576.
@ mysql-test/r/func_rollback.result
The CREATE TABLE ... SELECT with a store function which updates
other tables fails with a new error added by WL#5576.
@ mysql-test/r/mdl_sync.result
The CREATE TABLE ... SELECT with a store function which updates
other tables fails with a new error added by WL#5576.
@ mysql-test/r/unsafe_binlog_innodb.result
The CREATE TABLE ... SELECT with a store function which updates
other tables fails with a new error added by WL#5576.
@ mysql-test/suite/innodb/r/innodb.result
The CREATE TABLE ... SELECT with a store function which updates
other tables fails with a new error added by WL#5576.
@ mysql-test/suite/innodb/t/innodb.test
The CREATE TABLE ... SELECT with a store function which updates
other tables fails with a new error added by WL#5576.
@ mysql-test/t/create.test
Added test to verify WL#5576.
@ mysql-test/t/func_rollback.test
The CREATE TABLE ... SELECT with a store function which updates
other tables fails with a new error added by WL#5576.
@ mysql-test/t/mdl_sync.test
'FOR UPDATE' is disallowed in CREATE TABLE ... SELECT statement
after WL#5576. Using a new method to lock the table.
@ sql/share/errmsg-utf8.txt
Added a new error for WL#5576.
@ sql/sql_parse.cc
Implemented WL#5576.
modified:
mysql-test/include/unsafe_binlog.inc
mysql-test/r/create.result
mysql-test/r/func_rollback.result
mysql-test/r/mdl_sync.result
mysql-test/r/unsafe_binlog_innodb.result
mysql-test/suite/innodb/r/innodb.result
mysql-test/suite/innodb/t/innodb.test
mysql-test/t/create.test
mysql-test/t/func_rollback.test
mysql-test/t/mdl_sync.test
sql/share/errmsg-utf8.txt
sql/sql_parse.cc
3680 Alexander Barkov 2011-02-18 [merge]
Merging from 5.5
modified:
tests/mysql_client_test.c
Diff too large for email (18447 lines, the limit is 10000).
No bundle (reason: useless for push emails).| Thread |
|---|
| • bzr push into mysql-trunk branch (mattias.jonsson:3680 to 3692) WL#4443 | Mattias Jonsson | 21 Feb |