mariadb/storage/tokudb
Sergey Vojtovich 8774a02364 MDEV-11227 - mysqlimport -l doesn't issue UNLOCK TABLES
Implementation of MDEV-7660 introduced unwanted incompatible change:
modifications under LOCK TABLES with autocommit enabled are rolled back on
disconnect. Previously everything was committed, because LOCK TABLES didn't
adjust autocommit setting.

This patch restores original behavior by reverting some changes done in
MDEV-7660:
- sql/sql_parse.cc: do not reset autocommit on LOCK TABLES
- sql/sql_base.cc: do not set autocommit on UNLOCK TABLES
- test cases: main.lock_tables_lost_commit, main.partition_explicit_prune,
  rpl.rpl_switch_stm_row_mixed, tokudb.nested_txn_implicit_commit,
  tokudb_bugs.db806

But it makes InnoDB tables under LOCK TABLES ... READ [LOCAL] not protected
against DML. To restore protection some changes from WL#6671 were merged,
specifically MDL_SHARED_READ_ONLY and test cases.

WL#6671 merge highlights:
- Not all tests merged.
- In MySQL LOCK TABLES ... READ acquires MDL_SHARED_READ_ONLY for all engines,
  in MariaDB MDL_SHARED_READ is always acquired first and then upgraded to
  MDL_SHARED_READ_ONLY for InnoDB only.
- The above allows us to omit MDL_SHARED_WRITE_LOW_PRIO implementation in
  MariaDB, which is rather useless with InnoDB. In MySQL it is needed to
  preserve locking behavior between low priority writes and LOCK TABLES ... READ
  for non-InnoDB engines (covered by sys_vars.sql_low_priority_updates_func).
- Omitted HA_NO_READ_LOCAL_LOCK, we rely on lock_count() instead.
- Omitted "piglets": in MariaDB stream of DML against InnoDB table may lead to
  concurrent LOCK TABLES ... READ starvation.
- HANDLER ... OPEN acquires MDL_SHARED_READ instead of MDL_SHARED in MariaDB.
- Omitted SNRW->X MDL lock upgrade for IMPORT/DISCARD TABLESPAECE under LOCK
  TABLES.
- Omitted strong locks for views, triggers and SP under LOCK TABLES.
- Omitted IX schema lock for LOCK TABLES READ.
- Omitted deadlock weight juggling for LOCK TABLES.

Full WL#6671 merge status:
- innodb.innodb-lock: fully merged
- main.alter_table: not merged due to different HANDLER solution
- main.debug_sync: fully merged
- main.handler_innodb: not merged due to different HANDLER solution
- main.handler_myisam: not merged due to different HANDLER solution
- main.innodb_mysql_lock: fully merged
- main.insert_notembedded: fully merged
- main.lock: not merged (due to no strong locks for views)
- main.lock_multi: not merged
- main.lock_sync: fully merged (partially in MDEV-7660)
- main.mdl_sync: not merged
- main.partition_debug_sync: not merged due to different HANDLER solution
- main.status: fully merged
- main.view: fully merged
- perfschema.mdl_func: not merged (no such test in MariaDB)
- perfschema.table_aggregate_global_2u_2t: not merged (didn't fail in MariaDB)
- perfschema.table_aggregate_global_2u_3t: not merged (didn't fail in MariaDB)
- perfschema.table_aggregate_global_4u_2t: not merged (didn't fail in MariaDB)
- perfschema.table_aggregate_global_4u_3t: not merged (didn't fail in MariaDB)
- perfschema.table_aggregate_hist_2u_2t: not merged (didn't fail in MariaDB)
- perfschema.table_aggregate_hist_2u_3t: not merged (didn't fail in MariaDB)
- perfschema.table_aggregate_hist_4u_2t: not merged (didn't fail in MariaDB)
- perfschema.table_aggregate_hist_4u_3t: not merged (didn't fail in MariaDB)
- perfschema.table_aggregate_thread_2u_2t: not merged (didn't fail in MariaDB)
- perfschema.table_aggregate_thread_2u_3t: not merged (didn't fail in MariaDB)
- perfschema.table_aggregate_thread_4u_2t: not merged (didn't fail in MariaDB)
- perfschema.table_aggregate_thread_4u_3t: not merged (didn't fail in MariaDB)
- perfschema.table_lock_aggregate_global_2u_2t: not merged (didn't fail in MariaDB)
- perfschema.table_lock_aggregate_global_2u_3t: not merged (didn't fail in MariaDB)
- perfschema.table_lock_aggregate_global_4u_2t: not merged (didn't fail in MariaDB)
- perfschema.table_lock_aggregate_global_4u_3t: not merged (didn't fail in MariaDB)
- perfschema.table_lock_aggregate_hist_2u_2t: not merged (didn't fail in MariaDB)
- perfschema.table_lock_aggregate_hist_2u_3t: not merged (didn't fail in MariaDB)
- perfschema.table_lock_aggregate_hist_4u_2t: not merged (didn't fail in MariaDB)
- perfschema.table_lock_aggregate_hist_4u_3t: not merged (didn't fail in MariaDB)
- perfschema.table_lock_aggregate_thread_2u_2t: not merged (didn't fail in MariaDB)
- perfschema.table_lock_aggregate_thread_2u_3t: not merged (didn't fail in MariaDB)
- perfschema.table_lock_aggregate_thread_4u_2t: not merged (didn't fail in MariaDB)
- perfschema.table_lock_aggregate_thread_4u_3t: not merged (didn't fail in MariaDB)
- sys_vars.sql_low_priority_updates_func: not merged
- include/thr_rwlock.h: not merged, rw_pr_lock_assert_write_owner and
  rw_pr_lock_assert_not_write_owner are macros in MariaDB
- sql/handler.h: not merged (HA_NO_READ_LOCAL_LOCK)
- sql/mdl.cc: partially merged (MDL_SHARED_READ_ONLY only)
- sql/mdl.h: partially merged (MDL_SHARED_READ_ONLY only)
- sql/lock.cc: fully merged
- sql/sp_head.cc: not merged
- sql/sp_head.h: not merged
- sql/sql_base.cc: partially merged (MDL_SHARED_READ_ONLY only)
- sql/sql_base.h: not merged
- sql/sql_class.cc: fully merged
- sql/sql_class.h: fully merged
- sql/sql_handler.cc: merged partially (different solution in MariaDB)
- sql/sql_parse.cc: partially merged, mostly omitted low priority write part
- sql/sql_reload.cc: not merged comment change
- sql/sql_table.cc: not merged SNRW->X upgrade for IMPORT/DISCARD TABLESPACE
- sql/sql_view.cc: not merged
- sql/sql_yacc.yy: not merged (MDL_SHARED_WRITE_LOW_PRIO, MDL_SHARED_READ_ONLY)
- sql/table.cc: not merged (MDL_SHARED_WRITE_LOW_PRIO)
- sql/table.h: not merged (MDL_SHARED_WRITE_LOW_PRIO)
- sql/trigger.cc: not merged
- storage/innobase/handler/ha_innodb.cc: merged store_lock()/lock_count()
  changes (in MDEV-7660), didn't merge HA_NO_READ_LOCAL_LOCK
- storage/innobase/handler/ha_innodb.h: fully merged in MDEV-7660
- storage/myisammrg/ha_myisammrg.cc: not merged comment change
- storage/perfschema/table_helper.cc: not merged (no MDL support in MariaDB PFS)
- unittest/gunit/mdl-t.cc: not merged
- unittest/gunit/mdl_sync-t.cc: not merged

MariaDB specific changes:
- handler.heap: different HANDLER solution, MDEV-7660
- handler.innodb: different HANDLER solution, MDEV-7660
- handler.interface: different HANDLER solution, MDEV-7660
- handler.myisam: different HANDLER solution, MDEV-7660
- main.mdl_sync: MDEV-7660 specific changes
- main.partition_debug_sync: removed test due to different HANDLER solution,
  MDEV-7660
- main.truncate_coverage: removed test due to different HANDLER solution,
  MDEV-7660
- mysql-test/include/mtr_warnings.sql: additional cleanup, MDEV-7660
- mysql-test/lib/v1/mtr_report.pl: additional cleanup, MDEV-7660
- plugin/metadata_lock_info/metadata_lock_info.cc: not in MySQL
- sql/sql_handler.cc: MariaDB specific fix for mysql_ha_read(), MDEV-7660
2016-12-21 13:18:45 +04:00
..
doc 5.6.26-74.0 2015-10-26 12:57:57 +01:00
mysql-test MDEV-11227 - mysqlimport -l doesn't issue UNLOCK TABLES 2016-12-21 13:18:45 +04:00
PerconaFT Fix compilation failure of TokuDB on BSD-like systems 2016-09-24 15:09:39 +02:00
tests 5.6.26-74.0 2015-10-26 12:57:57 +01:00
tools 5.6.26-74.0 2015-10-26 12:57:57 +01:00
CMakeLists.txt MDEV-6284: Remove CMakeLists.txt hack that mangled the server install file 2016-10-27 18:42:16 +03:00
ha_tokudb.cc misc after-merge changes: 2016-09-10 16:04:44 +02:00
ha_tokudb.h Merge branch 'merge-tokudb-5.6' into 10.0-tokudb-merge 2016-06-11 01:06:09 +02:00
ha_tokudb_admin.cc 5.6.30-76.3 2016-06-10 19:47:58 +02:00
ha_tokudb_alter_55.cc 5.6.26-74.0 2015-10-26 12:57:57 +01:00
ha_tokudb_alter_56.cc MDEV-5800 InnoDB support for indexed vcols 2016-12-12 20:27:42 +01:00
ha_tokudb_alter_common.cc 5.6.29-76.2 2016-04-26 20:58:29 +02:00
ha_tokudb_mrr_maria.cc 5.6.26-74.0 2015-10-26 12:57:57 +01:00
ha_tokudb_mrr_mysql.cc 5.6.26-74.0 2015-10-26 12:57:57 +01:00
ha_tokudb_update.cc 5.6.29-76.2 2016-04-26 20:58:29 +02:00
hatoku_cmp.cc Merge branch '10.1' into 10.2 2016-06-30 16:38:05 +02:00
hatoku_cmp.h 5.6.27-76.0 2015-12-15 17:23:58 +01:00
hatoku_defines.h Merge branch '10.1' into 10.2 2016-09-09 08:33:08 +02:00
hatoku_hton.cc Merge branch '10.1' into 10.2 2016-09-09 08:33:08 +02:00
hatoku_hton.h 5.6.29-76.2 2016-04-26 20:58:29 +02:00
tokudb.cnf
tokudb_background.cc 5.6.27-76.0 2015-12-15 17:23:58 +01:00
tokudb_background.h 5.6.27-76.0 2015-12-15 17:23:58 +01:00
tokudb_buffer.h 5.6.27-76.0 2015-12-15 17:23:58 +01:00
tokudb_card.h 5.6.29-76.2 2016-04-26 20:58:29 +02:00
tokudb_debug.h 5.6.29-76.2 2016-04-26 20:58:29 +02:00
tokudb_information_schema.cc Merge branch 'merge-tokudb-5.6' into 10.0-tokudb-merge 2016-06-11 01:06:09 +02:00
tokudb_information_schema.h Merge branch 'merge-tokudb-5.6' into 10.0-tokudb-merge 2016-06-10 20:48:59 +02:00
tokudb_math.h 5.6.27-76.0 2015-12-15 17:23:58 +01:00
tokudb_memory.h Merge branch 'merge-tokudb-5.6' into 10.0-tokudb-merge 2016-06-10 20:48:59 +02:00
tokudb_status.h 5.6.27-76.0 2015-12-15 17:23:58 +01:00
tokudb_sysvars.cc Merge branch 'merge/merge-tokudb-5.6' into 10.0 2016-08-10 19:57:13 +02:00
tokudb_sysvars.h Merge branch 'merge/merge-tokudb-5.6' into 10.0 2016-08-10 19:57:13 +02:00
tokudb_thread.cc 5.6.27-76.0 2015-12-15 17:23:58 +01:00
tokudb_thread.h 5.6.30-76.3 2016-06-10 19:47:58 +02:00
tokudb_time.h 5.6.27-76.0 2015-12-15 17:23:58 +01:00
tokudb_txn.h 5.6.27-76.0 2015-12-15 17:23:58 +01:00
tokudb_update_fun.cc General spell fixing in comments and strings 2016-06-08 14:17:23 +03:00
tokudb_vlq.h 5.6.26-74.0 2015-10-26 12:57:57 +01:00