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

List of all members.

Public Types

enum  Type {
  IMPOSSIBLE, ALWAYS, MAYBE, KEY,
  KEY_SMALLER
}

Public Member Functions

 SEL_TREE (enum Type type_arg)
 SEL_TREE (SEL_TREE *arg, RANGE_OPT_PARAM *param)

Public Attributes

enum SEL_TREE::Type type
SEL_ARGkeys [MAX_KEY]
key_map keys_map
List< SEL_IMERGEmerges
key_map ror_scans_map
uint n_ror_scans
struct st_ror_scan_info ** ror_scans
struct st_ror_scan_info ** ror_scans_end

Member Enumeration Documentation

Starting an effort to document this field:

IMPOSSIBLE: if keys[i]->type == SEL_ARG::IMPOSSIBLE for some i, then type == SEL_TREE::IMPOSSIBLE. Rationale: if the predicate for one of the indexes is always false, then the full predicate is also always false.

ALWAYS: if either (keys[i]->type == SEL_ARG::ALWAYS) or (keys[i] == NULL) for all i, then type == SEL_TREE::ALWAYS. Rationale: the range access method will not be able to filter out any rows when there are no range predicates that can be used to filter on any index.

KEY: There are range predicates that can be used on at least one index.

KEY_SMALLER: There are range predicates that can be used on at least one index. In addition, there are predicates that cannot be directly utilized by range access on key parts in the same index. These unused predicates makes it probable that the row estimate for range access on this index is too pessimistic.


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