Hi Kristofer
OK to push.
Regards,
Marc
kpettersson@stripped wrote:
> Below is the list of changes that have just been committed into a local
> 5.1 repository of thek. When thek does a push these changes will
> be propagated to the main repository and, within 24 hours after the
> push, to the public repository.
> For information on how to access the public repository
> see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
>
> ChangeSet@stripped, 2007-06-18 17:46:29+02:00, thek@adventure.(none) +3 -0
> Bug#28211 RENAME DATABASE and query cache don't play nicely together
> When all table blocks were removed from the query cache the client session
> hung in a tight loop waiting on an impossible condition while consuming a lot
> of CPU.
>
> This patch also corrects an error which caused valid tables to sometimes be
> removed from the query cache.
>
> mysql-test/r/query_cache.result@stripped, 2007-06-18 17:46:27+02:00,
> thek@adventure.(none) +48 -0
> Added test case to make sure server doesn't hang in a tight loop if last
> table block is removed from the cache.
>
> mysql-test/t/query_cache.test@stripped, 2007-06-18 17:46:27+02:00,
> thek@adventure.(none) +45 -0
> Added test case to make sure server doesn't hang in a tight loop if last
> table block is removed from the cache.
>
> sql/sql_cache.cc@stripped, 2007-06-18 17:46:27+02:00, thek@adventure.(none) +52 -27
> - Refactored loop over table blocks. The invalidate_table() function effects
> the elements over which we iterate. The previous stop condition was broken
> due to a compiler optimization error probably caused by the goto-statement
> pointing out of the loop. The effect being that tables_blocks was never
> checked for null values and thus the loop never terminated.
> - The new implementation uses two while loops instead of a goto-statement.
> The tables_blocks is a circular list which becomes null if the last table
> block is removed from the list.
>
> # This is a BitKeeper patch. What follows are the unified diffs for the
> # set of deltas contained in the patch. The rest of the patch, the part
> # that BitKeeper cares about, is below these diffs.
> # User: thek
> # Host: adventure.(none)
> # Root: /home/thek/Development/cpp/bug28211/my51-bug28211
>
>
>