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)),
{
arg_list_t al;
int err= 0;
#ifndef __WIN__
int i;
#endif
char trash[FN_REFLEN];
/* mysqladmin file */
......@@ -247,16 +244,11 @@ int wait_for_server_start(char *bin_dir __attribute__((unused)),
add_arg(&al, "--user=%s", user);
add_arg(&al, "--password=%s", password);
add_arg(&al, "--silent");
add_arg(&al, "--host=localhost");
/* #ifdef NOT_USED */
#ifndef __NETWARE__
add_arg(&al, "-O");
add_arg(&al, "connect_timeout=10");
add_arg(&al, "--connect_timeout=10");
add_arg(&al, "-w");
#endif
add_arg(&al, "--host=localhost");
#ifndef __NETWARE__
add_arg(&al, "--protocol=tcp");
#endif
add_arg(&al, "ping");
......@@ -266,9 +258,14 @@ int wait_for_server_start(char *bin_dir __attribute__((unused)),
-- we will try the ping multiple times
*/
#ifndef __WIN__
for (i= 0; (i < TRY_MAX)
&& (err= spawn(mysqladmin_file, &al, TRUE, NULL,
trash, NULL, NULL)); i++) sleep(1);
{
int i;
for (i= 0;
(i < TRY_MAX) && (err= spawn(mysqladmin_file, &al, TRUE, NULL,
trash, NULL, NULL));
i++)
sleep(1);
}
#else
err= spawn(mysqladmin_file, &al, TRUE, NULL,trash, NULL, NULL);
#endif
......
drop database if exists `drop-temp+table-test`;
reset master;
create database `drop-temp+table-test`;
use `drop-temp+table-test`;
......
# Embedded server doesn't support binlog
-- source include/not_embedded.inc
--disable_warnings
drop database if exists `drop-temp+table-test`;
--enable_warnings
connect (con1,localhost,root,,);
connect (con2,localhost,root,,);
connection con1;
......
......@@ -358,7 +358,7 @@ MYSQL_LOG::MYSQL_LOG()
: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),
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
......@@ -965,7 +965,7 @@ bool MYSQL_LOG::reset_logs(THD* thd)
goto err;
}
reset_pending= true;
reset_pending= TRUE;
/*
send update signal just in case so that all reader threads waiting
for log update will leave wait condition
......@@ -975,7 +975,7 @@ bool MYSQL_LOG::reset_logs(THD* thd)
if there are active readers wait until all of them will
release opened files
*/
if (readers_count)
while (readers_count)
pthread_cond_wait(&reset_cond, &LOCK_log);
for (;;)
......@@ -996,7 +996,7 @@ bool MYSQL_LOG::reset_logs(THD* thd)
my_free((gptr) save_name, MYF(0));
err:
reset_pending= false;
reset_pending= FALSE;
(void) pthread_mutex_unlock(&LOCK_thread_count);
pthread_mutex_unlock(&LOCK_readers);
......
......@@ -430,11 +430,10 @@ enum Log_event_type
/*
Add new events here - right above this comment!
And change the ENUM_END_EVENT_MARKER below.
Existing events should never change their numbers
Existing events (except ENUM_END_EVENT) should never change their numbers
*/
ENUM_END_EVENT= 19 /* end marker */
ENUM_END_EVENT /* end marker */
};
/*
......
......@@ -158,14 +158,16 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds,
table->sort.io_cache= (IO_CACHE *) my_malloc(sizeof(IO_CACHE),
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,
select, HA_POS_ERROR,
&examined_rows))
select, HA_POS_ERROR,
&examined_rows))
== HA_POS_ERROR)
{
delete select;
free_underlaid_joins(thd, &thd->lex->select_lex);
DBUG_RETURN(TRUE);
}
/*
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