mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
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
This commit is contained in:
@ -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)),
|
|||||||
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");
|
||||||
|
|
||||||
/* #ifdef NOT_USED */
|
|
||||||
#ifndef __NETWARE__
|
|
||||||
add_arg(&al, "-O");
|
|
||||||
add_arg(&al, "connect_timeout=10");
|
|
||||||
add_arg(&al, "-w");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
add_arg(&al, "--host=localhost");
|
add_arg(&al, "--host=localhost");
|
||||||
|
|
||||||
#ifndef __NETWARE__
|
#ifndef __NETWARE__
|
||||||
|
add_arg(&al, "--connect_timeout=10");
|
||||||
|
add_arg(&al, "-w");
|
||||||
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)),
|
|||||||
-- 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
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
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`;
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
# 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()
|
|||||||
: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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
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
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
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,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),
|
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))
|
||||||
== HA_POS_ERROR)
|
== HA_POS_ERROR)
|
||||||
{
|
{
|
||||||
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,
|
||||||
|
Reference in New Issue
Block a user