summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorMichael Widenius <monty@mysql.com>2009-01-30 23:55:42 +0200
committerMichael Widenius <monty@mysql.com>2009-01-30 23:55:42 +0200
commit37db97b0e25de1a1dc0d16bc9b88b0c3a2e9f9a2 (patch)
treece2cae5253aeca0dafdd6a85d636e5419e17bc0d /sql
parentdd5b9fc6cd620d0826a10e184c0082880f97513d (diff)
parent9aa2ada9d007a41d4e58447ea405b646c4d53ea3 (diff)
downloadmariadb-git-37db97b0e25de1a1dc0d16bc9b88b0c3a2e9f9a2.tar.gz
Merge with mysql-maria
Changed _ma_ft_convert_to_ft2() to my_bool storage/maria/ma_ft_update.c: Changed _ma_ft_convert_to_ft2() to my_bool storage/maria/ma_fulltext.h: Changed _ma_ft_convert_to_ft2() to my_bool storage/maria/ma_write.c: Manual merge Changed _ma_ft_convert_to_ft2() to my_bool
Diffstat (limited to 'sql')
-rw-r--r--sql/mysqld.cc7
-rw-r--r--sql/sql_class.cc4
-rw-r--r--sql/sql_class.h4
-rw-r--r--sql/sql_insert.cc7
4 files changed, 15 insertions, 7 deletions
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 3555c4c4f87..dbbb6faaa7d 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2003 MySQL AB
+/* Copyright (C) 2000-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -3718,8 +3718,6 @@ static int init_server_components()
if (table_cache_init() | table_def_init() | hostname_cache_init())
unireg_abort(1);
- wt_init();
-
query_cache_result_size_limit(query_cache_limit);
query_cache_set_min_res_unit(query_cache_min_res_unit);
query_cache_init();
@@ -3731,6 +3729,7 @@ static int init_server_components()
#ifdef HAVE_REPLICATION
init_slave_list();
#endif
+ wt_init();
/* Setup logs */
@@ -7471,7 +7470,7 @@ static void usage(void)
default_collation_name= (char*) default_charset_info->name;
print_version();
puts("\
-Copyright (C) 2000 MySQL AB, by Monty and others\n\
+Copyright (C) 2000-2008 MySQL AB, Monty and others, 2008-2009 Sun Microsystems, Inc.\n\
This software comes with ABSOLUTELY NO WARRANTY. This is free software,\n\
and you are welcome to modify and redistribute it under the GPL license\n\n\
Starts the MySQL database server\n");
diff --git a/sql/sql_class.cc b/sql/sql_class.cc
index f7713a2429a..6f068074641 100644
--- a/sql/sql_class.cc
+++ b/sql/sql_class.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2006 MySQL AB
+/* Copyright (C) 2000-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -1123,6 +1123,8 @@ bool THD::store_globals()
*/
mysys_var->id= thread_id;
real_id= pthread_self(); // For debugging
+ mysys_var->stack_ends_here= thread_stack + // for consistency, see libevent_thread_proc
+ STACK_DIRECTION * (long)my_thread_stack_size;
/*
We have to call thr_lock_info_init() again here as THD may have been
diff --git a/sql/sql_class.h b/sql/sql_class.h
index 6dbdde28985..01f5c9eb1e9 100644
--- a/sql/sql_class.h
+++ b/sql/sql_class.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2006 MySQL AB
+/* Copyright (C) 2000-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -1417,7 +1417,7 @@ public:
THD_TRANS stmt; // Trans for current statement
bool on; // see ha_enable_transaction()
XID_STATE xid_state;
- WT_THD wt;
+ WT_THD wt; ///< for deadlock detection
Rows_log_event *m_pending_rows_event;
/*
diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc
index 175358140e1..b10a7789079 100644
--- a/sql/sql_insert.cc
+++ b/sql/sql_insert.cc
@@ -3493,6 +3493,12 @@ static TABLE *create_table_from_items(THD *thd, HA_CREATE_INFO *create_info,
MYSQL_LOCK_IGNORE_FLUSH, &not_used)) ||
hooks->postlock(&table, 1))
{
+ /* purecov: begin tested */
+ /*
+ This can happen in innodb when you get a deadlock when using same table
+ in insert and select
+ */
+ my_error(ER_CANT_LOCK, MYF(0), my_errno);
if (*lock)
{
mysql_unlock_tables(thd, *lock);
@@ -3502,6 +3508,7 @@ static TABLE *create_table_from_items(THD *thd, HA_CREATE_INFO *create_info,
if (!create_info->table_existed)
drop_open_table(thd, table, create_table->db, create_table->table_name);
DBUG_RETURN(0);
+ /* purecov: end */
}
DBUG_RETURN(table);
}