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 | a6597812a8661841d642303ad5d945bb0b7fb6c2 (patch) | |
tree | 52371dd625fda3d1fb00ecdd6e3cb8260fabeb66 /mysys | |
parent | 64d48cd6d1d668256bdb639c6467be6112c58164 (diff) | |
download | mariadb-git-a6597812a8661841d642303ad5d945bb0b7fb6c2.tar.gz |
New fields in CHARSET_INFO structure to optimize searching for
binary and primary collations in the future
Diffstat (limited to 'mysys')
-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; |