src/backend/executor/abstract_join_executor.cpp
/**
 * Buffer logical tiles got from executing child executors
 * This will also initialize a new join row set that belongs
 * to the new result tile
 */
Buffer logical tiles got from executing child executors
This will also initialize a new join row set that belongs
to the new result tile
Buffer logical tiles got from executing child executors This will also initialize a new join row set that belongs to the new result tile
void AbstractJoinExecutor::BufferRightTile(LogicalTile *right_tile) {
  assert(join_type_ != JOIN_TYPE_INVALID);
  right_result_tiles_.emplace_back(right_tile);
  switch (join_type_) {
    case JOIN_TYPE_RIGHT:
    case JOIN_TYPE_OUTER:
      UpdateRightJoinRowSets();
      break;
    default:
      break;
  }
}
void AbstractJoinExecutor :: BufferRightTile ( LogicalTile * right_tile ) { assert ( join_type_ != JOIN_TYPE_INVALID ) ; right_result_tiles_ . emplace_back ( right_tile ) ; switch ( join_type_ ) { case JOIN_TYPE_RIGHT : case JOIN_TYPE_OUTER : UpdateRightJoinRowSets ( ) ; break ; default : break ; } }
Buffer logical tiles got from executing child executors
 This will also initialize a new join row set that belongs
 to the new result tile
Buffer logical tiles got from executing child executors This will also initialize a new join row set that belongs to the new result tile