**Use case**

Convert bitmask to position.
It would allow us to directly use FLAT dictionary or Enum datatype without jumping around slow `bitmasktoArray` and `arrayMap`

**Describe the solution you'd like**

```
SELECT
    arrayMap(x -> log2(x), bitmaskToArray(100)) AS bitmask,
    bitPositions(100)  AS bitpositions

┌─bitmask─┬─bitpositions─┐
│ [2,5,6] │ [2,5,6]      │
└─────────┴──────────────┘
```

{
        const ColumnVector<T> * col_vec = checkAndGetColumn<ColumnVector<T>>(col);
        if (col_vec)
        {
            const typename ColumnVector<T>::Container & in_vec = col_vec->getData();
            executeFloatAndDecimal<typename ColumnVector<T>::Container>(in_vec, col_res, sizeof(T));
            return true;
        }
        else
        {
            return false;
        }
    }
    template <typename T>
    bool tryExecuteDecimal(const IColumn * col, ColumnPtr & col_res) const