Os Vetores de Definições de Caracteres
to_lower[]
e to_upper[]
são vetores simples que definemm os caracteres minúsculos e maísculos correspondentes a cada membro do conjunto de caracteres. Por exemplo:
to_lower['A'] deve conter 'a' to_upper['a'] deve conter 'A'
sort_order[]
é um mapa indicando como os caracteres devem ser ordenados para propósitos de comparação e ordenação. Para vários conjuntos de caracteres, isto é o mesmo que to_upper[]
(que significa ordenar em caso insensitivo). O MariaDB ordenará caracteres baseado no valor de sort_order[caractere]
. Para regras mais complicadas de ordenação, veja a discussão sobre ordenação de string abaixo. Leia "Suporte à Ordenação de Strings".
ctype[]
é um vetor com valores binários, com um elemento para cada caracter. (Note que to_lower[]
, to_upper[]
e sort_order[]
são indexados pelo valor do caracter, mas o ctype[]
é indexado pelo valor do caracter + 1. Este é um antigo legado para tratamento de EOF.)
Pode-se encontrar as seguintes máscaras binárias de definições em m_ctype.h
:
#define _U 01 /* Maísculo */ #define _L 02 /* Minúsculo */ #define _N 04 /* Numeral (digito) */ #define _S 010 /* Caractere de espaço */ #define _P 020 /* Pontuação */ #define _C 040 /* Caractere de controle */ #define _B 0100 /* Branco */ #define _X 0200 /* Digito heXadecimal */
A entrada ctype[]
para cada caracter deve ser a união dos valores da máscara binária que descrevem o caracter. Por exemplo, 'A'
é um caracter maiúsculo (_U
) bem como um dígito hexadecimal (_X
), portanto ctype['A'+1]
deve conter o valor: