MySQL 8.3.0
Source Code Documentation
Index_lookup Struct Reference

Structure used for index-based lookups. More...

#include <sql_opt_exec_shared.h>

Public Member Functions

 Index_lookup ()
 
bool impossible_null_ref () const
 
bool has_guarded_conds () const
 Check if there are triggered/guarded conditions that might be 'switched off' by the subquery code when executing 'Full scan on NULL key' subqueries. More...
 

Public Attributes

bool key_err
 
uint key_parts
 num of ... More...
 
uint key_length
 length of key_buff More...
 
int key
 key no More...
 
ucharkey_buff
 value to look for with key More...
 
ucharkey_buff2
 key_buff+key_length More...
 
store_key ** key_copy
 Used to store the value from each keypart field. More...
 
Item ** items
 val()'s for each keypart More...
 
bool ** cond_guards
 
key_part_map null_rejecting
 
table_map depend_map
 Table depends on these tables. More...
 
ucharnull_ref_key
 
ha_rows use_count
 
bool disable_cache
 
ulonglongkeypart_hash = nullptr
 

Detailed Description

Structure used for index-based lookups.

Constructor & Destructor Documentation

◆ Index_lookup()

Index_lookup::Index_lookup ( )
inline

Member Function Documentation

◆ has_guarded_conds()

bool Index_lookup::has_guarded_conds ( ) const
inline

Check if there are triggered/guarded conditions that might be 'switched off' by the subquery code when executing 'Full scan on NULL key' subqueries.

Returns
true if there are guarded conditions, false otherwise

◆ impossible_null_ref()

bool Index_lookup::impossible_null_ref ( ) const
inline
Returns
whether the reference contains NULL values which could never give a match.

Member Data Documentation

◆ cond_guards

bool** Index_lookup::cond_guards

◆ depend_map

table_map Index_lookup::depend_map

Table depends on these tables.

◆ disable_cache

bool Index_lookup::disable_cache

◆ items

Item** Index_lookup::items

val()'s for each keypart

◆ key

int Index_lookup::key

key no

◆ key_buff

uchar* Index_lookup::key_buff

value to look for with key

◆ key_buff2

uchar* Index_lookup::key_buff2

key_buff+key_length

◆ key_copy

store_key** Index_lookup::key_copy

Used to store the value from each keypart field.

These values are used for ref access. If key_copy[key_part] == NULL it means that the value is constant and does not need to be reevaluated

◆ key_err

bool Index_lookup::key_err

◆ key_length

uint Index_lookup::key_length

length of key_buff

◆ key_parts

uint Index_lookup::key_parts

num of ...

◆ keypart_hash

ulonglong* Index_lookup::keypart_hash = nullptr

◆ null_ref_key

uchar* Index_lookup::null_ref_key

◆ null_rejecting

key_part_map Index_lookup::null_rejecting
(null_rejecting & (1<<i))
key_part_map null_rejecting
Definition: sql_opt_exec_shared.h:102

means the condition is '=' and no matching rows will be produced if items[i] IS NULL (see add_not_null_conds())

◆ use_count

ha_rows Index_lookup::use_count

The documentation for this struct was generated from the following file: