MySQL 8.0.39
Source Code Documentation
|
Utilities for converting data from the database file to the machine format. More...
Functions | |
static void | mach_write_to_1 (byte *b, ulint n) |
The following function is used to store data in one byte. More... | |
static void | mach_write_to_2 (byte *b, ulint n) |
The following function is used to store data in two consecutive bytes. More... | |
static uint8_t | mach_read_from_1 (const byte *b) |
The following function is used to fetch data from one byte. More... | |
static uint16_t | mach_read_from_2 (const byte *b) |
The following function is used to fetch data from 2 consecutive bytes. More... | |
static uint16_t | mach_encode_2 (ulint n) |
The following function is used to convert a 16-bit data item to the canonical format, for fast bytewise equality test against memory. More... | |
static ulint | mach_decode_2 (uint16 n) |
The following function is used to convert a 16-bit data item from the canonical format, for fast bytewise equality test against memory. More... | |
static void | mach_write_to_3 (byte *b, ulint n) |
The following function is used to store data in 3 consecutive bytes. More... | |
static uint32_t | mach_read_from_3 (const byte *b) |
The following function is used to fetch data from 3 consecutive bytes. More... | |
static void | mach_write_to_4 (byte *b, ulint n) |
The following function is used to store data in 4 consecutive bytes. More... | |
static uint32_t | mach_read_from_4 (const byte *b) |
The following function is used to fetch data from 4 consecutive bytes. More... | |
static ulint | mach_write_compressed (byte *b, ulint n) |
Writes a ulint in a compressed form where the first byte codes the length of the stored ulint. More... | |
static uint32_t | mach_get_compressed_size (ulint n) |
Return the size of an ulint when written in the compressed form. More... | |
static ulint | mach_read_compressed (const byte *b) |
Read a ulint in a compressed form. More... | |
static uint32_t | mach_read_next_compressed (const byte **b) |
Read a 32-bit integer in a compressed form. More... | |
static void | mach_write_to_8 (void *b, uint64_t n) |
The following function is used to store data in 8 consecutive bytes. More... | |
static uint64_t | mach_read_from_8 (const byte *b) |
The following function is used to fetch data from 8 consecutive bytes. More... | |
static void | mach_write_to_7 (byte *b, uint64_t n) |
The following function is used to store data in 7 consecutive bytes. More... | |
static uint64_t | mach_read_from_7 (const byte *b) |
The following function is used to fetch data from 7 consecutive bytes. More... | |
static void | mach_write_to_6 (byte *b, uint64_t n) |
The following function is used to store data in 6 consecutive bytes. More... | |
static uint64_t | mach_read_from_6 (const byte *b) |
The following function is used to fetch data from 6 consecutive bytes. More... | |
static ulint | mach_u64_write_compressed (byte *b, uint64_t n) |
Writes a 64-bit integer in a compressed form (5..9 bytes). More... | |
static uint64_t | mach_u64_read_next_compressed (const byte **b) |
Read a 64-bit integer in a compressed form. More... | |
static ulint | mach_u64_write_much_compressed (byte *b, uint64_t n) |
Writes a 64-bit integer in a compressed form (1..11 bytes). More... | |
static uint64_t | mach_u64_read_much_compressed (const byte *b) |
Reads a 64-bit integer in a compressed form. More... | |
static uint64_t | mach_read_next_much_compressed (const byte **b) |
Read a 64-bit integer in a compressed form. More... | |
static uint64_t | mach_u64_parse_compressed (const byte **ptr, const byte *end_ptr) |
Read a 64-bit integer in a compressed form. More... | |
static double | mach_double_read (const byte *b) |
Reads a double. More... | |
static void | mach_double_write (byte *b, double d) |
Writes a double. More... | |
static float | mach_float_read (const byte *b) |
Reads a float. More... | |
static void | mach_float_write (byte *b, float d) |
Writes a float. More... | |
static ulint | mach_read_from_n_little_endian (const byte *buf, ulint buf_size) |
static void | mach_write_to_n_little_endian (byte *dest, ulint dest_size, ulint n) |
Writes a ulint in the little-endian format. More... | |
static ulint | mach_read_from_2_little_endian (const byte *buf) |
Reads a ulint stored in the little-endian format. More... | |
static void | mach_write_to_2_little_endian (byte *dest, ulint n) |
Writes a ulint in the little-endian format. More... | |
static uint64_t | mach_read_int_type (const byte *src, ulint len, bool unsigned_type) |
Convert integral type from storage byte order (big endian) to host byte order. More... | |
static void | mach_swap_byte_order (byte *dest, const byte *from, ulint len) |
Swap byte ordering. More... | |
static void | mach_write_int_type (byte *dest, const byte *src, ulint len, bool usign) |
static void | mach_write_ulonglong (byte *dest, ulonglong src, ulint len, bool usign) |
static uint32_t | mach_read_ulint (const byte *ptr, mlog_id_t type) |
Read 1 to 4 bytes from a file page buffered in the buffer pool. More... | |
Utilities for converting data from the database file to the machine format.
Created 11/28/1995 Heikki Tuuri
The following function is used to convert a 16-bit data item from the canonical format, for fast bytewise equality test against memory.
n | in: 16-bit integer in canonical format |
|
inlinestatic |
Reads a double.
It is stored in a little-endian format.
b | in: pointer to memory from where to read |
|
inlinestatic |
Writes a double.
It is stored in a little-endian format.
b | in: pointer to memory where to write |
d | in: double |
|
inlinestatic |
The following function is used to convert a 16-bit data item to the canonical format, for fast bytewise equality test against memory.
n | in: integer in machine-dependent format |
|
inlinestatic |
Reads a float.
It is stored in a little-endian format.
b | in: pointer to memory from where to read |
|
inlinestatic |
Writes a float.
It is stored in a little-endian format.
b | in: pointer to memory where to write |
d | in: float |
|
inlinestatic |
Return the size of an ulint when written in the compressed form.
[in] | n | uint32_t integer (< 2^32) to be stored |
Read a ulint in a compressed form.
[in] | b | pointer to memory from where to read |
|
inlinestatic |
The following function is used to fetch data from one byte.
[in] | b | pointer to a byte to read |
|
inlinestatic |
The following function is used to fetch data from 2 consecutive bytes.
The most significant byte is at the lowest address.
[in] | b | pointer to 2 bytes to read |
Reads a ulint stored in the little-endian format.
buf | in: from where to read |
|
inlinestatic |
The following function is used to fetch data from 3 consecutive bytes.
The most significant byte is at the lowest address.
[in] | b | pointer to 3 bytes to read |
|
inlinestatic |
The following function is used to fetch data from 4 consecutive bytes.
The most significant byte is at the lowest address.
[in] | b | pointer to 4 bytes to read |
|
inlinestatic |
The following function is used to fetch data from 6 consecutive bytes.
The most significant byte is at the lowest address.
[in] | b | pointer to 6 bytes to read |
|
inlinestatic |
The following function is used to fetch data from 7 consecutive bytes.
The most significant byte is at the lowest address.
[in] | b | pointer to 7 bytes to read |
|
inlinestatic |
The following function is used to fetch data from 8 consecutive bytes.
The most significant byte is at the lowest address.
[in] | b | pointer to 8 bytes from where read |
Convert integral type from storage byte order (big endian) to host byte order.
src | in: where to read from |
len | in: length of src |
unsigned_type | in: signed or unsigned flag |
|
inlinestatic |
Read a 32-bit integer in a compressed form.
[in,out] | b | pointer to memory where to read; advanced by the number of bytes consumed |
|
inlinestatic |
Read a 64-bit integer in a compressed form.
[in,out] | b | pointer to memory where to read; advanced by the number of bytes consumed |
Read 1 to 4 bytes from a file page buffered in the buffer pool.
[in] | ptr | pointer where to read |
[in] | type | MLOG_1BYTE, MLOG_2BYTES, or MLOG_4BYTES |
Swap byte ordering.
dest | out: where to write |
from | in: where to read from |
len | in: length of src |
Read a 64-bit integer in a compressed form.
[in,out] | ptr | pointer to memory where to read; advanced by the number of bytes consumed, or set NULL if out of space |
[in] | end_ptr | end of the buffer |
|
inlinestatic |
Reads a 64-bit integer in a compressed form.
b | in: pointer to memory from where to read |
|
inlinestatic |
Read a 64-bit integer in a compressed form.
[in,out] | b | pointer to memory where to read; advanced by the number of bytes consumed |
Writes a 64-bit integer in a compressed form (5..9 bytes).
b | in: pointer to memory where to store |
n | in: 64-bit integer to be stored |
Writes a 64-bit integer in a compressed form (1..11 bytes).
b | in: pointer to memory where to store |
n | in: 64-bit integer to be stored |
Writes a ulint in a compressed form where the first byte codes the length of the stored ulint.
We look at the most significant bits of the byte. If the most significant bit is zero, it means 1-byte storage, else if the 2nd bit is 0, it means 2-byte storage, else if 3rd is 0, it means 3-byte storage, else if 4th is 0, it means 4-byte storage, else the storage is 5-byte.
[in] | b | pointer to memory where to store |
[in] | n | ulint integer (< 2^32) to be stored |
|
inlinestatic |
dest | in: where to write |
src | in: where to read from |
len | in: length of src |
usign | in: signed or unsigned flag |
The following function is used to store data in one byte.
[in] | b | pointer to byte where to store |
[in] | n | ulint integer to be stored, >= 0, < 256 |
The following function is used to store data in two consecutive bytes.
We store the most significant byte to the lower address.
[in] | b | pointer to 2 bytes where to store |
[in] | n | 2 byte integer to be stored, >= 0, < 64k |
Writes a ulint in the little-endian format.
dest | in: where to write |
n | in: unsigned long int to write |
The following function is used to store data in 3 consecutive bytes.
We store the most significant byte to the lowest address.
[in] | b | pointer to 3 bytes where to store |
[in] | n | 3 byte integer to be stored |
The following function is used to store data in 4 consecutive bytes.
We store the most significant byte to the lowest address.
[in] | b | pointer to 4 bytes where to store |
[in] | n | 4 byte integer to be stored |
|
inlinestatic |
The following function is used to store data in 6 consecutive bytes.
We store the most significant byte to the lowest address.
[in] | b | pointer to 6 bytes where to store |
[in] | n | 48-bit integer to write |
|
inlinestatic |
The following function is used to store data in 7 consecutive bytes.
We store the most significant byte to the lowest address.
[in] | b | pointer to 7 bytes where to store |
[in] | n | 56-bit integer |
|
inlinestatic |
The following function is used to store data in 8 consecutive bytes.
We store the most significant byte to the lowest address.
[in] | b | pointer to 8 bytes where to store |
[in] | n | 64-bit integer (< 2^64) to be stored |
Writes a ulint in the little-endian format.
dest | in: where to write |
dest_size | in: into how many bytes to write |
n | in: unsigned long int to write |