My Project
Public Attributes
st_nested_join Struct Reference

#include <table.h>

List of all members.

Public Attributes

List< TABLE_LISTjoin_list
table_map used_tables
table_map not_null_tables
struct st_join_tablefirst_nested
uint nj_total
uint nj_counter
nested_join_map nj_map
table_map sj_depends_on
table_map sj_corr_tables
uint query_block_id
List< Itemsj_outer_exprs
List< Itemsj_inner_exprs
Semijoin_mat_optimize sjm

Detailed Description

Struct st_nested_join is used to represent how tables are connected through outer join operations and semi-join operations to form a query block. Out of the parser, inner joins are also represented by st_nested_join structs, but these are later flattened out by simplify_joins(). Some outer join nests are also flattened, when it can be determined that they can be processed as inner joins instead of outer joins.

Member Data Documentation

Used for pointing out the first table in the plan being covered by this join nest. It is used exclusively within make_outerjoin_info().

Used to count tables in the nested join in 2 isolated places: 1. In make_outerjoin_info(). 2. check_interleaving_with_nj/backout_nj_state (these are called by the join optimizer. Before each use the counters are zeroed by reset_nj_counters.

nested_join_map st_nested_join::nj_map

Bit identifying this nested join. Only nested joins representing the outer join structure need this, other nests have bit set to zero.

Number of tables and outer join nests administered by this nested join object for the sake of cost analysis. Includes direct member tables as well as tables included through semi-join nests, but notice that semi-join nests themselves are not counted.

Query block id if this struct is generated from a subquery transform.

Outer non-trivially correlated tables, a true subset of sj_depends_on

Tables outside the semi-join that are used within the semi-join's ON condition (ie. the subquery WHERE clause and optional IN equalities).

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