Documentation Home
MySQL Internals Manual

MySQL Internals Manual  /  ...  /  The strings Directory

A.1.32 The strings Directory

The string library.

Many of the files in this subdirectory are equivalent to well-known functions that appear in most C string libraries. For those, there is documentation available in most compiler handbooks.

On the other hand, some of the files are MySQL additions or improvements. Often the MySQL changes are attempts to optimize the standard libraries. It doesn't seem that anyone tried to optimize for recent Pentium class processors, though.

The .C files are:

  • bchange.c --- short replacement routine written by Monty Widenius in 1987

  • bcmp.c --- binary compare, rarely used

  • bcopy-duff.c --- block copy: attempt to copy memory blocks faster than cmemcpy

  • bfill.c --- byte fill, to fill a buffer with (length) copies of a byte

  • bmove.c --- block move

  • bmove512.c --- "should be the fastest way to move a multiple of 512 bytes"

  • bmove_upp.c --- bmove.c variant, starting with last byte

  • bzero.c --- something like bfill with an argument of 0

  • conf_to_src.c --- reading a configuration file

  • ctype*.c --- string handling programs for each char type MySQL handles

  • decimal.c --- for decimal and numeric conversions

  • do_ctype.c --- display case-conversion and sort-conversion tables

  • dump_map.c --- standalone file

  • int2str.c --- integer-to-string

  • is_prefix.c --- checks whether string1 starts with string2

  • llstr.c --- convert long long to temporary-buffer string, return pointer

  • longlong2str.c --- ditto, but to argument-buffer

  • memcmp.c --- memory compare

  • memcpy.c --- memory copy

  • memset.c --- memory set

  • my_strtoll10.c --- longlong2str for radix 10

  • my_vsnprintf.c --- variant of printf

  • r_strinstr.c --- see if one string is within another

  • str2int.c --- convert string to integer

  • strappend.c --- fill up a string to n characters

  • strcat.c --- concatenate strings

  • strcend.c --- point to where a character C occurs within str, or NULL

  • strchr.c --- point to first place in string where character occurs

  • strcmp.c --- compare two strings

  • strcont.c --- point to where any one of a set of characters appears

  • strend.c --- point to the '\0' byte which terminates str

  • strfill.c --- fill a string with n copies of a byte

  • strinstr.c --- find string within string

  • strlen.c --- return length of string in bytes

  • strmake.c --- create new string from old string with fixed length, append end \0 if needed

  • strmov.c --- move source to dest and return pointer to end

  • strnlen.c --- return min(length of string, n)

  • strnmov.c --- move source to dest for source size, or for n bytes

  • strrchr.c --- find a character within string, searching from end

  • strstr.c --- find an instance of pattern within source

  • strto.c --- string to long, to long long, to unsigned long, etc.

  • strtod.c --- string to double

  • strtol.c --- string to long

  • strtoll.c --- string to long long

  • strtoul.c --- string to unsigned long

  • strtoull.c --- string to unsigned long long

  • strxmov.c --- move a series of concatenated source strings to dest

  • strxnmov.c --- like strxmov.c but with a maximum length n

  • str_test.c --- test of all the string functions encoded in assembler

  • uca-dump.c --- shows unicode collation algorithm dump

  • udiv.c --- unsigned long divide, for operating systems that don't support these

  • utr11-dump.c --- dump east Asian wide text file

  • xml.c --- read and parse XML strings; used to read character definition information stored in /sql/share/charsets

There are also four .ASM files --- macros.asm, ptr_cmp.asm, strings.asm, and strxmov.asm --- which can replace some of the C-program functions. But again, they look like optimizations for old members of the Intel processor family.