diff options
author | unknown <heikki@hundin.mysql.fi> | 2002-11-06 00:41:27 +0200 |
---|---|---|
committer | unknown <heikki@hundin.mysql.fi> | 2002-11-06 00:41:27 +0200 |
commit | 444d8207d9a277231733dc6cd58bf21b626bba31 (patch) | |
tree | fed8334ab45443418d527c3837593e1121ed1975 /innobase/srv/srv0srv.c | |
parent | 23f4865b163293006bbedbc2b69bc55ba1081baa (diff) | |
download | mariadb-git-444d8207d9a277231733dc6cd58bf21b626bba31.tar.gz |
Many files:
Merge InnoDB-4.0.5b: minor improvements to foreign keys, more logical data dictionary lock
sql/ha_innodb.cc:
Merge InnoDB-4.0.5b: minor improvements to foreign keys, more logical data dictionary lock
innobase/dict/dict0crea.c:
Merge InnoDB-4.0.5b: minor improvements to foreign keys, more logical data dictionary lock
innobase/dict/dict0dict.c:
Merge InnoDB-4.0.5b: minor improvements to foreign keys, more logical data dictionary lock
innobase/include/log0recv.h:
Merge InnoDB-4.0.5b: minor improvements to foreign keys, more logical data dictionary lock
innobase/include/row0mysql.h:
Merge InnoDB-4.0.5b: minor improvements to foreign keys, more logical data dictionary lock
innobase/include/srv0srv.h:
Merge InnoDB-4.0.5b: minor improvements to foreign keys, more logical data dictionary lock
innobase/include/trx0trx.h:
Merge InnoDB-4.0.5b: minor improvements to foreign keys, more logical data dictionary lock
innobase/log/log0recv.c:
Merge InnoDB-4.0.5b: minor improvements to foreign keys, more logical data dictionary lock
innobase/os/os0sync.c:
Merge InnoDB-4.0.5b: minor improvements to foreign keys, more logical data dictionary lock
innobase/os/os0thread.c:
Merge InnoDB-4.0.5b: minor improvements to foreign keys, more logical data dictionary lock
innobase/row/row0ins.c:
Merge InnoDB-4.0.5b: minor improvements to foreign keys, more logical data dictionary lock
innobase/row/row0mysql.c:
Merge InnoDB-4.0.5b: minor improvements to foreign keys, more logical data dictionary lock
innobase/row/row0purge.c:
Merge InnoDB-4.0.5b: minor improvements to foreign keys, more logical data dictionary lock
innobase/row/row0undo.c:
Merge InnoDB-4.0.5b: minor improvements to foreign keys, more logical data dictionary lock
innobase/row/row0upd.c:
Merge InnoDB-4.0.5b: minor improvements to foreign keys, more logical data dictionary lock
innobase/srv/srv0srv.c:
Merge InnoDB-4.0.5b: minor improvements to foreign keys, more logical data dictionary lock
innobase/srv/srv0start.c:
Merge InnoDB-4.0.5b: minor improvements to foreign keys, more logical data dictionary lock
innobase/trx/trx0roll.c:
Merge InnoDB-4.0.5b: minor improvements to foreign keys, more logical data dictionary lock
innobase/trx/trx0trx.c:
Merge InnoDB-4.0.5b: minor improvements to foreign keys, more logical data dictionary lock
Diffstat (limited to 'innobase/srv/srv0srv.c')
-rw-r--r-- | innobase/srv/srv0srv.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/innobase/srv/srv0srv.c b/innobase/srv/srv0srv.c index 11e45df4ce3..51d7878fd29 100644 --- a/innobase/srv/srv0srv.c +++ b/innobase/srv/srv0srv.c @@ -51,6 +51,10 @@ Created 10/8/1995 Heikki Tuuri #include "srv0start.h" #include "row0mysql.h" +/* This is set to TRUE if the MySQL user has set it in MySQL; currently +affects only FOREIGN KEY definition parsing */ +ibool srv_lower_case_table_names = FALSE; + /* Buffer which can be used in printing fatal error messages */ char srv_fatal_errbuf[5000]; @@ -2064,6 +2068,7 @@ srv_suspend_mysql_thread( os_event_t event; double wait_time; trx_t* trx; + ibool had_dict_lock = FALSE; ut_ad(!mutex_own(&kernel_mutex)); @@ -2107,18 +2112,22 @@ srv_suspend_mysql_thread( srv_conc_force_exit_innodb(thr_get_trx(thr)); /* Release possible foreign key check latch */ - if (trx->has_dict_operation_lock) { + if (trx->dict_operation_lock_mode == RW_S_LATCH) { + + had_dict_lock = TRUE; - rw_lock_s_unlock(&dict_operation_lock); + row_mysql_unfreeze_data_dictionary(trx); } + ut_a(trx->dict_operation_lock_mode == 0); + /* Wait for the release */ os_event_wait(event); - if (trx->has_dict_operation_lock) { + if (had_dict_lock) { - rw_lock_s_lock(&dict_operation_lock); + row_mysql_freeze_data_dictionary(trx); } /* Return back inside InnoDB */ |