Drizzled Public API Documentation

mach0data.h File Reference
#include "univ.i"
#include "ut0byte.h"

Go to the source code of this file.

Functions

UNIV_INLINE void mach_write_to_1 (byte *b, ulint n)
 
UNIV_INLINE ulint mach_read_from_1 (const byte *b) __attribute__((nonnull
 
UNIV_INLINE void mach_write_to_2 (byte *b, ulint n)
 
UNIV_INLINE ulint mach_read_from_2 (const byte *b) __attribute__((nonnull
 
UNIV_INLINE uint16 mach_encode_2 (ulint n) __attribute__((const ))
 
UNIV_INLINE ulint mach_decode_2 (uint16 n) __attribute__((const ))
 
UNIV_INLINE void mach_write_to_3 (byte *b, ulint n)
 
UNIV_INLINE ulint mach_read_from_3 (const byte *b) __attribute__((nonnull
 
UNIV_INLINE void mach_write_to_4 (byte *b, ulint n)
 
UNIV_INLINE ulint mach_read_from_4 (const byte *b) __attribute__((nonnull
 
UNIV_INLINE ulint mach_write_compressed (byte *b, ulint n)
 
UNIV_INLINE ulint mach_get_compressed_size (ulint n) __attribute__((const ))
 
UNIV_INLINE ulint mach_read_compressed (const byte *b) __attribute__((nonnull
 
UNIV_INLINE void mach_write_to_6 (byte *b, ib_uint64_t id)
 
UNIV_INLINE ib_uint64_t mach_read_from_6 (const byte *b) __attribute__((nonnull
 
UNIV_INLINE void mach_write_to_7 (byte *b, ib_uint64_t n)
 
UNIV_INLINE ib_uint64_t mach_read_from_7 (const byte *b) __attribute__((nonnull
 
UNIV_INLINE void mach_write_to_8 (byte *b, ib_uint64_t n)
 
UNIV_INLINE ib_uint64_t mach_read_from_8 (const byte *b) __attribute__((nonnull
 
UNIV_INLINE ulint mach_ull_write_compressed (byte *b, ib_uint64_t n)
 
UNIV_INLINE ulint mach_ull_get_compressed_size (ib_uint64_t n)
 
UNIV_INLINE ib_uint64_t mach_ull_read_compressed (const byte *b) __attribute__((nonnull
 
UNIV_INLINE ulint mach_ull_write_much_compressed (byte *b, ib_uint64_t n)
 
UNIV_INLINE ulint mach_ull_get_much_compressed_size (ib_uint64_t n) __attribute__((const ))
 
UNIV_INLINE ib_uint64_t mach_ull_read_much_compressed (const byte *b) __attribute__((nonnull
 
UNIV_INTERN byte * mach_parse_compressed (byte *ptr, byte *end_ptr, ulint *val)
 
UNIV_INLINE byte * mach_ull_parse_compressed (byte *ptr, byte *end_ptr, ib_uint64_t *val)
 
UNIV_INLINE double mach_double_read (const byte *b) __attribute__((nonnull
 
UNIV_INLINE void mach_double_write (byte *b, double d)
 
UNIV_INLINE float mach_float_read (const byte *b) __attribute__((nonnull
 
UNIV_INLINE void mach_float_write (byte *b, float d)
 
UNIV_INLINE ulint mach_read_from_n_little_endian (const byte *buf, ulint buf_size) __attribute__((nonnull
 
UNIV_INLINE void mach_write_to_n_little_endian (byte *dest, ulint dest_size, ulint n)
 
UNIV_INLINE ulint mach_read_from_2_little_endian (const byte *buf) __attribute__((nonnull
 
UNIV_INLINE void mach_write_to_2_little_endian (byte *dest, ulint n)
 
UNIV_INLINE ullint mach_read_int_type (const byte *src, ulint len, ibool unsigned_type)
 

Variables

UNIV_INLINE ulint pure
 

Detailed Description

Utilities for converting data from the database file to the machine format.

Created 11/28/1995 Heikki Tuuri

Definition in file mach0data.h.

Function Documentation

UNIV_INLINE ulint mach_decode_2 ( uint16  n) const

The following function is used to convert a 16-bit data item from the canonical format, for fast bytewise equality test against memory.

Returns
integer in machine-dependent format
Parameters
nin: 16-bit integer in canonical format

Referenced by page_dir_find_owner_slot().

UNIV_INLINE double mach_double_read ( const byte *  b)

Reads a double. It is stored in a little-endian format.

Returns
double read
Parameters
bin: pointer to memory from where to read
UNIV_INLINE void mach_double_write ( byte *  b,
double  d 
)

Writes a double. It is stored in a little-endian format. in: double

Parameters
bin: pointer to memory where to write
UNIV_INLINE uint16 mach_encode_2 ( ulint  n) const

The following function is used to convert a 16-bit data item to the canonical format, for fast bytewise equality test against memory.

Returns
16-bit integer in canonical format
Parameters
nin: integer in machine-dependent format

Referenced by page_dir_find_owner_slot().

UNIV_INLINE float mach_float_read ( const byte *  b)

Reads a float. It is stored in a little-endian format.

Returns
float read
Parameters
bin: pointer to memory from where to read
UNIV_INLINE void mach_float_write ( byte *  b,
float  d 
)

Writes a float. It is stored in a little-endian format. in: float

Parameters
bin: pointer to memory where to write
UNIV_INLINE ulint mach_get_compressed_size ( ulint  n) const

Returns the size of an ulint when written in the compressed form.

Returns
compressed size in bytes
Parameters
nin: ulint integer to be stored
UNIV_INTERN byte* mach_parse_compressed ( byte *  ptr,
byte *  end_ptr,
ulint *  val 
)

Reads a ulint in a compressed form if the log record fully contains it.

Returns
pointer to end of the stored field, NULL if not complete out: read value

Reads a ulint in a compressed form if the log record fully contains it.

Returns
pointer to end of the stored field, NULL if not complete
Parameters
ptrin: pointer to buffer from where to read
end_ptrin: pointer to end of the buffer
valout: read value (< 2^32)

Definition at line 38 of file mach0data.cc.

References mach_parse_compressed(), mach_read_from_1(), mach_read_from_2(), mach_read_from_3(), mach_read_from_4(), and ut_ad.

Referenced by mach_parse_compressed(), mlog_parse_initial_log_record(), mlog_parse_nbytes(), page_cur_parse_insert_rec(), row_upd_index_parse(), row_upd_parse_sys_vals(), and trx_undo_parse_page_init().

UNIV_INLINE ulint mach_read_compressed ( const byte *  b)

Reads a ulint in a compressed form.

Returns
read integer
Parameters
bin: pointer to memory from where to read
UNIV_INLINE ulint mach_read_from_1 ( const byte *  b)
UNIV_INLINE ulint mach_read_from_2_little_endian ( const byte *  buf)

Reads a ulint stored in the little-endian format.

Returns
unsigned long int
Parameters
bufin: from where to read

Referenced by row_mysql_read_true_varchar().

UNIV_INLINE ulint mach_read_from_3 ( const byte *  b)

The following function is used to fetch data from 3 consecutive bytes. The most significant byte is at the lowest address.

Returns
ulint integer
Parameters
bin: pointer to 3 bytes

Referenced by dfield_print_also_hex(), and mach_parse_compressed().

UNIV_INLINE ib_uint64_t mach_read_from_6 ( const byte *  b)

The following function is used to fetch data from 6 consecutive bytes. The most significant byte is at the lowest address.

Returns
48-bit integer
Parameters
bin: pointer to 6 bytes

Referenced by dfield_print_also_hex().

UNIV_INLINE ib_uint64_t mach_read_from_7 ( const byte *  b)

The following function is used to fetch data from 7 consecutive bytes. The most significant byte is at the lowest address.

Returns
56-bit integer
Parameters
bin: pointer to 7 bytes

Referenced by dfield_print_also_hex().

UNIV_INLINE ulint mach_read_from_n_little_endian ( const byte *  buf,
ulint  buf_size 
)

Reads a ulint stored in the little-endian format.

Returns
unsigned long int
Parameters
bufin: from where to read
buf_sizein: from how many bytes to read

Referenced by row_mysql_read_blob_ref().

UNIV_INLINE ullint mach_read_int_type ( const byte *  src,
ulint  len,
ibool  unsigned_type 
)

Convert integral type from storage byte order (big endian) to host byte order.

Returns
integer value in: signed or unsigned flag
Parameters
srcin: where to read from
lenin: length of src
UNIV_INLINE ulint mach_ull_get_compressed_size ( ib_uint64_t  n)

Returns the size of a 64-bit integer when written in the compressed form.

Returns
compressed size in bytes in: 64-bit integer to be stored

Referenced by trx_undo_update_rec_get_sys_cols().

UNIV_INLINE ulint mach_ull_get_much_compressed_size ( ib_uint64_t  n) const

Returns the size of a 64-bit integer when written in the compressed form.

Returns
compressed size in bytes
Parameters
nin: 64-bit integer to be stored

Referenced by trx_undo_rec_get_pars().

UNIV_INLINE byte* mach_ull_parse_compressed ( byte *  ptr,
byte *  end_ptr,
ib_uint64_t *  val 
)

Reads a 64-bit integer in a compressed form if the log record fully contains it.

Returns
pointer to end of the stored field, NULL if not complete out: read value
Parameters
ptrin: pointer to buffer from where to read
end_ptrin: pointer to end of the buffer

Referenced by mlog_parse_nbytes(), row_upd_parse_sys_vals(), and trx_undo_parse_page_header().

UNIV_INLINE ib_uint64_t mach_ull_read_compressed ( const byte *  b)

Reads a 64-bit integer in a compressed form.

Returns
the value read
Parameters
bin: pointer to memory from where to read

Referenced by dfield_print_also_hex(), and trx_undo_update_rec_get_sys_cols().

UNIV_INLINE ib_uint64_t mach_ull_read_much_compressed ( const byte *  b)

Reads a 64-bit integer in a compressed form.

Returns
the value read
Parameters
bin: pointer to memory from where to read

Referenced by trx_undo_rec_get_pars().

UNIV_INLINE ulint mach_ull_write_compressed ( byte *  b,
ib_uint64_t  n 
)

Writes a 64-bit integer in a compressed form (5..9 bytes).

Returns
size in bytes in: 64-bit integer to be stored
Parameters
bin: pointer to memory where to store

Referenced by mlog_write_ull(), and row_upd_write_sys_vals_to_log().

UNIV_INLINE ulint mach_ull_write_much_compressed ( byte *  b,
ib_uint64_t  n 
)

Writes a 64-bit integer in a compressed form (1..11 bytes).

Returns
size in bytes in: 64-bit integer to be stored
Parameters
bin: pointer to memory where to store
UNIV_INLINE ulint mach_write_compressed ( byte *  b,
ulint  n 
)

Writes a ulint in a compressed form (1..5 bytes).

Returns
stored size in bytes in: ulint integer to be stored
Parameters
bin: pointer to memory where to store

Referenced by mlog_write_ulint(), row_upd_index_write_log(), and row_upd_write_sys_vals_to_log().

UNIV_INLINE void mach_write_to_1 ( byte *  b,
ulint  n 
)

The following function is used to store data in one byte. in: ulint integer to be stored, >= 0, < 256

Parameters
bin: pointer to byte where to store

Referenced by mlog_parse_nbytes(), mlog_write_ulint(), row_mysql_store_true_var_len(), and row_upd_index_write_log().

UNIV_INLINE void mach_write_to_2 ( byte *  b,
ulint  n 
)

The following function is used to store data in two consecutive bytes. We store the most significant byte to the lower address. in: ulint integer to be stored, >= 0, < 64k

Parameters
bin: pointer to two bytes where to store

Referenced by buf_page_create(), fil_page_set_type(), mlog_log_string(), mlog_open_and_write_index(), mlog_parse_nbytes(), mlog_write_ulint(), mlog_write_ull(), page_create_zip(), page_zip_dir_insert(), and trx_undo_parse_add_undo_rec().

UNIV_INLINE void mach_write_to_2_little_endian ( byte *  dest,
ulint  n 
)

Writes a ulint in the little-endian format. in: unsigned long int to write

Parameters
destin: where to write

Referenced by row_mysql_store_true_var_len().

UNIV_INLINE void mach_write_to_3 ( byte *  b,
ulint  n 
)

The following function is used to store data in 3 consecutive bytes. We store the most significant byte to the lowest address. in: ulint integer to be stored

Parameters
bin: pointer to 3 bytes where to store
UNIV_INLINE void mach_write_to_4 ( byte *  b,
ulint  n 
)

The following function is used to store data in four consecutive bytes. We store the most significant byte to the lowest address. in: ulint integer to be stored

Parameters
bin: pointer to four bytes where to store

Referenced by buf_flush_init_for_writing(), buf_LRU_file_dump(), buf_LRU_free_block(), dict_index_build_node_ptr(), fil_create_new_single_table_tablespace(), fsp_header_init_fields(), mlog_parse_nbytes(), mlog_write_ulint(), page_copy_rec_list_end_to_created_page(), pars_info_add_int4_literal(), row_search_for_mysql(), sym_tab_add_int_lit(), and trx_sys_doublewrite_init_or_restore_pages().

UNIV_INLINE void mach_write_to_6 ( byte *  b,
ib_uint64_t  id 
)

The following function is used to store data in 6 consecutive bytes. We store the most significant byte to the lowest address. in: 48-bit integer

Parameters
bin: pointer to 6 bytes where to store

Referenced by page_zip_write_trx_id_and_roll_ptr().

UNIV_INLINE void mach_write_to_7 ( byte *  b,
ib_uint64_t  n 
)

The following function is used to store data in 7 consecutive bytes. We store the most significant byte to the lowest address. in: 56-bit integer

Parameters
bin: pointer to 7 bytes where to store

Referenced by page_zip_write_trx_id_and_roll_ptr().

UNIV_INLINE void mach_write_to_8 ( byte *  b,
ib_uint64_t  n 
)

The following function is used to store data in 8 consecutive bytes. We store the most significant byte to the lowest address. in: 64-bit integer to be stored

Parameters
bin: pointer to 8 bytes where to store

Referenced by buf_flush_init_for_writing(), dict_load_table_on_id(), dict_process_sys_fields_rec(), fil_reset_too_high_lsns(), mlog_parse_nbytes(), mlog_write_ull(), page_set_max_trx_id(), pars_info_add_ull_literal(), recv_recover_page_func(), and row_truncate_table_for_mysql().

UNIV_INLINE void mach_write_to_n_little_endian ( byte *  dest,
ulint  dest_size,
ulint  n 
)

Writes a ulint in the little-endian format. in: unsigned long int to write

Parameters
destin: where to write
dest_sizein: into how many bytes to write

Referenced by row_mysql_store_blob_ref().