InnoDB Plugin  1.0
Macros | Functions
ut0rnd.h File Reference
#include "univ.i"
#include "ut0byte.h"
#include "ut0rnd.ic"
Include dependency graph for ut0rnd.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define UT_END_OF_FIELD   257

Functions

UNIV_INLINE void ut_rnd_set_seed (ulint seed)
UNIV_INLINE ulint ut_rnd_gen_next_ulint (ulint rnd)
UNIV_INLINE ulint ut_rnd_gen_ulint (void)
UNIV_INLINE ulint ut_rnd_interval (ulint low, ulint high)
UNIV_INLINE ibool ut_rnd_gen_ibool (void)
UNIV_INLINE ulint ut_hash_ulint (ulint key, ulint table_size)
UNIV_INLINE ulint ut_fold_ull (ib_uint64_t d))
UNIV_INLINE ulint ut_fold_string (const char *str))
UNIV_INTERN ulint ut_find_prime (ulint n))
UNIV_INLINE ulint ut_fold_ulint_pair (ulint n1, ulint n2))
UNIV_INLINE ulint ut_fold_binary (const byte *str, ulint len))

Detailed Description

Random numbers and hashing

Created 1/20/1994 Heikki Tuuri

Macro Definition Documentation

#define UT_END_OF_FIELD   257
The 'character code' for end of field or string (used

in folding records

Function Documentation

UNIV_INTERN ulint ut_find_prime ( ulint  n)

Looks for a prime number slightly greater than the given argument. The prime is chosen so that it is not near any power of 2.

Returns
prime
Parameters
nin: positive number > 100
UNIV_INLINE ulint ut_fold_binary ( const byte *  str,
ulint  len 
)

Folds a binary string.

Returns
folded value
Parameters
strin: string of bytes
lenin: length
UNIV_INLINE ulint ut_fold_string ( const char *  str)

Folds a character string ending in the null character.

Returns
folded value
Parameters
strin: null-terminated string
UNIV_INLINE ulint ut_fold_ulint_pair ( ulint  n1,
ulint  n2 
)

Folds a pair of ulints.

Returns
folded value
Parameters
n1in: ulint
n2in: ulint
UNIV_INLINE ulint ut_fold_ull ( ib_uint64_t  d)

Folds a 64-bit integer.

Returns
folded value
Parameters
din: 64-bit integer
UNIV_INLINE ulint ut_hash_ulint ( ulint  key,
ulint  table_size 
)

The following function generates a hash value for a ulint integer to a hash table of size table_size, which should be a prime or some random number to work reliably.

Returns
hash value in: hash table size

The following function generates a hash value for a ulint integer to a hash table of size table_size, which should be a prime or some random number for the hash table to work reliably.

Returns
hash value
Parameters
keyin: value to be hashed
table_sizein: hash table size
UNIV_INLINE ibool ut_rnd_gen_ibool ( void  )

Generates a random iboolean value.

Returns
the random value
UNIV_INLINE ulint ut_rnd_gen_next_ulint ( ulint  rnd)

The following function generates a series of 'random' ulint integers.

Returns
the next 'random' number in: the previous random number value

The following function generates a series of 'random' ulint integers.

Returns
the next 'random' number
Parameters
rndin: the previous random number value
UNIV_INLINE ulint ut_rnd_gen_ulint ( void  )

The following function generates 'random' ulint integers which enumerate the value space (let there be N of them) of ulint integers in a pseudo-random fashion. Note that the same integer is repeated always after N calls to the generator.

Returns
the 'random' number

The following function generates 'random' ulint integers which enumerate the value space of ulint integers in a pseudo random fashion. Note that the same integer is repeated always after 2 to power 32 calls to the generator (if ulint is 32-bit).

Returns
the 'random' number
UNIV_INLINE ulint ut_rnd_interval ( ulint  low,
ulint  high 
)

Generates a random integer from a given interval.

Returns
the 'random' number in: high limit; can generate also this value

Generates a random integer from a given interval.

Returns
the 'random' number
Parameters
lowin: low limit; can generate also this value
highin: high limit; can generate also this value
UNIV_INLINE void ut_rnd_set_seed ( ulint  seed)

This is used to set the random number seed. in: seed

This is used to set the random number seed.

Parameters
seedin: seed