mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 10:31:54 +01:00
Merge narttu:/my/bk/mysql into prima.mysql.com:/home/my/bk/mysql
This commit is contained in:
commit
b7d81c0379
3 changed files with 12 additions and 4 deletions
|
@ -38808,6 +38808,12 @@ though, so Version 3.23 is not released as a stable version yet.
|
||||||
@appendixsubsec Changes in release 3.23.28
|
@appendixsubsec Changes in release 3.23.28
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item
|
@item
|
||||||
|
Fixed a major performance bug in the table locking code when you
|
||||||
|
constantly had a LOT of @code{SELECT} running on a table on which you
|
||||||
|
also did a lot of @code{UPDATE} and @code{INSERT}. The symptom was that
|
||||||
|
the @code{UPDATE} and @code{INSERT} queries was locked a long time
|
||||||
|
while @code{SELECT} statements where executed without locks.
|
||||||
|
@item
|
||||||
One can now specify @code{interactive-timeout} in the option file that
|
One can now specify @code{interactive-timeout} in the option file that
|
||||||
is read by @code{mysql_options()}. This makes it possible to force
|
is read by @code{mysql_options()}. This makes it possible to force
|
||||||
programs that runs for a long time (like @code{mysqlhotcopy}) to use
|
programs that runs for a long time (like @code{mysqlhotcopy}) to use
|
||||||
|
@ -43353,6 +43359,8 @@ Secure connections (with SSL).
|
||||||
@item
|
@item
|
||||||
Extend the optimizer to be able to optimize some
|
Extend the optimizer to be able to optimize some
|
||||||
@code{ORDER BY key_name DESC} queries.
|
@code{ORDER BY key_name DESC} queries.
|
||||||
|
@item
|
||||||
|
New key cache
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@node TODO future, TODO sometime, TODO MySQL 4.0, TODO
|
@node TODO future, TODO sometime, TODO MySQL 4.0, TODO
|
||||||
|
|
|
@ -653,7 +653,7 @@ void thr_unlock(THR_LOCK_DATA *data)
|
||||||
data->type=TL_UNLOCK; /* Mark unlocked */
|
data->type=TL_UNLOCK; /* Mark unlocked */
|
||||||
check_locks(lock,"after releasing lock",1);
|
check_locks(lock,"after releasing lock",1);
|
||||||
|
|
||||||
if (!lock->write.data) /* If no active read locks */
|
if (!lock->write.data) /* If no active write locks */
|
||||||
{
|
{
|
||||||
data=lock->write_wait.data;
|
data=lock->write_wait.data;
|
||||||
if (!lock->read.data) /* If no more locks in use */
|
if (!lock->read.data) /* If no more locks in use */
|
||||||
|
@ -742,7 +742,7 @@ void thr_unlock(THR_LOCK_DATA *data)
|
||||||
data->next->prev= data->prev;
|
data->next->prev= data->prev;
|
||||||
else
|
else
|
||||||
lock->write_wait.last=data->prev;
|
lock->write_wait.last=data->prev;
|
||||||
(*lock->write.last)=data; /* Put in execute list */
|
(*lock->write.last)=data; /* Put in execute list */
|
||||||
data->prev=lock->write.last;
|
data->prev=lock->write.last;
|
||||||
lock->write.last= &data->next;
|
lock->write.last= &data->next;
|
||||||
data->next=0; /* Only one write lock */
|
data->next=0; /* Only one write lock */
|
||||||
|
@ -756,7 +756,7 @@ void thr_unlock(THR_LOCK_DATA *data)
|
||||||
(lock_type == TL_WRITE_CONCURRENT_INSERT ||
|
(lock_type == TL_WRITE_CONCURRENT_INSERT ||
|
||||||
lock_type == TL_WRITE_ALLOW_WRITE));
|
lock_type == TL_WRITE_ALLOW_WRITE));
|
||||||
}
|
}
|
||||||
else if (lock->read_wait.data)
|
else if (!data && lock->read_wait.data)
|
||||||
free_all_read_locks(lock,0);
|
free_all_read_locks(lock,0);
|
||||||
}
|
}
|
||||||
end:
|
end:
|
||||||
|
|
|
@ -31,6 +31,6 @@
|
||||||
|
|
||||||
char *llstr(longlong value,char *buff)
|
char *llstr(longlong value,char *buff)
|
||||||
{
|
{
|
||||||
longlong2str(value,buff,10);
|
longlong2str(value,buff,-10);
|
||||||
return buff;
|
return buff;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue