mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
merge
BitKeeper/etc/logging_ok: auto-union client/Makefile.am: Auto merged client/mysql.cc: Auto merged myisam/mi_check.c: Auto merged sql/slave.cc: Auto merged sql/sql_insert.cc: Auto merged sql/sql_show.cc: Auto merged strings/strmake.c: Auto merged mysql-test/t/rpl000017-slave.sh: Auto merged
This commit is contained in:
@ -1,3 +1,4 @@
|
||||
Administrator@fred.
|
||||
Miguel@light.local
|
||||
Sinisa@sinisa.nasamreza.org
|
||||
davida@isil.mysql.com
|
||||
@ -30,4 +31,3 @@ tonu@hundin.mysql.fi
|
||||
tonu@volk.internalnet
|
||||
tonu@x153.internalnet
|
||||
tonu@x3.internalnet
|
||||
Administrator@fred.
|
||||
|
@ -28165,6 +28165,13 @@ column that only can take 2 values: A @code{CHAR(0)}, that is not defined
|
||||
as @code{NOT NULL}, will only occupy one bit and can only take 2 values:
|
||||
@code{NULL} or @code{""}. @xref{CHAR}.
|
||||
|
||||
@tindex BOOL
|
||||
@tindex BIT
|
||||
@item BIT
|
||||
@itemx BOOL
|
||||
@itemx CHAR
|
||||
These three are synonyms for @code{CHAR(1)}.
|
||||
|
||||
@tindex CHARACTER VARYING
|
||||
@tindex CHAR VARYING
|
||||
@tindex VARCHAR
|
||||
@ -30980,7 +30987,8 @@ mysql> select ATAN(-2);
|
||||
@end example
|
||||
|
||||
@findex ATAN2()
|
||||
@item ATAN2(Y,X)
|
||||
@item ATAN(Y,X)
|
||||
@itemx ATAN2(Y,X)
|
||||
Returns the arc tangent of the two variables @code{X} and @code{Y}. It is
|
||||
similar to calculating the arc tangent of @code{Y / X}, except that the
|
||||
signs of both arguments are used to determine the quadrant of the
|
||||
@ -30988,7 +30996,7 @@ result:
|
||||
@example
|
||||
mysql> select ATAN(-2,2);
|
||||
-> -0.785398
|
||||
mysql> select ATAN(PI(),0);
|
||||
mysql> select ATAN2(PI(),0);
|
||||
-> 1.570796
|
||||
@end example
|
||||
|
||||
@ -32193,6 +32201,18 @@ MySQL will directly use disk-based temporary tables if needed.
|
||||
MySQL will also, in this case, prefer sorting to doing a
|
||||
temporary table with a key on the @code{GROUP BY} elements.
|
||||
|
||||
@item
|
||||
@code{SQL_BUFFER_RESULT} will force the result to be put into a temporary
|
||||
table. This will help MySQL free the table locks early and will help
|
||||
in cases where it takes a long time to send the result set to the client.
|
||||
|
||||
@item
|
||||
@code{SQL_SMALL_RESULT}, a MySQL-specific option, can be used
|
||||
with @code{GROUP BY} or @code{DISTINCT} to tell the optimizer that the
|
||||
result set will be small. In this case, MySQL will use fast
|
||||
temporary tables to store the resulting table instead of using sorting. In
|
||||
MySQL Version 3.23 this shouldn't normally be needed.
|
||||
|
||||
@item
|
||||
@cindex @code{GROUP BY}, extensions to ANSI SQL
|
||||
If you use @code{GROUP BY}, the output rows will be sorted according to the
|
||||
@ -47547,6 +47567,9 @@ not yet 100% confident in this code.
|
||||
@appendixsubsec Changes in release 3.23.43
|
||||
@itemize @bullet
|
||||
@item
|
||||
Fixed a bug in @code{INSERT DELAYED} and @code{FLUSH TABLES} introduced
|
||||
in 3.23.42.
|
||||
@item
|
||||
Fixed unlikely bug, which returned not matching rows, in SELECT with
|
||||
many tables and multi-column indexes and 'range' type.
|
||||
@item
|
||||
|
@ -968,7 +968,7 @@ static bool add_line(String &buffer,char *line,char *in_string)
|
||||
{ // mSQL or postgreSQL style command ?
|
||||
if (!(inchar = (uchar) *++pos))
|
||||
break; // readline adds one '\'
|
||||
if (*in_string || inchar == 'N')
|
||||
if (*in_string || inchar == 'N') // \N is short for NULL
|
||||
{ // Don't allow commands in string
|
||||
*out++='\\';
|
||||
*out++= (char) inchar;
|
||||
|
@ -3,8 +3,8 @@ master-bin.001
|
||||
4
|
||||
127.0.0.1
|
||||
replicate
|
||||
aaaaaaaaaaaaaaab
|
||||
9306
|
||||
aaaaaaaaaaaaaaabthispartofthepasswordisnotused
|
||||
$MASTER_MYPORT
|
||||
1
|
||||
0
|
||||
EOF
|
||||
|
@ -307,7 +307,7 @@ static int init_strvar_from_file(char* var, int max_size, IO_CACHE* f,
|
||||
}
|
||||
else if (default_val)
|
||||
{
|
||||
strmake(var, default_val, max_size);
|
||||
strmake(var, default_val, max_size-1);
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
@ -548,14 +548,14 @@ int init_master_info(MASTER_INFO* mi)
|
||||
}
|
||||
|
||||
mi->log_file_name[length-1]= 0; // kill \n
|
||||
char buf[FN_REFLEN];
|
||||
if(!my_b_gets(&mi->file, buf, sizeof(buf)))
|
||||
/* Reuse fname buffer */
|
||||
if(!my_b_gets(&mi->file, fname, sizeof(fname)))
|
||||
{
|
||||
msg="Error reading log file position from master info file";
|
||||
goto error;
|
||||
}
|
||||
mi->pos = strtoull(fname,(char**) 0, 10);
|
||||
|
||||
mi->pos = strtoull(buf,(char**) 0, 10);
|
||||
mi->fd = fd;
|
||||
if(init_strvar_from_file(mi->host, sizeof(mi->host), &mi->file,
|
||||
master_host) ||
|
||||
|
@ -868,6 +868,7 @@ void kill_delayed_threads(void)
|
||||
delayed_insert *tmp;
|
||||
while ((tmp=it++))
|
||||
{
|
||||
/* Ensure that the thread doesn't kill itself while we are looking at it */
|
||||
pthread_mutex_lock(&tmp->mutex);
|
||||
tmp->thd.killed=1;
|
||||
if (tmp->thd.mysys_var)
|
||||
@ -875,9 +876,15 @@ void kill_delayed_threads(void)
|
||||
pthread_mutex_lock(&tmp->thd.mysys_var->mutex);
|
||||
if (tmp->thd.mysys_var->current_cond)
|
||||
{
|
||||
pthread_mutex_lock(tmp->thd.mysys_var->current_mutex);
|
||||
/*
|
||||
We need the following test because the main mutex may be locked
|
||||
in handle_delayed_insert()
|
||||
*/
|
||||
if (&tmp->mutex != tmp->thd.mysys_var->current_mutex)
|
||||
pthread_mutex_lock(tmp->thd.mysys_var->current_mutex);
|
||||
pthread_cond_broadcast(tmp->thd.mysys_var->current_cond);
|
||||
pthread_mutex_unlock(tmp->thd.mysys_var->current_mutex);
|
||||
if (&tmp->mutex != tmp->thd.mysys_var->current_mutex)
|
||||
pthread_mutex_unlock(tmp->thd.mysys_var->current_mutex);
|
||||
}
|
||||
pthread_mutex_unlock(&tmp->thd.mysys_var->mutex);
|
||||
}
|
||||
|
@ -22,7 +22,8 @@
|
||||
|
||||
strmake(dst,src,length) moves length characters, or until end, of src to
|
||||
dst and appends a closing NUL to dst.
|
||||
strmake() returns pointer to closing null;
|
||||
Note that is strlen(src) >= length then dst[length] will be set to \0
|
||||
strmake() returns pointer to closing null
|
||||
*/
|
||||
|
||||
#include <my_global.h>
|
||||
|
Reference in New Issue
Block a user