GNU Info

Info Node: (mysql.info)Character arrays

(mysql.info)Character arrays


Next: String collating Prev: Adding character set Up: Localization
Enter node , (file) or (file)node

The character definition arrays
-------------------------------

`to_lower[]' and `to_upper[]' are simple arrays that hold the lowercase
and uppercase characters corresponding to each member of the character
set.  For example:

     to_lower['A'] should contain 'a'
     to_upper['a'] should contain 'A'

`sort_order[]' is a map indicating how characters should be ordered for
comparison and sorting purposes.  For many character sets, this is the
same as `to_upper[]' (which means sorting will be case insensitive).
MySQL will sort characters based on the value of
`sort_order[character]'.  For more complicated sorting rules, see the
discussion of string collating below. Note: String collating.

`ctype[]' is an array of bit values, with one element for one character.
(Note that `to_lower[]', `to_upper[]', and `sort_order[]' are indexed
by character value, but `ctype[]' is indexed by character value + 1.
This is an old legacy to be able to handle EOF.)

You can find the following bitmask definitions in `m_ctype.h':

     #define _U      01      /* Uppercase */
     #define _L      02      /* Lowercase */
     #define _N      04      /* Numeral (digit) */
     #define _S      010     /* Spacing character */
     #define _P      020     /* Punctuation */
     #define _C      040     /* Control character */
     #define _B      0100    /* Blank */
     #define _X      0200    /* heXadecimal digit */

The `ctype[]' entry for each character should be the union of the
applicable bitmask values that describe the character.  For example,
`'A'' is an uppercase character (`_U') as well as a hexadecimal digit
(`_X'), so `ctype['A'+1]' should contain the value:

     _U + _X = 01 + 0200 = 0201


automatically generated by info2www version 1.2.2.9