```sql

drop table if exists t ;
drop table if exists temp ;

CREATE TABLE t
(
    game String,
    round String,
    casino Int32)
ENGINE = MergeTree() ORDER BY (casino, game, round);

CREATE TABLE temp
(
    game String,
    round String,
    casino Int32)
ENGINE = MergeTree() ORDER BY (casino, game, round);

insert into t(casino, game, round)
select number%103, toString(cityHash64(number%999)), toString(number) from numbers(3, 50000000);

insert into temp(casino, game, round)
select number%103, toString(cityHash64(number%999)), toString(number) from numbers(5000);

Q1: SELECT count(*)
FROM temp WHERE (casino, game, round) NOT IN
(     SELECT  casino, game, round
    FROM t
    WHERE (casino, game, round) IN
    (
        SELECT casino, game, round
        FROM temp
    )
)

21.3.1.5944  Elapsed: 4.464 sec. Processed 5.00 thousand rows, 225.89 KB (1.12 thousand rows/s., 50.60 KB/s.)

20.8.11.17    Elapsed: 0.611 sec. Processed 5.00 thousand rows, 225.89 KB (8.18 thousand rows/s., 369.73 KB/s.)

18.14.19.    Elapsed: 0.341 sec. Processed 5.00 thousand rows, 225.89 KB (14.66 thousand rows/s., 662.46 KB/s.)

```
data->thread = ThreadFromGlobalPool(std::move(func));
    }
    if (data->has_exception)
    {
        
        if (lazy_format)
            lazy_format->finish();
        data->has_exception = false;
        std::rethrow_exception(std::move(data->exception));
    }
    bool is_execution_finished = lazy_format ? lazy_format->isFinished()
                                             : data->is_finished.load();
    if (is_execution_finished)
    {
        
        data->is_finished = true;
        
        cancel();
        return false;
    }
    if (lazy_format)
    {
        chunk = lazy_format->getChunk(milliseconds);
        return true;
    }
    chunk.clear();
    data->finish_event.tryWait(milliseconds);
    return true;
}
bool PullingAsyncPipelineExecutor::pull(Block & block, uint64_t milliseconds)