Discussions

Expand all | Collapse all

The difference between “BaselineJoinHashTable::getInstance” and ""JoinHashTable::getInstance""?

  • 1.  The difference between “BaselineJoinHashTable::getInstance” and ""JoinHashTable::getInstance""?

    Posted 02-16-2019 06:08

    The difference between “BaselineJoinHashTable::getInstance” and “JoinHashTable::getInstance” ?
    What kind of join condition is an ExpressionTuple ?



  • 2.  RE: The difference between “BaselineJoinHashTable::getInstance” and ""JoinHashTable::getInstance""?

    Posted 02-16-2019 19:28

    ExpressionTuple is not a join condition by itself, but it’s used in the context of equi-join on multiple columns to represent the sides of the equals operator. For example, SELECT COUNT(*) FROM t1, t2 WHERE t1.x = t2.x AND t1.y AND t2.y is internally rewritten as (t1.x, t1.y) = (t2.x, t2.y), where the two sides are ExpressionTuple. This allows building a hash table on the entire tuple as opposed of just on t2.x and doing a loop for the t1.y = t2.y leftover of the join condition, which is normally a good idea as long as the hash table fits (we’re able to back off if it doesn’t).



  • 3.  RE: The difference between “BaselineJoinHashTable::getInstance” and ""JoinHashTable::getInstance""?

    Posted 02-19-2019 00:10

    hi @asuhan,
    thinks, I got the general idea.