```
2020.08.25 12:14:14.924784 [ 10386 ] {} <Fatal> BaseDaemon: ########################################
2020.08.25 12:14:14.924879 [ 10386 ] {} <Fatal> BaseDaemon: (version 20.6.4.44 (official build), no build id) (from thread 10231) (no query) Received signal Segmentation fault (11)
2020.08.25 12:14:14.924933 [ 10386 ] {} <Fatal> BaseDaemon: Address: 0x7fa55fcb0000 Access: read. Attempted access has violated the permissions assigned to the memory area.
2020.08.25 12:14:14.924971 [ 10386 ] {} <Fatal> BaseDaemon: Stack trace: 0xf57c528 0xc510217 0xc635179 0xc510cb3 0xc634c24 0xae6ee25 0xf1a2bb2 0xf1a51ed 0xf3f63cf 0xede92cd 0xf3f63af 0xede92cd 0xf3f63af 0xede92cd 0xf3f63af 0xede92cd 0xf3f63af 0xede92cd 0xf3f63af 0xede92cd 0xf3f63af 0xede92cd 0xf3f63af 0xede92cd 0xf3f63af 0xede92cd 0xf3f63af 0xede92cd 0xf3f63af
2020.08.25 12:14:14.925045 [ 10386 ] {} <Fatal> BaseDaemon: 3. DB::ColumnString::insertFrom(DB::IColumn const&, unsigned long) @ 0xf57c528 in /usr/bin/clickhouse
2020.08.25 12:14:14.925101 [ 10386 ] {} <Fatal> BaseDaemon: 4. DB::FunctionIf::executeGeneric(DB::ColumnVector<char8_t> const*, DB::Block&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> > const&, unsigned long, unsigned long) @ 0xc510217 in /usr/bin/clickhouse
2020.08.25 12:14:14.925133 [ 10386 ] {} <Fatal> BaseDaemon: 5. DB::FunctionIf::executeImpl(DB::Block&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> > const&, unsigned long, unsigned long) @ 0xc635179 in /usr/bin/clickhouse
2020.08.25 12:14:14.925154 [ 10386 ] {} <Fatal> BaseDaemon: 6. DB::FunctionIf::executeForNullableThenElse(DB::Block&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> > const&, unsigned long, unsigned long) @ 0xc510cb3 in /usr/bin/clickhouse
2020.08.25 12:14:14.925182 [ 10386 ] {} <Fatal> BaseDaemon: 7. DB::FunctionIf::executeImpl(DB::Block&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> > const&, unsigned long, unsigned long) @ 0xc634c24 in /usr/bin/clickhouse
2020.08.25 12:14:14.925216 [ 10386 ] {} <Fatal> BaseDaemon: 8. DB::ExecutableFunctionAdaptor::execute(DB::Block&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> > const&, unsigned long, unsigned long, bool) @ 0xae6ee25 in /usr/bin/clickhouse
2020.08.25 12:14:14.925280 [ 10386 ] {} <Fatal> BaseDaemon: 9. DB::ExpressionAction::execute(DB::Block&, bool) const @ 0xf1a2bb2 in /usr/bin/clickhouse
2020.08.25 12:14:14.925315 [ 10386 ] {} <Fatal> BaseDaemon: 10. DB::ExpressionActions::execute(DB::Block&, bool) const @ 0xf1a51ed in /usr/bin/clickhouse
2020.08.25 12:14:14.925341 [ 10386 ] {} <Fatal> BaseDaemon: 11. DB::ExpressionBlockInputStream::readImpl() @ 0xf3f63cf in /usr/bin/clickhouse
2020.08.25 12:14:14.925448 [ 10386 ] {} <Fatal> BaseDaemon: 12. DB::IBlockInputStream::read() @ 0xede92cd in /usr/bin/clickhouse
2020.08.25 12:14:14.925481 [ 10386 ] {} <Fatal> BaseDaemon: 13. DB::ExpressionBlockInputStream::readImpl() @ 0xf3f63af in /usr/bin/clickhouse
2020.08.25 12:14:14.925531 [ 10386 ] {} <Fatal> BaseDaemon: 14. DB::IBlockInputStream::read() @ 0xede92cd in /usr/bin/clickhouse
2020.08.25 12:14:14.925564 [ 10386 ] {} <Fatal> BaseDaemon: 15. DB::ExpressionBlockInputStream::readImpl() @ 0xf3f63af in /usr/bin/clickhouse
2020.08.25 12:14:14.925582 [ 10386 ] {} <Fatal> BaseDaemon: 16. DB::IBlockInputStream::read() @ 0xede92cd in /usr/bin/clickhouse
2020.08.25 12:14:14.925595 [ 10386 ] {} <Fatal> BaseDaemon: 17. DB::ExpressionBlockInputStream::readImpl() @ 0xf3f63af in /usr/bin/clickhouse
2020.08.25 12:14:14.925608 [ 10386 ] {} <Fatal> BaseDaemon: 18. DB::IBlockInputStream::read() @ 0xede92cd in /usr/bin/clickhouse
2020.08.25 12:14:14.925622 [ 10386 ] {} <Fatal> BaseDaemon: 19. DB::ExpressionBlockInputStream::readImpl() @ 0xf3f63af in /usr/bin/clickhouse
2020.08.25 12:14:14.925639 [ 10386 ] {} <Fatal> BaseDaemon: 20. DB::IBlockInputStream::read() @ 0xede92cd in /usr/bin/clickhouse
2020.08.25 12:14:14.925652 [ 10386 ] {} <Fatal> BaseDaemon: 21. DB::ExpressionBlockInputStream::readImpl() @ 0xf3f63af in /usr/bin/clickhouse
2020.08.25 12:14:14.925710 [ 10386 ] {} <Fatal> BaseDaemon: 22. DB::IBlockInputStream::read() @ 0xede92cd in /usr/bin/clickhouse
2020.08.25 12:14:14.925729 [ 10386 ] {} <Fatal> BaseDaemon: 23. DB::ExpressionBlockInputStream::readImpl() @ 0xf3f63af in /usr/bin/clickhouse
2020.08.25 12:14:14.925744 [ 10386 ] {} <Fatal> BaseDaemon: 24. DB::IBlockInputStream::read() @ 0xede92cd in /usr/bin/clickhouse
2020.08.25 12:14:14.925761 [ 10386 ] {} <Fatal> BaseDaemon: 25. DB::ExpressionBlockInputStream::readImpl() @ 0xf3f63af in /usr/bin/clickhouse
2020.08.25 12:14:14.925818 [ 10386 ] {} <Fatal> BaseDaemon: 26. DB::IBlockInputStream::read() @ 0xede92cd in /usr/bin/clickhouse
2020.08.25 12:14:14.925844 [ 10386 ] {} <Fatal> BaseDaemon: 27. DB::ExpressionBlockInputStream::readImpl() @ 0xf3f63af in /usr/bin/clickhouse
2020.08.25 12:14:14.925859 [ 10386 ] {} <Fatal> BaseDaemon: 28. DB::IBlockInputStream::read() @ 0xede92cd in /usr/bin/clickhouse
2020.08.25 12:14:14.925876 [ 10386 ] {} <Fatal> BaseDaemon: 29. DB::ExpressionBlockInputStream::readImpl() @ 0xf3f63af in /usr/bin/clickhouse
2020.08.25 12:14:14.925901 [ 10386 ] {} <Fatal> BaseDaemon: 30. DB::IBlockInputStream::read() @ 0xede92cd in /usr/bin/clickhouse
2020.08.25 12:14:14.925929 [ 10386 ] {} <Fatal> BaseDaemon: 31. DB::ExpressionBlockInputStream::readImpl() @ 0xf3f63af in /usr/bin/clickhouse
```
{
        size_t size = cond.size();
        auto col_res = ColVecResult::create(size, scale);
        typename ColVecResult::Container & res = col_res->getData();
        for (size_t i = 0; i < size; ++i)
            res[i] = cond[i] ? static_cast<ResultType>(a[i]) : static_cast<ResultType>(b[i]);
        block.getByPosition(result).column = std::move(col_res);
    }
    static void vectorConstant(const ArrayCond & cond, const ArrayA & a, B b, Block & block, size_t result, UInt32 scale)
    {
        size_t size = cond.size();
        auto col_res = ColVecResult::create(size, scale);
        typename ColVecResult::Container & res = col_res->getData();
        for (size_t i = 0; i < size; ++i)
            res[i] = cond[i] ? static_cast<ResultType>(a[i]) : static_cast<ResultType>(b);
        block.getByPosition(result).column = std::move(col_res);
    }
    static void constantVector(const ArrayCond & cond, A a, const ArrayB & b, Block & block, size_t result, UInt32 scale)
    {
        size_t size = cond.size();
        auto col_res = ColVecResult::create(size, scale);
        typename ColVecResult::Container & res = col_res->getData();
        for (size_t i = 0; i < size; ++i)
            res[i] = cond[i] ? static_cast<ResultType>(a) : static_cast<ResultType>(b[i]);
        block.getByPosition(result).column = std::move(col_res);
    }
    static void constantConstant(const ArrayCond & cond, A a, B b, Block & block, size_t result, UInt32 scale)