mariadb/sql
Konstantin Osipov 3543d2556d Backport of:
------------------------------------------------------------
revno: 2630.13.16
committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
branch nick: WL#4284
timestamp: Sat 2008-07-26 13:38:20 -0300
message:
WL#4284: Transactional DDL locking

SQL statements' effect on transactions.

Currently the MySQL server and its storage engines are not
capable of rolling back operations that define or modify data
structures (also known as DDL statements) or operations that
alter any of the system tables (the mysql database). Allowing
these group of statements to participate in transactions
is unfeasible at this time (since rollback has no effect
whatsoever on them) and goes against the design of our metadata
locking subsystem.

The solution is to issue implicit commits before and after
those statements execution. This effectively confines each of
those statements to its own special transaction and ensures
that metadata locks taken during this special transaction
are not leaked into posterior statements/transactions.


mysql-test/include/commit.inc:
  Alter table rename was not committing the normal transaction at the
  end of its execution, and as a consequence, the commit was being
  issued in the next DDL command (rename table) that happened to end
  the active transaction. Other changes are to take into account the
  implicit commits issued before and after the DDL command execution.
mysql-test/include/implicit_commit_helper.inc:
  Add auxiliary test that shows if a statement issued a 
  implicit commit.
mysql-test/r/commit_1innodb.result:
  
  Update test case result.
mysql-test/r/implicit_commit.result:
  Test implicit commit behavior of some SQL commands.
mysql-test/t/implicit_commit.test:
  Test implicit commit behavior of some SQL commands.
sql/events.cc:
  Transaction is now ended before the command execution.
sql/mysql_priv.h:
  Add flags array for server commands and remove historical 
  left over.
sql/sql_class.h:
  Add flags to control when to issue implicit commits before and
  after a command execution.
sql/sql_delete.cc:
  A implicit commit is issued at the end of truncate
  statements.
sql/sql_parse.cc:
  Mark commands that need implicit commits before and
  after their executions. The implicit commits of the
  statement and the normal transaction are now issued
  regardless of the user access privileges.
sql/sql_table.cc:
  A implicit commit is now issued before admin commands.
tests/mysql_client_test.c:
  Test that COM_REFRESH issues a implicit commit.
2009-12-03 18:47:20 +03:00
..
examples Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-06-17 15:54:01 +02:00
share Manual resolving for the following files 2009-12-01 21:07:18 +02:00
.cvsignore
add_errmsg WL#751 Error message construction, backport 2009-10-15 17:23:43 +05:00
authors.h manual merge: mysql-5.1-rep+2-delivery1 --> mysql-5.1-rpl-merge 2009-10-22 23:30:28 +01:00
client_settings.h Backport of WL#798 (MySQL IPv6 support) from 6.0. 2009-11-25 13:53:23 +03:00
CMakeLists.txt Initial import of WL#3726 "DDL locking for all metadata objects". 2009-11-30 18:55:03 +03:00
contributors.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
custom_conf.h
debug_sync.cc backport of dbug extensions from 6.0: 2009-10-30 19:13:58 +01:00
debug_sync.h WL#4259 - Debug Sync Facility 2009-09-29 17:38:40 +02:00
derror.cc Backport of: 2009-11-24 16:54:59 +03:00
des_key_file.cc Backport of: 2009-11-24 16:54:59 +03:00
discover.cc Backport of: 2009-11-24 16:54:59 +03:00
event_data_objects.cc Manual merge of mysql-next-mr-runtime upstream. 2009-11-19 21:48:08 -02:00
event_data_objects.h
event_db_repository.cc Backport of: 2009-12-02 18:37:10 +03:00
event_db_repository.h
event_parse_data.cc Bug#29125 Windows Server X64: so many compiler warnings 2009-02-13 11:41:47 -05:00
event_parse_data.h Added "Sun Microsystems, Inc." to copyright headers on files modified 2008-11-10 21:21:49 +01:00
event_queue.cc
event_queue.h
event_scheduler.cc Backport of the following revision from 6.0-codebase: 2009-10-13 22:29:28 +04:00
event_scheduler.h
events.cc Backport of: 2009-12-03 18:47:20 +03:00
events.h
field.cc Backport of: 2009-11-24 16:54:59 +03:00
field.h Backport of: 2009-12-02 18:22:15 +03:00
field_conv.cc Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-06-17 15:54:01 +02:00
filesort.cc Backport of: 2009-11-24 16:54:59 +03:00
frm_crypt.cc
gen_lex_hash.cc Bug#29125 Windows Server X64: so many compiler warnings 2009-02-13 11:41:47 -05:00
gstream.cc Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-06-09 18:11:21 +02:00
gstream.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
ha_ndbcluster.cc Initial import of WL#3726 "DDL locking for all metadata objects". 2009-11-30 18:55:03 +03:00
ha_ndbcluster.h manual merge: mysql-5.1-rep+2-delivery1 --> mysql-5.1-rpl-merge 2009-10-22 23:30:28 +01:00
ha_ndbcluster_binlog.cc Backport of: 2009-12-02 19:31:57 +03:00
ha_ndbcluster_binlog.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
ha_ndbcluster_cond.cc
ha_ndbcluster_cond.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
ha_ndbcluster_tables.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
ha_partition.cc Backport of: 2009-12-03 02:09:22 +03:00
ha_partition.h Backport of: 2009-11-30 22:38:25 +03:00
handler.cc Merge next-mr -> next-4284 2009-12-03 14:37:42 +03:00
handler.h Manual resolving for the following files 2009-12-01 21:07:18 +02:00
hash_filo.cc
hash_filo.h Backport of: 2009-10-14 20:37:38 +04:00
hostname.cc Backport of WL#798 (MySQL IPv6 support) from 6.0. 2009-11-25 13:53:23 +03:00
init.cc Backport of: 2009-11-24 16:54:59 +03:00
item.cc Backport of: 2009-11-24 16:54:59 +03:00
item.h Manual resolving for the following files 2009-12-01 21:07:18 +02:00
item_buff.cc
item_cmpfunc.cc Backport of: 2009-11-24 16:54:59 +03:00
item_cmpfunc.h Manual resolving for the following files 2009-12-01 21:07:18 +02:00
item_create.cc Merge 2009-11-03 12:37:02 +01:00
item_create.h
item_func.cc Manual merge of mysql-next-mr-runtime upstream. 2009-11-19 21:48:08 -02:00
item_func.h merging from 5.1 to rep+2 starting at gca(5.1, next-mr) == build@mysql.com-20091104182209-iui387z35159aoyw 2009-11-30 14:34:39 +02:00
item_geofunc.cc automerge 2009-10-24 09:57:31 +03:00
item_geofunc.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
item_row.cc
item_row.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
item_strfunc.cc Backport of: 2009-11-24 16:54:59 +03:00
item_strfunc.h manual merge: mysql-5.1-rep+2-delivery1 --> mysql-5.1-rpl-merge 2009-10-22 23:30:28 +01:00
item_subselect.cc Manual merge of mysql-next-mr-runtime upstream. 2009-11-19 21:48:08 -02:00
item_subselect.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
item_sum.cc Manual merge from mysql-trunk-merge. 2009-11-06 17:20:27 +03:00
item_sum.h Bug#48060 Memory leak - Item::val_bool() (item.cc:184) from optimizer_subquery grammar 2009-10-28 11:07:30 +01:00
item_timefunc.cc Manual merge of mysql-next-mr-runtime upstream. 2009-11-19 21:48:08 -02:00
item_timefunc.h Merge to latest mysql-next-mr 2009-11-02 11:09:15 +01:00
item_xmlfunc.cc Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-09-23 15:21:29 +02:00
item_xmlfunc.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
key.cc WL#751 Error message construction, backport 2009-10-15 17:23:43 +05:00
lex.h Manual resolving for the following files 2009-12-01 21:07:18 +02:00
lex_symbol.h
lock.cc Backport of: 2009-12-02 23:47:23 +03:00
log.cc Merge next-mr -> next-4284 2009-12-03 14:37:42 +03:00
log.h BUG#40611: MySQL cannot make a binary log after sequential number 2009-11-22 03:59:48 +00:00
log_event.cc Backport of: 2009-12-02 19:31:57 +03:00
log_event.h merging 5.1 main -> rpl+2. Some manual work required mostly due to bug46640 2009-11-06 18:35:04 +02:00
log_event_old.cc Backport of: 2009-11-30 22:03:37 +03:00
log_event_old.h
Makefile.am Initial import of WL#3726 "DDL locking for all metadata objects". 2009-11-30 18:55:03 +03:00
mdl.cc Backport of (WL#3726) 2009-12-03 14:32:29 +03:00
mdl.h Backport of: 2009-12-02 19:31:57 +03:00
message.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
message.mc Bug#40280: Message compiler(mc.exe) needed to compile MySQL on windows. 2008-10-23 15:28:53 +02:00
message.rc Bug#40280: Message compiler(mc.exe) needed to compile MySQL on windows. 2008-10-23 15:28:53 +02:00
mf_iocache.cc
MSG00001.bin Bug#40280: Message compiler(mc.exe) needed to compile MySQL on windows. 2008-10-23 15:28:53 +02:00
my_decimal.cc WL#2110 (SIGNAL) 2009-09-10 03:18:29 -06:00
my_decimal.h Bug#48370: Absolutely wrong calculations with GROUP BY and decimal fields when using IF 2009-11-02 09:21:39 -02:00
my_lock.c
mysql_priv.h Backport of: 2009-12-03 18:47:20 +03:00
mysql_priv.h.pp Bug#47857 strip_sp function in mysys/mf_strip.c never used and cause name clash 2009-10-06 13:04:51 +02:00
mysqld.cc Merge next-mr -> next-4284 2009-12-03 14:37:42 +03:00
mysqld_suffix.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
net_serv.cc Manual merge from mysql-next-mr. 2009-11-02 14:10:04 +03:00
nt_servc.cc merge 2008-11-22 01:10:38 +01:00
nt_servc.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
opt_range.cc Auto-merge from mysql-next-mr-alik. 2009-11-10 11:34:26 +03:00
opt_range.h Backport of: 2009-11-24 16:54:59 +03:00
opt_sum.cc Backport of Bug#15192 to mysql-next-mr 2009-11-10 18:31:28 -02:00
parse_file.cc Bug#44834 strxnmov is expected to behave as you'd expect 2009-06-19 13:24:43 +05:00
parse_file.h Bug#43385 Cannot ALTER DATABASE ... UPGRADE DATA DIRECTORY NAME when Views exist(addon) 2009-04-13 18:09:10 +05:00
partition_element.h Merge 2009-10-28 18:32:48 +01:00
partition_info.cc Fix build failure. 2009-11-10 12:32:29 +03:00
partition_info.h Merged WL#3352 into mysql-next-mr 2009-10-28 18:22:36 +01:00
password.c Manual merge. 2009-06-01 16:00:38 +04:00
procedure.cc
procedure.h Merge from mysql-next-mr. 2009-10-28 10:55:44 +03:00
protocol.cc Backport of: 2009-11-24 16:54:59 +03:00
protocol.h Merge from mysql-next-mr. 2009-10-28 10:55:44 +03:00
records.cc Backport of: 2009-11-24 16:54:59 +03:00
records.h Manual merge from mysql-trunk-merge. 2009-11-06 19:13:33 +03:00
repl_failsafe.cc Manual resolving for the following files 2009-12-01 21:07:18 +02:00
repl_failsafe.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
replication.h WL#4903 Plugin Service API part I 2009-11-02 21:05:42 +01:00
rpl_constants.h BUG#40482: server/mysqlbinlog crashes when reading invalid Incident_log_event 2008-12-29 17:04:10 +01:00
rpl_filter.cc Backport of: 2009-10-14 20:37:38 +04:00
rpl_filter.h
rpl_handler.cc Fix automerge: s/hash_search/my_hash_search/. 2009-10-28 11:42:18 +03:00
rpl_handler.h Backporting WL#4398 WL#1720 2009-09-26 12:49:49 +08:00
rpl_injector.cc
rpl_injector.h Backport of: 2009-10-14 15:14:58 +04:00
rpl_mi.cc BUG#48048: Deprecated constructs need removal in Betony 2009-11-04 12:28:20 +00:00
rpl_mi.h BUG#48048: Deprecated constructs need removal in Betony 2009-11-04 12:28:20 +00:00
rpl_record.cc BUG#43789 different master/slave table defs cause crash: text/varchar null 2009-09-29 15:18:44 +01:00
rpl_record.h BUG#43789 different master/slave table defs cause crash: text/varchar null 2009-09-29 15:18:44 +01:00
rpl_record_old.cc
rpl_record_old.h
rpl_reporting.cc BUG#45511 rpl.rpl_binlog_corruption fails with warning messages in Valgrind 2009-06-16 16:04:30 +01:00
rpl_reporting.h BUG#45511 rpl.rpl_binlog_corruption fails with warning messages in Valgrind 2009-06-16 16:04:30 +01:00
rpl_rli.cc Initial import of WL#3726 "DDL locking for all metadata objects". 2009-11-30 18:55:03 +03:00
rpl_rli.h Merge next-mr -> next-4284 2009-12-03 14:37:42 +03:00
rpl_tblmap.cc Backport of: 2009-10-14 20:37:38 +04:00
rpl_tblmap.h Backport of: 2009-10-14 20:37:38 +04:00
rpl_utility.cc
rpl_utility.h Bug#42977 RBR logs for rows with more than 250 column results in corrupt binlog 2009-03-25 12:53:56 +02:00
scheduler.cc
scheduler.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
set_var.cc Merge next-mr -> next-4284 2009-12-03 14:37:42 +03:00
set_var.h Manual resolving for the following files 2009-12-01 21:07:18 +02:00
slave.cc Manual resolving for the following files 2009-12-01 21:07:18 +02:00
slave.h Backport of: 2009-11-23 19:57:31 +03:00
sp.cc Backport of: 2009-12-03 14:47:05 +03:00
sp.h BUG#41166 stored function requires "deterministic" if binlog_format is "statement" 2009-07-28 18:44:38 +01:00
sp_cache.cc Backport of: 2009-10-14 20:37:38 +04:00
sp_cache.h
sp_head.cc Merge next-mr -> next-4284 2009-12-03 14:37:42 +03:00
sp_head.h merging 2009-04-29 07:59:10 +05:00
sp_pcontext.cc Backport of: 2009-11-24 16:54:59 +03:00
sp_pcontext.h WL#2110 (SIGNAL) 2009-09-10 03:18:29 -06:00
sp_rcontext.cc WL#2110 (SIGNAL) 2009-09-10 03:18:29 -06:00
sp_rcontext.h WL#2110 (SIGNAL) 2009-09-10 03:18:29 -06:00
spatial.cc Merge from 5.0 for 43414 2009-08-28 18:21:54 +02:00
spatial.h Merge from 5.0-bugteam 2009-06-17 16:56:44 +02:00
sql_acl.cc Merge next-mr -> next-4284 2009-12-03 14:37:42 +03:00
sql_acl.h Merge from mysql-next-mr. 2009-10-28 10:55:44 +03:00
sql_analyse.cc Merge from 5.0-bugteam 2009-06-17 16:56:44 +02:00
sql_analyse.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
sql_array.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
sql_base.cc Merge next-mr -> next-4284 2009-12-03 14:37:42 +03:00
sql_binlog.cc Initial import of WL#3726 "DDL locking for all metadata objects". 2009-11-30 18:55:03 +03:00
sql_bitmap.h
sql_builtin.cc.in
sql_cache.cc Backport of: 2009-12-01 17:39:03 +03:00
sql_cache.h Bug#38551 query cache can still consume [very little] cpu time even when it is off. 2009-10-29 12:19:36 +01:00
sql_class.cc Backport of: 2009-12-03 14:12:53 +03:00
sql_class.h Backport of: 2009-12-03 18:47:20 +03:00
sql_client.cc
sql_connect.cc Backport of WL#798 (MySQL IPv6 support) from 6.0. 2009-11-25 13:53:23 +03:00
sql_crypt.cc Bug#44358 valgrind errors with decode() function 2009-04-23 12:43:42 +05:00
sql_crypt.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
sql_cursor.cc Backport of: 2009-12-01 17:39:03 +03:00
sql_cursor.h
sql_db.cc Backport of: 2009-12-02 18:22:15 +03:00
sql_delete.cc Backport of: 2009-12-03 18:47:20 +03:00
sql_derived.cc WL#2110 (SIGNAL) 2009-09-10 03:18:29 -06:00
sql_do.cc
sql_error.cc Merge from mysql-next-mr. 2009-10-23 15:22:21 +04:00
sql_error.h WL#751 Error message construction, backport 2009-10-15 17:23:43 +05:00
sql_handler.cc Backport of: 2009-12-02 19:31:57 +03:00
sql_help.cc Backport of revno 2630.28.10, 2630.28.31, 2630.28.26, 2630.33.1, 2009-10-22 00:02:06 +04:00
sql_insert.cc Backport of: 2009-12-02 18:22:15 +03:00
sql_lex.cc Merge 2009-11-03 12:37:02 +01:00
sql_lex.h Manual resolving for the following files 2009-12-01 21:07:18 +02:00
sql_list.cc Backport of revno 2630.28.10, 2630.28.31, 2630.28.26, 2630.33.1, 2009-10-22 00:02:06 +04:00
sql_list.h Backport of Bug#15192 to mysql-next-mr 2009-11-10 18:31:28 -02:00
sql_load.cc Merge next-mr -> next-4284 2009-12-03 14:37:42 +03:00
sql_locale.cc Manual-merge from mysql-trunk-merge. 2009-11-06 12:52:45 +03:00
sql_manager.cc Bug#38522: 5 seconds delay when closing application using embedded server 2008-12-04 19:41:53 +01:00
sql_map.cc Backport of: 2009-11-24 16:54:59 +03:00
sql_map.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
sql_olap.cc
sql_parse.cc Backport of: 2009-12-03 18:47:20 +03:00
sql_partition.cc Backport of: 2009-12-02 18:22:15 +03:00
sql_partition.h Fixed a few bugs in hex string generation, in call to val_str for partition expressions, also made code reusable for DEFAULT handling to fix BUG#48464 by introducing function get_cs_converted_string_value, added partition_utf8 test case for UTF8 outputs 2009-11-02 14:49:26 +01:00
sql_plist.h Backport of: 2009-11-30 22:11:32 +03:00
sql_plugin.cc Initial import of WL#3726 "DDL locking for all metadata objects". 2009-11-30 18:55:03 +03:00
sql_plugin.h WL#4903 Plugin Service API part I 2009-11-02 21:05:42 +01:00
sql_plugin_services.h WL#4903 Plugin Service API part I 2009-11-02 21:05:42 +01:00
sql_prepare.cc Backport of: 2009-12-01 01:13:06 +03:00
sql_prepare.h Backport of revno 2630.28.10, 2630.28.31, 2630.28.26, 2630.33.1, 2009-10-22 00:02:06 +04:00
sql_profile.cc Backport of: 2009-12-03 00:24:10 +03:00
sql_profile.h Backport of: 2009-12-03 00:24:10 +03:00
sql_rename.cc Backport of: 2009-12-01 22:13:01 +03:00
sql_repl.cc Manual resolving for the following files 2009-12-01 21:07:18 +02:00
sql_repl.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
sql_select.cc Backport of: 2009-12-01 17:39:03 +03:00
sql_select.h merging from 5.1 to rep+2 starting at gca(5.1, next-mr) == build@mysql.com-20091104182209-iui387z35159aoyw 2009-11-30 14:34:39 +02:00
sql_servers.cc Backport of: 2009-12-02 18:22:15 +03:00
sql_servers.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
sql_show.cc Merge next-mr -> next-4284 2009-12-03 14:37:42 +03:00
sql_show.h Added "Sun Microsystems, Inc." to copyright headers on files modified 2008-11-10 21:21:49 +01:00
sql_signal.cc WL#2110 (SIGNAL) 2009-09-10 03:18:29 -06:00
sql_signal.h WL#2110 (SIGNAL) 2009-09-10 03:18:29 -06:00
sql_sort.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
sql_state.c
sql_string.cc Backport of: 2009-11-24 16:54:59 +03:00
sql_string.h Bug #33544 UDF_INIT member decimals initialized wrong with 2009-11-11 21:19:41 +01:00
sql_table.cc Backport of: 2009-12-03 18:47:20 +03:00
sql_tablespace.cc Manual merge from mysql-trunk-merge. 2009-11-05 23:28:35 +03:00
sql_test.cc Initial import of WL#3726 "DDL locking for all metadata objects". 2009-11-30 18:55:03 +03:00
sql_trigger.cc Backport of: 2009-12-02 18:22:15 +03:00
sql_trigger.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
sql_udf.cc Initial import of WL#3726 "DDL locking for all metadata objects". 2009-11-30 18:55:03 +03:00
sql_udf.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
sql_union.cc 5.0-bugteam->5.1-bugteam merge 2009-05-15 12:11:07 +05:00
sql_update.cc Backport of: 2009-12-01 17:39:03 +03:00
sql_view.cc Backport of: 2009-12-01 17:39:03 +03:00
sql_view.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
sql_yacc.yy Manual resolving for the following files 2009-12-01 21:07:18 +02:00
strfunc.cc Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-09-23 15:21:29 +02:00
structs.h merging from 5.1 to rep+2 starting at gca(5.1, next-mr) == build@mysql.com-20091104182209-iui387z35159aoyw 2009-11-30 14:34:39 +02:00
table.cc Backport of: 2009-12-03 02:09:22 +03:00
table.h Backport of: 2009-12-03 02:09:22 +03:00
thr_malloc.cc WL#2110 (SIGNAL) 2009-09-10 03:18:29 -06:00
time.cc Manual merge from mysql-trunk-merge. 2009-11-06 17:20:27 +03:00
tzfile.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
tztime.cc Backport of: 2009-11-24 16:54:59 +03:00
tztime.h WL#5016: Fix header file include guards 2009-09-23 23:32:31 +02:00
udf_example.c Backport of: 2009-11-24 16:54:59 +03:00
udf_example.def
uniques.cc Backport of: 2009-11-24 16:54:59 +03:00
unireg.cc Backport of: 2009-11-24 16:54:59 +03:00
unireg.h Backport of: 2009-11-23 19:57:31 +03:00