mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Merge joreland@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/jonas/src/mysql-4.1
This commit is contained in:
@ -1548,6 +1548,116 @@ Z,z,Ź,ź,Ż,ż
|
||||
ǁ
|
||||
ǂ
|
||||
ǃ
|
||||
select group_concat(c1 order by c1) from t1 group by c1 collate utf8_slovak_ci;
|
||||
group_concat(c1 order by c1)
|
||||
÷
|
||||
×
|
||||
A,a,À,Á,Â,Ã,Å,à,á,â,ã,å,Ā,ā,Ă,ă,Ą,ą,Ǎ,ǎ,Ǟ,ǟ,Ǡ,ǡ,Ǻ,ǻ
|
||||
AA,Aa,aA,aa
|
||||
Ä,ä
|
||||
Æ,æ,Ǣ,ǣ,Ǽ,ǽ
|
||||
B,b
|
||||
ƀ
|
||||
Ɓ
|
||||
Ƃ,ƃ
|
||||
C,c,Ç,ç,Ć,ć,Ĉ,ĉ,Ċ,ċ
|
||||
cH
|
||||
Č,č
|
||||
Ƈ,ƈ
|
||||
D,d,Ď,ď
|
||||
DZ,Dz,dZ,dz,DŽ,Dž,dž,DZ,Dz,dz
|
||||
Đ,đ
|
||||
Ɖ
|
||||
Ɗ
|
||||
Ƌ,ƌ
|
||||
Ð,ð
|
||||
E,e,È,É,Ê,Ë,è,é,ê,ë,Ē,ē,Ĕ,ĕ,Ė,ė,Ę,ę,Ě,ě
|
||||
Ǝ,ǝ
|
||||
Ə
|
||||
Ɛ
|
||||
F,f
|
||||
Ƒ,ƒ
|
||||
G,g,Ĝ,ĝ,Ğ,ğ,Ġ,ġ,Ģ,ģ,Ǧ,ǧ,Ǵ,ǵ
|
||||
Ǥ,ǥ
|
||||
Ɠ
|
||||
Ɣ
|
||||
Ƣ,ƣ
|
||||
H,h,Ĥ,ĥ
|
||||
CH,Ch,ch
|
||||
ƕ,Ƕ
|
||||
Ħ,ħ
|
||||
I,i,Ì,Í,Î,Ï,ì,í,î,ï,Ĩ,ĩ,Ī,ī,Ĭ,ĭ,Į,į,İ,Ǐ,ǐ
|
||||
IJ,Ij,iJ,ij,IJ,ij
|
||||
ı
|
||||
Ɨ
|
||||
Ɩ
|
||||
J,j,Ĵ,ĵ,ǰ
|
||||
K,k,Ķ,ķ,Ǩ,ǩ
|
||||
Ƙ,ƙ
|
||||
L,l,Ĺ,ĺ,Ļ,ļ,Ľ,ľ
|
||||
Ŀ,ŀ
|
||||
LJ,Lj,lJ,lj,LJ,Lj,lj
|
||||
LL,Ll,lL,ll
|
||||
Ł,ł
|
||||
ƚ
|
||||
ƛ
|
||||
M,m
|
||||
N,n,Ñ,ñ,Ń,ń,Ņ,ņ,Ň,ň,Ǹ,ǹ
|
||||
NJ,Nj,nJ,nj,NJ,Nj,nj
|
||||
Ɲ
|
||||
ƞ
|
||||
Ŋ,ŋ
|
||||
O,o,Ò,Ó,Õ,Ö,ò,ó,õ,ö,Ō,ō,Ŏ,ŏ,Ő,ő,Ơ,ơ,Ǒ,ǒ,Ǫ,ǫ,Ǭ,ǭ
|
||||
OE,Oe,oE,oe,Œ,œ
|
||||
Ô,ô
|
||||
Ø,ø,Ǿ,ǿ
|
||||
Ɔ
|
||||
Ɵ
|
||||
P,p
|
||||
Ƥ,ƥ
|
||||
Q,q
|
||||
ĸ
|
||||
R,r,Ŕ,ŕ,Ŗ,ŗ,Ř,ř
|
||||
RR,Rr,rR,rr
|
||||
Ʀ
|
||||
S,s,Ś,ś,Ŝ,ŝ,Ş,ş,ſ
|
||||
SS,Ss,sS,ss,ß
|
||||
Š,š
|
||||
Ʃ
|
||||
ƪ
|
||||
T,t,Ţ,ţ,Ť,ť
|
||||
ƾ
|
||||
Ŧ,ŧ
|
||||
ƫ
|
||||
Ƭ,ƭ
|
||||
Ʈ
|
||||
U,u,Ù,Ú,Û,Ü,ù,ú,û,ü,Ũ,ũ,Ū,ū,Ŭ,ŭ,Ů,ů,Ű,ű,Ų,ų,Ư,ư,Ǔ,ǔ,Ǖ,ǖ,Ǘ,ǘ,Ǚ,ǚ,Ǜ,ǜ
|
||||
Ɯ
|
||||
Ʊ
|
||||
V,v
|
||||
Ʋ
|
||||
W,w,Ŵ,ŵ
|
||||
X,x
|
||||
Y,y,Ý,ý,ÿ,Ŷ,ŷ,Ÿ
|
||||
Ƴ,ƴ
|
||||
Z,z,Ź,ź,Ż,ż
|
||||
ƍ
|
||||
Ž,ž
|
||||
Ƶ,ƶ
|
||||
Ʒ,Ǯ,ǯ
|
||||
Ƹ,ƹ
|
||||
ƺ
|
||||
Þ,þ
|
||||
ƿ,Ƿ
|
||||
ƻ
|
||||
Ƨ,ƨ
|
||||
Ƽ,ƽ
|
||||
Ƅ,ƅ
|
||||
ʼn
|
||||
ǀ
|
||||
ǁ
|
||||
ǂ
|
||||
ǃ
|
||||
select group_concat(c1 order by c1) from t1 group by c1 collate utf8_spanish2_ci;
|
||||
group_concat(c1 order by c1)
|
||||
÷
|
||||
|
@ -176,7 +176,7 @@ select group_concat(c1 order by c1) from t1 group by c1 collate utf8_turkish_ci;
|
||||
select group_concat(c1 order by c1) from t1 group by c1 collate utf8_czech_ci;
|
||||
select group_concat(c1 order by c1) from t1 group by c1 collate utf8_danish_ci;
|
||||
select group_concat(c1 order by c1) from t1 group by c1 collate utf8_lithuanian_ci;
|
||||
--select group_concat(c1 order by c1) from t1 group by c1 collate utf8_slovak_ci;
|
||||
select group_concat(c1 order by c1) from t1 group by c1 collate utf8_slovak_ci;
|
||||
select group_concat(c1 order by c1) from t1 group by c1 collate utf8_spanish2_ci;
|
||||
select group_concat(c1 order by c1) from t1 group by c1 collate utf8_roman_ci;
|
||||
|
||||
|
@ -29,10 +29,10 @@
|
||||
to disk, if neccessary. This is handled in find_key_block().
|
||||
With the new free list, the blocks can have three temperatures:
|
||||
hot, warm and cold (which is free). This is remembered in the block header
|
||||
by the enum BLOCK_TEMPERATURE temperature variable. Remembering the
|
||||
temperature is neccessary to correctly count the number of warm blocks,
|
||||
which is required to decide when blocks are allowed to become hot. Whenever
|
||||
a block is inserted to another (sub-)chain, we take the old and new
|
||||
by the enum BLOCK_TEMPERATURE temperature variable. Remembering the
|
||||
temperature is neccessary to correctly count the number of warm blocks,
|
||||
which is required to decide when blocks are allowed to become hot. Whenever
|
||||
a block is inserted to another (sub-)chain, we take the old and new
|
||||
temperature into account to decide if we got one more or less warm block.
|
||||
blocks_unused is the sum of never used blocks in the pool and of currently
|
||||
free blocks. blocks_used is the number of blocks fetched from the pool and
|
||||
@ -475,13 +475,13 @@ int resize_key_cache(KEY_CACHE *keycache, uint key_cache_block_size,
|
||||
|
||||
if (!keycache->key_cache_inited)
|
||||
DBUG_RETURN(keycache->disk_blocks);
|
||||
|
||||
|
||||
if(key_cache_block_size == keycache->key_cache_block_size &&
|
||||
use_mem == keycache->key_cache_mem_size)
|
||||
{
|
||||
change_key_cache_param(keycache, division_limit, age_threshold);
|
||||
DBUG_RETURN(keycache->disk_blocks);
|
||||
}
|
||||
}
|
||||
|
||||
keycache_pthread_mutex_lock(&keycache->cache_lock);
|
||||
|
||||
@ -504,7 +504,7 @@ int resize_key_cache(KEY_CACHE *keycache, uint key_cache_block_size,
|
||||
goto finish;
|
||||
}
|
||||
keycache->resize_in_flush= 0;
|
||||
keycache->can_be_used= 0;
|
||||
keycache->can_be_used= 0;
|
||||
while (keycache->cnt_for_resize_op)
|
||||
{
|
||||
keycache_pthread_cond_wait(&thread->suspend, &keycache->cache_lock);
|
||||
@ -540,9 +540,9 @@ static inline void inc_counter_for_resize_op(KEY_CACHE *keycache)
|
||||
*/
|
||||
static inline void dec_counter_for_resize_op(KEY_CACHE *keycache)
|
||||
{
|
||||
struct st_my_thread_var *last_thread;
|
||||
struct st_my_thread_var *last_thread;
|
||||
if (!--keycache->cnt_for_resize_op &&
|
||||
(last_thread= keycache->resize_queue.last_thread))
|
||||
(last_thread= keycache->resize_queue.last_thread))
|
||||
keycache_pthread_cond_signal(&last_thread->next->suspend);
|
||||
}
|
||||
|
||||
@ -551,7 +551,7 @@ static inline void dec_counter_for_resize_op(KEY_CACHE *keycache)
|
||||
|
||||
SYNOPSIS
|
||||
change_key_cache_param()
|
||||
keycache pointer to a key cache data structure
|
||||
keycache pointer to a key cache data structure
|
||||
division_limit new division limit (if not zero)
|
||||
age_threshold new age threshold (if not zero)
|
||||
|
||||
@ -625,7 +625,7 @@ writes: %ld r_requests: %ld reads: %ld",
|
||||
if (cleanup)
|
||||
{
|
||||
pthread_mutex_destroy(&keycache->cache_lock);
|
||||
keycache->key_cache_inited= 0;
|
||||
keycache->key_cache_inited= keycache->can_be_used= 0;
|
||||
KEYCACHE_DEBUG_CLOSE;
|
||||
}
|
||||
DBUG_VOID_RETURN;
|
||||
@ -1315,7 +1315,7 @@ restart:
|
||||
return 0;
|
||||
}
|
||||
if (!(block->status & BLOCK_IN_FLUSH))
|
||||
{
|
||||
{
|
||||
hash_link->requests--;
|
||||
/*
|
||||
Remove block to invalidate the page in the block buffer
|
||||
@ -1326,9 +1326,9 @@ restart:
|
||||
buffer. Still we are guaranteed not to have any readers
|
||||
of the key part we are writing into until the block is
|
||||
removed from the cache as we set the BLOCL_REASSIGNED
|
||||
flag (see the code below that handles reading requests).
|
||||
flag (see the code below that handles reading requests).
|
||||
*/
|
||||
free_block(keycache, block);
|
||||
free_block(keycache, block);
|
||||
return 0;
|
||||
}
|
||||
/* Wait intil the page is flushed on disk */
|
||||
@ -1348,7 +1348,7 @@ restart:
|
||||
free_block(keycache, block);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
if (page_status == PAGE_READ &&
|
||||
(block->status & (BLOCK_IN_SWITCH | BLOCK_REASSIGNED)))
|
||||
{
|
||||
@ -1693,7 +1693,7 @@ byte *key_cache_read(KEY_CACHE *keycache,
|
||||
do
|
||||
{
|
||||
keycache_pthread_mutex_lock(&keycache->cache_lock);
|
||||
if (!keycache->can_be_used)
|
||||
if (!keycache->can_be_used)
|
||||
{
|
||||
keycache_pthread_mutex_unlock(&keycache->cache_lock);
|
||||
goto no_key_cache;
|
||||
@ -1829,7 +1829,7 @@ int key_cache_insert(KEY_CACHE *keycache,
|
||||
{
|
||||
uint offset;
|
||||
keycache_pthread_mutex_lock(&keycache->cache_lock);
|
||||
if (!keycache->can_be_used)
|
||||
if (!keycache->can_be_used)
|
||||
{
|
||||
keycache_pthread_mutex_unlock(&keycache->cache_lock);
|
||||
DBUG_RETURN(0);
|
||||
@ -1873,7 +1873,7 @@ int key_cache_insert(KEY_CACHE *keycache,
|
||||
|
||||
error= (block->status & BLOCK_ERROR);
|
||||
|
||||
dec_counter_for_resize_op(keycache);
|
||||
dec_counter_for_resize_op(keycache);
|
||||
|
||||
keycache_pthread_mutex_unlock(&keycache->cache_lock);
|
||||
|
||||
@ -1953,7 +1953,7 @@ int key_cache_write(KEY_CACHE *keycache,
|
||||
{
|
||||
uint offset;
|
||||
keycache_pthread_mutex_lock(&keycache->cache_lock);
|
||||
if (!keycache->can_be_used)
|
||||
if (!keycache->can_be_used)
|
||||
{
|
||||
keycache_pthread_mutex_unlock(&keycache->cache_lock);
|
||||
goto no_key_cache;
|
||||
@ -2028,7 +2028,7 @@ int key_cache_write(KEY_CACHE *keycache,
|
||||
dec_counter_for_resize_op(keycache);
|
||||
|
||||
keycache_pthread_mutex_unlock(&keycache->cache_lock);
|
||||
|
||||
|
||||
next_block:
|
||||
buff+= read_length;
|
||||
filepos+= read_length;
|
||||
@ -2149,7 +2149,7 @@ static int flush_cached_blocks(KEY_CACHE *keycache,
|
||||
if (!last_errno)
|
||||
last_errno= errno ? errno : -1;
|
||||
}
|
||||
/*
|
||||
/*
|
||||
Let to proceed for possible waiting requests to write to the block page.
|
||||
It might happen only during an operation to resize the key cache.
|
||||
*/
|
||||
|
@ -6645,7 +6645,7 @@ static const char slovak[]=
|
||||
"& H < ch <<< Ch <<< CH"
|
||||
"& O < \\u00F4 <<< \\u00D4"
|
||||
"& S < \\u0161 <<< \\u0160"
|
||||
"& Z < \\u017E <<< \\017D";
|
||||
"& Z < \\u017E <<< \\u017D";
|
||||
|
||||
static const char spanish2[]= /* Also good for Asturian and Galician */
|
||||
"&C < ch <<< Ch <<< CH"
|
||||
|
Reference in New Issue
Block a user