Neoview Query Guide (R2.2)

in-memory hash table. If the inner table is too large, it is subject to overflow to disk, which is
expensive and slow. The original row order is not guaranteed unless ordered hash joins are used.
HYBRID_HASH_JOIN Operator
The HYBRID_HASH_JOIN operator joins the data from two child tables. It creates a hash table
for the inner table and joins the outer table by hashing each outer row and looking for matches
in the hash table. This operator can overflow to disk when the inner table is too large to fit in
memory. Equijoins and cross-products are supported by this operator.
The HYBRID_HASH_JOIN has two child operators. The description field for this operator
contains:
Data TypeToken DescriptionToken
integerA sequential number assigned to the fragment. 0 is always master
executor and 1 is reserved for the Explain plan. Numbers 2 to n will be
ESP or DAM fragments.
fragment_id
integerThe fragment_id for the parent fragment of the current fragment. Value
is (none) for master executor.
parent_frag
textmaster, ESP, or DAMfragment_type
textInner or natural joinjoin_type
textName of join method: hashjoin_method
text1 for Type1 or 2 for Type2, depending on parallel join algorithmparallel_join_type
expr(text)Expression of the join predicatehash_join_predicate
expr(text)Expression of the WHERE clause that is not included in a
hash_join_predicate or one of the child scans
selection_predicates
HYBRID_HASH_SEMI_JOIN Operator
The HYBRID_HASH_SEMI_JOIN returns only one row for every outer row, regardless of the
number of matches. The HYBRID_HASH_SEMI_JOIN operator differs from the
HYBRID_HASH_JOIN operator only when it finds multiple matches in the inner table. In the
HYBRID_HASH_JOIN case, a result row is returned for every match in the inner table. See
“HYBRID_HASH_JOIN Operator” (page 42).
The HYBRID_HASH_SEMI_JOIN operator has two child operators. The description field for
this operator contains:
Data TypeToken DescriptionToken
integerA sequential number assigned to the fragment. 0 is always master executor
and 1 is reserved for the Explain plan. Numbers 2 to n will be ESP or DAM
fragments.
fragment_id
integerThe fragment_id for the parent fragment of the current fragment. Value
is (none) for master executor.
parent_frag
textmaster, ESP, or DAMfragment_type
textInner semi-joinjoin_type
textName of join method: hashjoin_method
text1 for Type1 or 2 for Type2, depending on parallel join algorithmparallel_join_type
expr(text)Expression of the join predicatehash_join_predicate
expr(text)Expression of the WHERE clause that is not included in a
hash_join_predicate or one of the child scans
selection_predicates
42 Query Plan Operators