Happens when AggregateFunctionTimeSeriesGroupSum state is serialized. 

Can lead to:

```
2020.11.11 08:50:26.219001 [ 259 ] {} <Fatal> BaseDaemon: ########################################
2020.11.11 08:50:26.219056 [ 259 ] {} <Fatal> BaseDaemon: (version 20.3.13.127 (official build)) (from thread 207) (query_id: 9d885998-851a-4c70-b668-439cd260dc4f) Received signal Segmentation fault (11).
2020.11.11 08:50:26.219095 [ 259 ] {} <Fatal> BaseDaemon: Address: NULL pointer. Access: read. Address not mapped to object.
2020.11.11 08:50:26.219113 [ 259 ] {} <Fatal> BaseDaemon: Stack trace: 0xca03160
2020.11.11 08:50:26.219172 [ 259 ] {} <Fatal> BaseDaemon: 3. DB::AggregateFunctionTimeSeriesGroupSum<false>::serialize(char const*, DB::WriteBuffer&) const @ 0xca03160 in /usr/bin/clickhouse
```

Or to 
```
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007fd280ad3859 in __GI_abort () at abort.c:79
#2  0x0000000023f46812 in Poco::SignalHandler::handleSignal (sig=11) at ../contrib/poco/Foundation/src/SignalHandler.cpp:94
#3  <signal handler called>
#4  memcpy () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:142
#5  0x0000000009cda5e2 in __asan_memcpy ()
#6  0x0000000009d666f5 in DB::WriteBuffer::write (this=0x7fff20748540, from=0x0, n=16) at ../src/IO/WriteBuffer.h:78
#7  0x000000001b374125 in DB::serializeToString (function=..., column=..., row_num=<optimized out>) at ../src/DataTypes/DataTypeAggregateFunction.cpp:160
#8  0x000000001b37461c in DB::DataTypeAggregateFunction::serializeTextEscaped (this=<optimized out>, column=..., row_num=140542080921600, ostr=...) at ../src/DataTypes/DataTypeAggregateFunction.cpp:196
#9  0x000000001dc1120c in DB::IRowOutputFormat::write (this=0x6190000230a0, columns=..., row_num=0) at ../src/Processors/Formats/IRowOutputFormat.cpp:85
#10 0x000000001dc0fd87 in DB::IRowOutputFormat::consume (this=0x6190000230a0, chunk=<error reading variable: Cannot access memory at address 0x0>) at ../src/Processors/Formats/IRowOutputFormat.cpp:25
#11 0x000000001db7bc7c in DB::IOutputFormat::work (this=0x6190000230a0) at ../src/Processors/Formats/IOutputFormat.cpp:89
#12 0x000000001db58e16 in DB::executeJob (processor=0x6190000230a0) at ../src/Processors/Executors/PipelineExecutor.cpp:78
#13 DB::PipelineExecutor::addJob(DB::ExecutingGraph::Node*)::$_0::operator()() const (this=<optimized out>) at ../src/Processors/Executors/PipelineExecutor.cpp:95
#14 std::__1::__invoke<DB::PipelineExecutor::addJob(DB::ExecutingGraph::Node*)::$_0&> (__f=...) at ../contrib/libcxx/include/type_traits:3519
#15 std::__1::__invoke_void_return_wrapper<void>::__call<DB::PipelineExecutor::addJob(DB::ExecutingGraph::Node*)::$_0&>(DB::PipelineExecutor::addJob(DB::ExecutingGraph::Node*)::$_0&) (__args=...)
    at ../contrib/libcxx/include/__functional_base:348
#16 std::__1::__function::__alloc_func<DB::PipelineExecutor::addJob(DB::ExecutingGraph::Node*)::$_0, std::__1::allocator<DB::PipelineExecutor::addJob(DB::ExecutingGraph::Node*)::$_0>, void ()>::operator()() (
    this=<optimized out>) at ../contrib/libcxx/include/functional:1540
#17 std::__1::__function::__func<DB::PipelineExecutor::addJob(DB::ExecutingGraph::Node*)::$_0, std::__1::allocator<DB::PipelineExecutor::addJob(DB::ExecutingGraph::Node*)::$_0>, void ()>::operator()() (
    this=<optimized out>) at ../contrib/libcxx/include/functional:1714
#18 0x000000001db54c27 in std::__1::__function::__value_func<void ()>::operator()() const (this=<optimized out>) at ../contrib/libcxx/include/functional:1867
#19 std::__1::function<void ()>::operator()() const (this=<optimized out>) at ../contrib/libcxx/include/functional:2473
#20 DB::PipelineExecutor::executeStepImpl (this=<optimized out>, thread_num=<optimized out>, num_threads=<optimized out>, yield_flag=<optimized out>) at ../src/Processors/Executors/PipelineExecutor.cpp:561
#21 0x000000001db5083f in DB::PipelineExecutor::executeSingleThread (this=0x6130000049d8, thread_num=0, num_threads=16) at ../src/Processors/Executors/PipelineExecutor.cpp:477
#22 DB::PipelineExecutor::executeImpl (this=0x6130000049d8, num_threads=1) at ../src/Processors/Executors/PipelineExecutor.cpp:752
#23 0x000000001db4fcef in DB::PipelineExecutor::execute (this=0x6130000049d8, num_threads=1) at ../src/Processors/Executors/PipelineExecutor.cpp:399
#24 0x000000001c8c951a in DB::executeQuery(DB::ReadBuffer&, DB::WriteBuffer&, bool, DB::Context&, std::__1::function<void (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)>) (istr=..., ostr=..., allow_into_outfile=<optimized out>, context=..., set_result_details=...)
    at ../src/Interpreters/executeQuery.cpp:995
#25 0x0000000009fac674 in DB::LocalServer::processQueries (this=0x7fff2074c2e8) at ../programs/local/LocalServer.cpp:384
#26 0x0000000009fa6485 in DB::LocalServer::main (this=0x7fff2074ea50) at ../programs/local/LocalServer.cpp:289
#27 0x0000000023ce5ac6 in Poco::Util::Application::run (this=0x7fff2074ea50) at ../contrib/poco/Util/src/Application.cpp:334
#28 0x0000000009fb9dc0 in mainEntryClickHouseLocal (argc=3, argv=0x6030000060d0) at ../programs/local/LocalServer.cpp:609
#29 0x0000000009d0e554 in main (argc_=<optimized out>, argv_=<optimized out>) at ../programs/main.cpp:400
```

or similar.

It seems all versions are affected (we will need a fix for 20.3).

I'll commit a test case soon. 

{
        
        AggSeries tmp;
        tmp.reserve(other.result.size() + result.size());
        size_t i = 0, j = 0;
        Int64 t1, t2;
        Float64 v1, v2;
        while (i < result.size() && j < other.result.size())
        {
            if (result[i].first < other.result[j].first)
            {
                if (j == 0)
                {
                    tmp.emplace_back(result[i]);
                }
                else
                {
                    t1 = other.result[j].first;