My Project
Public Types | Public Member Functions | Public Attributes | Friends
SEL_ARG Class Reference
Inheritance diagram for SEL_ARG:
Sql_alloc

List of all members.

Public Types

enum  leaf_color { BLACK, RED }
enum  Type {
  IMPOSSIBLE, ALWAYS, MAYBE, MAYBE_KEY,
  KEY_RANGE
}
enum  { MAX_SEL_ARGS = 16000 }

Public Member Functions

 SEL_ARG (SEL_ARG &)
 SEL_ARG (Field *, const uchar *, const uchar *)
 SEL_ARG (Field *field, uint8 part, uchar *min_value, uchar *max_value, uint8 min_flag, uint8 max_flag, uint8 maybe_flag)
 SEL_ARG (enum Type type_arg)
bool is_same (const SEL_ARG *arg) const
bool all_same (const SEL_ARG *arg) const
void merge_flags (SEL_ARG *arg)
void maybe_smaller ()
bool is_null_interval ()
int cmp_min_to_min (const SEL_ARG *arg) const
int cmp_min_to_max (const SEL_ARG *arg) const
int cmp_max_to_max (const SEL_ARG *arg) const
int cmp_max_to_min (const SEL_ARG *arg) const
SEL_ARGclone_and (SEL_ARG *arg)
SEL_ARGclone_first (SEL_ARG *arg)
SEL_ARGclone_last (SEL_ARG *arg)
SEL_ARGclone (RANGE_OPT_PARAM *param, SEL_ARG *new_parent, SEL_ARG **next)
bool copy_min (SEL_ARG *arg)
bool copy_max (SEL_ARG *arg)
void copy_min_to_min (SEL_ARG *arg)
void copy_min_to_max (SEL_ARG *arg)
void copy_max_to_min (SEL_ARG *arg)
int store_min (uint length, uchar **min_key, uint min_key_flag)
int store_max (uint length, uchar **max_key, uint max_key_flag)
int store_min_key (KEY_PART *key, uchar **range_key, uint *range_key_flag, uint last_part)
int store_max_key (KEY_PART *key, uchar **range_key, uint *range_key_flag, uint last_part)
SEL_ARGinsert (SEL_ARG *key)
SEL_ARGtree_delete (SEL_ARG *key)
SEL_ARGfind_range (SEL_ARG *key)
SEL_ARGrb_insert (SEL_ARG *leaf)
void test_use_count (SEL_ARG *root)
SEL_ARGfirst ()
const SEL_ARGfirst () const
SEL_ARGlast ()
void make_root ()
bool simple_key ()
void increment_use_count (long count)
void free_tree ()
SEL_ARG ** parent_ptr ()
bool is_singlepoint () const
SEL_ARGclone_tree (RANGE_OPT_PARAM *param)

Public Attributes

uint8 min_flag
uint8 max_flag
uint8 maybe_flag
uint8 part
uint8 maybe_null
uint16 elements
ulong use_count
Fieldfield
uchar * min_value
uchar * max_value
SEL_ARGleft
SEL_ARGright
SEL_ARGnext
SEL_ARGprev
SEL_ARGparent
SEL_ARGnext_key_part
enum SEL_ARG::leaf_color color
enum SEL_ARG::Type type

Friends

SEL_ARGrb_delete_fixup (SEL_ARG *root, SEL_ARG *key, SEL_ARG *par)
int test_rb_tree (SEL_ARG *element, SEL_ARG *parent)

Member Enumeration Documentation

Starting an effort to document this field:

IMPOSSIBLE: if the range predicate for this index is always false.

ALWAYS: if the range predicate for this index is always true.

KEY_RANGE: if there is a range predicate that can be used on this index.


Member Function Documentation

bool SEL_ARG::all_same ( const SEL_ARG arg) const [inline]

returns true if all the predicates in the keypart tree are equal

This gives the first SEL_ARG in the interval list, and the minimal element in the red-black tree

Returns:
SEL_ARG first SEL_ARG in the interval list
bool SEL_ARG::is_same ( const SEL_ARG arg) const [inline]

returns true if a range predicate is equal. Use all_same() to check for equality of all the predicates on this keypart.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines