/**
     * Prepare adding a subset to the nested set
     *
     * @param array	$subset_items		Subset of items to add
     * @param array	$new_parent	Item containing the right bound of the new parent
     * @return	int		New right id of the parent item
     */
    protected function prepare_adding_subset(array $subset_items, array $new_parent)
    {
        $diff = sizeof($subset_items) * 2;
        $sql_not_subset_items = $this->db->sql_in_set($this->column_item_id, $subset_items, true);
        $set_left_id = $this->db->sql_case($this->column_left_id . ' > ' . (int) $new_parent[$this->column_right_id], $this->column_left_id . ' + ' . $diff, $this->column_left_id);
        $set_right_id = $this->db->sql_case($this->column_right_id . ' >= ' . (int) $new_parent[$this->column_right_id], $this->column_right_id . ' + ' . $diff, $this->column_right_id);
        $sql = 'UPDATE ' . $this->table_name . '
			SET ' . $this->column_left_id . ' = ' . $set_left_id . ',
				' . $this->column_right_id . ' = ' . $set_right_id . '
			WHERE ' . $sql_not_subset_items . '
				' . $this->get_sql_where('AND');
        $this->db->sql_query($sql);
        return $new_parent[$this->column_right_id] + $diff;
    }