```
select count() from numbers(10) where number in tuple(1, 2, 3, 4, 5) settings max_temporary_columns = 3

Received exception from server (version 20.7.1):
Code: 165. DB::Exception: Received from localhost:9000. DB::Exception: Too many temporary columns: _dummy, 1, 2, 3. Maximum: 3. 
```

Workaround: Avoid function in tuple.
```select count() from numbers(10) where number in (1, 2, 3, 4, 5) settings max_temporary_columns = 3```
{
public:
    /** Mapping for tuple positions from Set::set_elements to
      * position of pk index and functions chain applied to this column.
      */
    struct KeyTuplePositionMapping
    {
        size_t tuple_index;
        size_t key_index;
        std::vector<FunctionBasePtr> functions;
    };
    MergeTreeSetIndex(const Columns & set_elements, std::vector<KeyTuplePositionMapping> && index_mapping_);
    size_t size() const { return ordered_set.at(0)->size(); }
    bool hasMonotonicFunctionsChain() const;
    BoolMask checkInRange(const std::vector<Range> & key_ranges, const DataTypes & data_types) const;
private:
    Columns ordered_set;
    std::vector<KeyTuplePositionMapping> indexes_mapping;
    using ColumnsWithInfinity = std::vector<ValueWithInfinity>;
};
}