Struct mariadb_sys::handler_bridge_vt
source · #[repr(C)]pub struct handler_bridge_vt {Show 36 fields
pub constructor: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut handlerton, arg3: *mut MEM_ROOT, arg4: *mut TABLE_SHARE)>,
pub destructor: Option<unsafe extern "C" fn(arg1: *mut handler_bridge)>,
pub index_type: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: uint) -> *const c_char>,
pub table_flags: Option<unsafe extern "C" fn(arg1: *const handler_bridge) -> ulonglong>,
pub index_flags: Option<unsafe extern "C" fn(arg1: *const handler_bridge, arg2: uint, arg3: uint, arg4: bool) -> ulong>,
pub max_supported_record_length: Option<unsafe extern "C" fn(arg1: *const handler_bridge) -> uint>,
pub max_supported_keys: Option<unsafe extern "C" fn(arg1: *const handler_bridge) -> uint>,
pub max_supported_key_parts: Option<unsafe extern "C" fn(arg1: *const handler_bridge) -> uint>,
pub max_supported_key_length: Option<unsafe extern "C" fn(arg1: *const handler_bridge) -> uint>,
pub scan_time: Option<unsafe extern "C" fn(arg1: *mut handler_bridge) -> IO_AND_CPU_COST>,
pub keyread_time: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: uint, arg3: ulong, arg4: ha_rows, arg5: ulonglong) -> IO_AND_CPU_COST>,
pub rnd_pos_time: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: ha_rows) -> IO_AND_CPU_COST>,
pub open: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const c_char, arg3: c_int, arg4: uint) -> c_int>,
pub close: Option<unsafe extern "C" fn(arg1: *mut handler_bridge) -> c_int>,
pub write_row: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const uchar) -> c_int>,
pub update_row: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const uchar, arg3: *const uchar) -> c_int>,
pub delete_row: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const uchar) -> c_int>,
pub index_read_map: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar, arg3: *const uchar, arg4: key_part_map, arg5: Type) -> c_int>,
pub index_next: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar) -> c_int>,
pub index_prev: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar) -> c_int>,
pub index_first: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar) -> c_int>,
pub index_last: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar) -> c_int>,
pub rnd_init: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: bool) -> c_int>,
pub rnd_end: Option<unsafe extern "C" fn(arg1: *mut handler_bridge) -> c_int>,
pub rnd_next: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar) -> c_int>,
pub rnd_pos: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar, arg3: *mut uchar) -> c_int>,
pub position: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const uchar)>,
pub info: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: uint) -> c_int>,
pub extra: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: Type) -> c_int>,
pub external_lock: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut THD, arg3: c_int) -> c_int>,
pub delete_all_rows: Option<unsafe extern "C" fn(arg1: *mut handler_bridge) -> c_int>,
pub records_in_range: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: uint, arg3: *const key_range, arg4: *const key_range, arg5: *mut page_range) -> ha_rows>,
pub delete_table: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const c_char) -> c_int>,
pub create: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const c_char, arg3: *mut TABLE, arg4: *mut HA_CREATE_INFO) -> c_int>,
pub check_if_supported_inplace_alter: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut TABLE, arg3: *mut Alter_inplace_info) -> Type>,
pub store_lock: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut THD, arg3: *mut *mut THR_LOCK_DATA, arg4: Type) -> *mut *mut THR_LOCK_DATA>,
}
Expand description
A C representation of the handler class.
For now all function pointers must be nonnull. We could change this to check for null then call the parent function if so at some point.
Fields§
§constructor: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut handlerton, arg3: *mut MEM_ROOT, arg4: *mut TABLE_SHARE)>
§destructor: Option<unsafe extern "C" fn(arg1: *mut handler_bridge)>
§index_type: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: uint) -> *const c_char>
§table_flags: Option<unsafe extern "C" fn(arg1: *const handler_bridge) -> ulonglong>
§index_flags: Option<unsafe extern "C" fn(arg1: *const handler_bridge, arg2: uint, arg3: uint, arg4: bool) -> ulong>
§max_supported_record_length: Option<unsafe extern "C" fn(arg1: *const handler_bridge) -> uint>
§max_supported_keys: Option<unsafe extern "C" fn(arg1: *const handler_bridge) -> uint>
§max_supported_key_parts: Option<unsafe extern "C" fn(arg1: *const handler_bridge) -> uint>
§max_supported_key_length: Option<unsafe extern "C" fn(arg1: *const handler_bridge) -> uint>
§scan_time: Option<unsafe extern "C" fn(arg1: *mut handler_bridge) -> IO_AND_CPU_COST>
§keyread_time: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: uint, arg3: ulong, arg4: ha_rows, arg5: ulonglong) -> IO_AND_CPU_COST>
§rnd_pos_time: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: ha_rows) -> IO_AND_CPU_COST>
§open: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const c_char, arg3: c_int, arg4: uint) -> c_int>
§close: Option<unsafe extern "C" fn(arg1: *mut handler_bridge) -> c_int>
§write_row: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const uchar) -> c_int>
§update_row: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const uchar, arg3: *const uchar) -> c_int>
§delete_row: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const uchar) -> c_int>
§index_read_map: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar, arg3: *const uchar, arg4: key_part_map, arg5: Type) -> c_int>
§index_next: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar) -> c_int>
§index_prev: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar) -> c_int>
§index_first: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar) -> c_int>
§index_last: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar) -> c_int>
§rnd_init: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: bool) -> c_int>
§rnd_end: Option<unsafe extern "C" fn(arg1: *mut handler_bridge) -> c_int>
§rnd_next: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar) -> c_int>
§rnd_pos: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar, arg3: *mut uchar) -> c_int>
§position: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const uchar)>
§info: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: uint) -> c_int>
§extra: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: Type) -> c_int>
§external_lock: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut THD, arg3: c_int) -> c_int>
§delete_all_rows: Option<unsafe extern "C" fn(arg1: *mut handler_bridge) -> c_int>
§records_in_range: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: uint, arg3: *const key_range, arg4: *const key_range, arg5: *mut page_range) -> ha_rows>
§delete_table: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const c_char) -> c_int>
§create: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const c_char, arg3: *mut TABLE, arg4: *mut HA_CREATE_INFO) -> c_int>
§check_if_supported_inplace_alter: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut TABLE, arg3: *mut Alter_inplace_info) -> Type>
§store_lock: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut THD, arg3: *mut *mut THR_LOCK_DATA, arg4: Type) -> *mut *mut THR_LOCK_DATA>
Trait Implementations§
Auto Trait Implementations§
impl RefUnwindSafe for handler_bridge_vt
impl Send for handler_bridge_vt
impl Sync for handler_bridge_vt
impl Unpin for handler_bridge_vt
impl UnwindSafe for handler_bridge_vt
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more