Commit 2f2d0b60 authored by unknown's avatar unknown

Fixes during review of pushed code

Added back missing return in mysql_delete()


mysql-test/my_manage.c:
  Cleanup: Remove some #ifdef
mysql-test/r/drop_temp_table.result:
  Delete database that may be left from other test
mysql-test/t/drop_temp_table.test:
  Delete database that may be left from other test
sql/log.cc:
  false -> FALSE
  true -> TRUE
  Wait until readers_count is 0 (not just for a signal)
  
  NOTE: it's very likely that the way to handle readers_count is wrong.
  (We are in pthread_cond_wait freeing a mutex that is not the innermost mutex,
  which can lead to deadlocks)
  
  I will talk with Guilhem about this ASAP
sql/log_event.h:
  Remove number from last even to help future merges
  (all compilers I know of can handle this properly)
sql/sql_delete.cc:
  Add back missing RETURN (was lost in a merge)
  Indentation fixes
parent bd3ec22f
...@@ -231,9 +231,6 @@ int wait_for_server_start(char *bin_dir __attribute__((unused)), ...@@ -231,9 +231,6 @@ int wait_for_server_start(char *bin_dir __attribute__((unused)),
{ {
arg_list_t al; arg_list_t al;
int err= 0; int err= 0;
#ifndef __WIN__
int i;
#endif
char trash[FN_REFLEN]; char trash[FN_REFLEN];
/* mysqladmin file */ /* mysqladmin file */
...@@ -247,16 +244,11 @@ int wait_for_server_start(char *bin_dir __attribute__((unused)), ...@@ -247,16 +244,11 @@ int wait_for_server_start(char *bin_dir __attribute__((unused)),
add_arg(&al, "--user=%s", user); add_arg(&al, "--user=%s", user);
add_arg(&al, "--password=%s", password); add_arg(&al, "--password=%s", password);
add_arg(&al, "--silent"); add_arg(&al, "--silent");
add_arg(&al, "--host=localhost");
/* #ifdef NOT_USED */
#ifndef __NETWARE__ #ifndef __NETWARE__
add_arg(&al, "-O"); add_arg(&al, "--connect_timeout=10");
add_arg(&al, "connect_timeout=10");
add_arg(&al, "-w"); add_arg(&al, "-w");
#endif
add_arg(&al, "--host=localhost");
#ifndef __NETWARE__
add_arg(&al, "--protocol=tcp"); add_arg(&al, "--protocol=tcp");
#endif #endif
add_arg(&al, "ping"); add_arg(&al, "ping");
...@@ -266,9 +258,14 @@ int wait_for_server_start(char *bin_dir __attribute__((unused)), ...@@ -266,9 +258,14 @@ int wait_for_server_start(char *bin_dir __attribute__((unused)),
-- we will try the ping multiple times -- we will try the ping multiple times
*/ */
#ifndef __WIN__ #ifndef __WIN__
for (i= 0; (i < TRY_MAX) {
&& (err= spawn(mysqladmin_file, &al, TRUE, NULL, int i;
trash, NULL, NULL)); i++) sleep(1); for (i= 0;
(i < TRY_MAX) && (err= spawn(mysqladmin_file, &al, TRUE, NULL,
trash, NULL, NULL));
i++)
sleep(1);
}
#else #else
err= spawn(mysqladmin_file, &al, TRUE, NULL,trash, NULL, NULL); err= spawn(mysqladmin_file, &al, TRUE, NULL,trash, NULL, NULL);
#endif #endif
......
drop database if exists `drop-temp+table-test`;
reset master; reset master;
create database `drop-temp+table-test`; create database `drop-temp+table-test`;
use `drop-temp+table-test`; use `drop-temp+table-test`;
......
# Embedded server doesn't support binlog # Embedded server doesn't support binlog
-- source include/not_embedded.inc -- source include/not_embedded.inc
--disable_warnings
drop database if exists `drop-temp+table-test`;
--enable_warnings
connect (con1,localhost,root,,); connect (con1,localhost,root,,);
connect (con2,localhost,root,,); connect (con2,localhost,root,,);
connection con1; connection con1;
......
...@@ -358,7 +358,7 @@ MYSQL_LOG::MYSQL_LOG() ...@@ -358,7 +358,7 @@ MYSQL_LOG::MYSQL_LOG()
:bytes_written(0), last_time(0), query_start(0), name(0), :bytes_written(0), last_time(0), query_start(0), name(0),
file_id(1), open_count(1), log_type(LOG_CLOSED), write_error(0), inited(0), file_id(1), open_count(1), log_type(LOG_CLOSED), write_error(0), inited(0),
need_start_event(1), prepared_xids(0), description_event_for_exec(0), need_start_event(1), prepared_xids(0), description_event_for_exec(0),
description_event_for_queue(0), readers_count(0), reset_pending(false) description_event_for_queue(0), readers_count(0), reset_pending(FALSE)
{ {
/* /*
We don't want to initialize LOCK_Log here as such initialization depends on We don't want to initialize LOCK_Log here as such initialization depends on
...@@ -965,7 +965,7 @@ bool MYSQL_LOG::reset_logs(THD* thd) ...@@ -965,7 +965,7 @@ bool MYSQL_LOG::reset_logs(THD* thd)
goto err; goto err;
} }
reset_pending= true; reset_pending= TRUE;
/* /*
send update signal just in case so that all reader threads waiting send update signal just in case so that all reader threads waiting
for log update will leave wait condition for log update will leave wait condition
...@@ -975,7 +975,7 @@ bool MYSQL_LOG::reset_logs(THD* thd) ...@@ -975,7 +975,7 @@ bool MYSQL_LOG::reset_logs(THD* thd)
if there are active readers wait until all of them will if there are active readers wait until all of them will
release opened files release opened files
*/ */
if (readers_count) while (readers_count)
pthread_cond_wait(&reset_cond, &LOCK_log); pthread_cond_wait(&reset_cond, &LOCK_log);
for (;;) for (;;)
...@@ -996,7 +996,7 @@ bool MYSQL_LOG::reset_logs(THD* thd) ...@@ -996,7 +996,7 @@ bool MYSQL_LOG::reset_logs(THD* thd)
my_free((gptr) save_name, MYF(0)); my_free((gptr) save_name, MYF(0));
err: err:
reset_pending= false; reset_pending= FALSE;
(void) pthread_mutex_unlock(&LOCK_thread_count); (void) pthread_mutex_unlock(&LOCK_thread_count);
pthread_mutex_unlock(&LOCK_readers); pthread_mutex_unlock(&LOCK_readers);
......
...@@ -430,11 +430,10 @@ enum Log_event_type ...@@ -430,11 +430,10 @@ enum Log_event_type
/* /*
Add new events here - right above this comment! Add new events here - right above this comment!
And change the ENUM_END_EVENT_MARKER below. Existing events (except ENUM_END_EVENT) should never change their numbers
Existing events should never change their numbers
*/ */
ENUM_END_EVENT= 19 /* end marker */ ENUM_END_EVENT /* end marker */
}; };
/* /*
......
...@@ -158,7 +158,8 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, ...@@ -158,7 +158,8 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds,
table->sort.io_cache= (IO_CACHE *) my_malloc(sizeof(IO_CACHE), table->sort.io_cache= (IO_CACHE *) my_malloc(sizeof(IO_CACHE),
MYF(MY_FAE | MY_ZEROFILL)); MYF(MY_FAE | MY_ZEROFILL));
if ( !(sortorder=make_unireg_sortorder((ORDER*) order->first, &length)) || if (!(sortorder= make_unireg_sortorder((ORDER*) order->first,
&length)) ||
(table->sort.found_records = filesort(thd, table, sortorder, length, (table->sort.found_records = filesort(thd, table, sortorder, length,
select, HA_POS_ERROR, select, HA_POS_ERROR,
&examined_rows)) &examined_rows))
...@@ -166,6 +167,7 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, ...@@ -166,6 +167,7 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds,
{ {
delete select; delete select;
free_underlaid_joins(thd, &thd->lex->select_lex); free_underlaid_joins(thd, &thd->lex->select_lex);
DBUG_RETURN(TRUE);
} }
/* /*
Filesort has already found and selected the rows we want to delete, Filesort has already found and selected the rows we want to delete,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment