From f54f4b2c691b8d1f806a3add46ff2d896d842822 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 11 Aug 2004 18:06:20 +0500 Subject: [PATCH 1/2] ctype_uca.test, ctype_uca.result, ctype-uca.c: Slovak collation didn't work: typo fix in the tailoring rules strings/ctype-uca.c: Slovak collation didn't work: typo fix in the tailoring rules mysql-test/r/ctype_uca.result: Slovak collation didn't work: typo fix in the tailoring rules mysql-test/t/ctype_uca.test: Slovak collation didn't work: typo fix in the tailoring rules --- mysql-test/r/ctype_uca.result | 110 ++++++++++++++++++++++++++++++++++ mysql-test/t/ctype_uca.test | 2 +- strings/ctype-uca.c | 2 +- 3 files changed, 112 insertions(+), 2 deletions(-) diff --git a/mysql-test/r/ctype_uca.result b/mysql-test/r/ctype_uca.result index 2fd654da434..94fe15fed26 100644 --- a/mysql-test/r/ctype_uca.result +++ b/mysql-test/r/ctype_uca.result @@ -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) ÷ diff --git a/mysql-test/t/ctype_uca.test b/mysql-test/t/ctype_uca.test index 0ab46a5a637..187d21f9ab7 100644 --- a/mysql-test/t/ctype_uca.test +++ b/mysql-test/t/ctype_uca.test @@ -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; diff --git a/strings/ctype-uca.c b/strings/ctype-uca.c index 1b49abd0fbb..cecc3be5045 100644 --- a/strings/ctype-uca.c +++ b/strings/ctype-uca.c @@ -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" From 89e9a2e28ec1dd889fe7f9139f596da6cfe2b9c9 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 11 Aug 2004 15:25:02 +0200 Subject: [PATCH 2/2] bug fixed: when inited=0, can_be_used should be 0 too. (BUG#4901) mysys/mf_keycache.c: bug fixed: when inited=0, can_be_used should be 0 too. (BUG#4901) end spaces removed (no merge problems as this file doesn't change much) --- mysys/mf_keycache.c | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/mysys/mf_keycache.c b/mysys/mf_keycache.c index 32b3154b8ed..de3bfc5d30b 100644 --- a/mysys/mf_keycache.c +++ b/mysys/mf_keycache.c @@ -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. */