MySQL 9.0.0
Source Code Documentation
|
Utilities for converting data from the database file to the machine format. More...
Go to the source code of this file.
Functions | |
static void | mach_write_to_1 (byte *b, ulint n) |
The following function is used to store data in one byte. More... | |
static uint8_t | mach_read_from_1 (const byte *b) |
The following function is used to fetch data from 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 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) |
Write a ulint in a compressed form (1..5 bytes). More... | |
static uint32_t | mach_get_compressed_size (ulint n) |
Return the size of an ulint when written in the 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_6 (byte *b, uint64_t id) |
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 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_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 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... | |
uint64_t | mach_parse_u64_much_compressed (const byte **ptr, const byte *end_ptr) |
Read a 64-bit integer in a much compressed form. More... | |
uint32_t | mach_parse_compressed (const byte **ptr, const byte *end_ptr) |
Read a 32-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) |
Reads a ulint stored in the little-endian format. More... | |
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_write_int_type (byte *dest, const byte *src, ulint len, bool usign) |
Convert integral type from host byte order to (big-endian) storage byte order. More... | |
static void | mach_write_ulonglong (byte *dest, ulonglong src, ulint len, bool usign) |
Convert a ulonglong integer from host byte order to (big-endian) storage byte order. More... | |
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... | |
static void | mach_write_ulint (byte *ptr, ulint val, mlog_id_t type) |
Writes 1, 2 or 4 bytes to a file page. 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.
[in] | n | 16-bit integer in canonical format |
|
inlinestatic |
Reads a double.
It is stored in a little-endian format.
|
inlinestatic |
Writes a double.
It is stored in a little-endian format.
[in] | b | pointer to memory where to write |
[in] | d | 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.
[in] | n | integer in machine-dependent format |
|
inlinestatic |
Reads a float.
It is stored in a little-endian format.
|
inlinestatic |
Writes a float.
It is stored in a little-endian format.
[in] | b | pointer to memory where to write |
[in] | d | float |
|
inlinestatic |
Return the size of an ulint when written in the compressed form.
[in] | n | ulint integer to be stored |
Read a 32-bit integer in a compressed form.
[in,out] | ptr | pointer to memory from where to read; advanced by the number of bytes consumed, or set NULL if out of space |
[in] | end_ptr | end of the buffer |
Read a 64-bit integer in a much compressed form.
[in,out] | ptr | pointer to memory from 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 |
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 where to store |
Reads a ulint stored in the little-endian format.
|
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 to read |
Reads a ulint stored in the little-endian format.
[in] | buf | From where to read. |
[in] | buf_size | From how many bytes to read. |
Convert integral type from storage byte order (big endian) to host byte order.
[in] | src | where to read from |
[in] | len | length of src |
[in] | unsigned_type | 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 |
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 |
Read a 64-bit integer in a compressed form.
[in,out] | ptr | pointer to memory from 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.
[in] | b | 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).
[in] | b | pointer to memory where to store |
[in] | n | 64-bit integer to be stored |
Writes a 64-bit integer in a compressed form (1..11 bytes).
[in] | b | pointer to memory where to store |
[in] | n | 64-bit integer to be stored |
Write a ulint in a compressed form (1..5 bytes).
[in] | b | pointer to memory where to store |
[in] | n | ulint integer to be stored |
|
inlinestatic |
Convert integral type from host byte order to (big-endian) storage byte order.
[in] | dest | where to write |
[in] | src | where to read |
[in] | len | length of src |
[in] | usign | 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 | One byte 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.
[in] | dest | where to write |
[in] | n | 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] | id | 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 to be stored |
Writes a ulint in the little-endian format.
[in] | dest | where to write |
[in] | dest_size | into how many bytes to write |
[in] | n | unsigned long int to write |
Writes 1, 2 or 4 bytes to a file page.
[in] | ptr | pointer where to write |
[in] | val | value to write |
[in] | type | MLOG_1BYTE, MLOG_2BYTES, MLOG_4BYTES |