diff options
author | unknown <bar@bar.mysql.r18.ru> | 2003-03-05 16:43:10 +0400 |
---|---|---|
committer | unknown <bar@bar.mysql.r18.ru> | 2003-03-05 16:43:10 +0400 |
commit | b3993c1b30d7411f57b26a7f7f1df3ee5b5d00af (patch) | |
tree | 52371dd625fda3d1fb00ecdd6e3cb8260fabeb66 /mysys/charset.c | |
parent | a55145920067bf09db11eb349d63ffc47ff8e21a (diff) | |
download | mariadb-git-b3993c1b30d7411f57b26a7f7f1df3ee5b5d00af.tar.gz |
New fields in CHARSET_INFO structure to optimize searching for
binary and primary collations in the future
Diffstat (limited to 'mysys/charset.c')
-rw-r--r-- | mysys/charset.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/mysys/charset.c b/mysys/charset.c index cfe1dcefcaf..b1abd460c2e 100644 --- a/mysys/charset.c +++ b/mysys/charset.c @@ -257,7 +257,13 @@ static int add_collation(CHARSET_INFO *cs) return MY_XML_ERROR; bzero((void*)all_charsets[cs->number],sizeof(CHARSET_INFO)); } + + if (cs->primary_number == cs->number) + cs->state |= MY_CS_PRIMARY; + if (cs->primary_number == cs->number) + cs->state |= MY_CS_BINSORT; + if (!(all_charsets[cs->number]->state & MY_CS_COMPILED)) { simple_cs_copy_data(all_charsets[cs->number],cs); @@ -267,6 +273,10 @@ static int add_collation(CHARSET_INFO *cs) all_charsets[cs->number]->state |= MY_CS_LOADED; } } + else + { + all_charsets[cs->number]->state |= cs->state; + } cs->number= 0; cs->name= NULL; cs->state= 0; |