Locally worked with client built with TSan 
```
==================
WARNING: ThreadSanitizer: data race (pid=228)
  Read of size 4 at 0x000026612e50 by main thread:
    #0 <null> <null> (clickhouse+0xba7dbb2) (BuildId: bd019ffe7a1d4a5ec3b03bd7e0f82ab378abf7e2)
    #1 <null> <null> (clickhouse+0x1d913350) (BuildId: bd019ffe7a1d4a5ec3b03bd7e0f82ab378abf7e2)
    #2 <null> <null> (clickhouse+0x1d9174c7) (BuildId: bd019ffe7a1d4a5ec3b03bd7e0f82ab378abf7e2)
    #3 <null> <null> (clickhouse+0x1d924641) (BuildId: bd019ffe7a1d4a5ec3b03bd7e0f82ab378abf7e2)
    #4 <null> <null> (clickhouse+0x1d92712f) (BuildId: bd019ffe7a1d4a5ec3b03bd7e0f82ab378abf7e2)
    #5 <null> <null> (clickhouse+0x13742e8f) (BuildId: bd019ffe7a1d4a5ec3b03bd7e0f82ab378abf7e2)
    #6 <null> <null> (clickhouse+0x213693bd) (BuildId: bd019ffe7a1d4a5ec3b03bd7e0f82ab378abf7e2)
    #7 <null> <null> (clickhouse+0x13754d8e) (BuildId: bd019ffe7a1d4a5ec3b03bd7e0f82ab378abf7e2)
    #8 <null> <null> (clickhouse+0xba7d291) (BuildId: bd019ffe7a1d4a5ec3b03bd7e0f82ab378abf7e2)
    #9 <null> <null> (libc.so.6+0x29d8f) (BuildId: 69389d485a9793dbe873f0ea2c93e02efaa9aa3d)

addr2line -afiCe ./clickhouse 0xba7dbb2 0x1d913350 0x1d9174c7 0x1d924641 0x1d92712f 0x13742e8f 0x213693bd 0x13754d8e 0xba7d291

0x000000000ba7dbb2
std::__1::basic_ios<char, std::__1::char_traits<char> >::fill[abi:v15003]() const
./build_docker/../contrib/libcxx/include/ios:783
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long)
./build_docker/../contrib/libcxx/include/ostream:770
0x000000001d913350
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::operator<< <char, std::__1::char_traits<char>, std::__1::allocator<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
./build_docker/../contrib/libcxx/include/ostream:1086
DB::ClientBase::parseQuery(char const*&, char const*, bool) const
./build_docker/../src/Client/ClientBase.cpp:339
0x000000001d9174c7
DB::ClientBase::processTextAsSingleQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
./build_docker/../src/Client/ClientBase.cpp:763
0x000000001d924641
DB::ClientBase::processQueryText(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
./build_docker/../src/Client/ClientBase.cpp:1988
0x000000001d92712f
DB::ClientBase::runInteractive()
./build_docker/../src/Client/ClientBase.cpp:2160
0x0000000013742e8f
DB::Client::main(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)
./build_docker/../programs/client/Client.cpp:262
0x00000000213693bd
Poco::Util::Application::run()
./build_docker/../contrib/poco/Util/src/Application.cpp:334
0x0000000013754d8e
mainEntryClickHouseClient(int, char**)
./build_docker/../programs/client/Client.cpp:1298
0x000000000ba7d291
main
./build_docker/../programs/main.cpp:482


  Previous write of size 4 at 0x000026612e50 by thread T1:
    #0 <null> <null> (clickhouse+0xba7dc26) (BuildId: bd019ffe7a1d4a5ec3b03bd7e0f82ab378abf7e2)
    #1 <null> <null> (clickhouse+0x1d9a2200) (BuildId: bd019ffe7a1d4a5ec3b03bd7e0f82ab378abf7e2)
    #2 <null> <null> (clickhouse+0x1d9a1f7b) (BuildId: bd019ffe7a1d4a5ec3b03bd7e0f82ab378abf7e2)
    #3 <null> <null> (clickhouse+0xb9fbae6) (BuildId: bd019ffe7a1d4a5ec3b03bd7e0f82ab378abf7e2)

addr2line -afiCe ./clickhouse 0xba7dc26 0x1d9a2200 0x1d9a1f7b 0xb9fbae6
0x000000000ba7dc26

std::__1::basic_ios<char, std::__1::char_traits<char> >::fill[abi:v15003]() const
./build_docker/../contrib/libcxx/include/ios:784
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long)
./build_docker/../contrib/libcxx/include/ostream:770
0x000000001d9a2200
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::operator<< <std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*)
./build_docker/../contrib/libcxx/include/ostream:902
operator()
./build_docker/../src/Client/Suggest.cpp:125
0x000000001d9a1f7b
_ZNSt3__18__invokeB6v15003IZN2DB7Suggest4loadINS1_10ConnectionEEEvNS_10shared_ptrIKNS1_7ContextEEERKNS1_20ConnectionParametersEiEUlvE_JEEEDTclclsr3stdE7declvalIT_EEspclsr3stdE7declvalIT0_EEEEOSD_DpOSE_
./build_docker/../contrib/libcxx/include/__functional/invoke.h:394
void std::__1::__thread_execute[abi:v15003]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, DB::Suggest::load<DB::Connection>(std::__1::shared_ptr<DB::Context const>, DB::ConnectionParameters const&, int)::{lambda()#1}>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, DB::Suggest::load<DB::Connection>(std::__1::shared_ptr<DB::Context const>, DB::ConnectionParameters const&, int)::{lambda()#1}>&, std::__1::__tuple_indices<>)
./build_docker/../contrib/libcxx/include/thread:284
void* std::__1::__thread_proxy[abi:v15003]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, DB::Suggest::load<DB::Connection>(std::__1::shared_ptr<DB::Context const>, DB::ConnectionParameters const&, int)::{lambda()#1}> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, DB::Suggest::load<DB::Connection>(std::__1::shared_ptr<DB::Context const>, DB::ConnectionParameters const&, int)::{lambda()#1}>)
./build_docker/../contrib/libcxx/include/thread:295
0x000000000b9fbae6
addr2line: DWARF error: invalid or unhandled FORM value: 0x25
__tsan_thread_start_func
crtstuff.c:?

  Location is global '<null>' at 0x000000000000 (clickhouse+0x26612e50)

  Thread T1 (tid=230, finished) created by main thread at:
    #0 <null> <null> (clickhouse+0xb9fbb7d) (BuildId: bd019ffe7a1d4a5ec3b03bd7e0f82ab378abf7e2)
    #1 <null> <null> (clickhouse+0x1d9a13c5) (BuildId: bd019ffe7a1d4a5ec3b03bd7e0f82ab378abf7e2)
    #2 <null> <null> (clickhouse+0x1d9a0954) (BuildId: bd019ffe7a1d4a5ec3b03bd7e0f82ab378abf7e2)
    #3 <null> <null> (clickhouse+0x1d925a87) (BuildId: bd019ffe7a1d4a5ec3b03bd7e0f82ab378abf7e2)
    #4 <null> <null> (clickhouse+0x13742e8f) (BuildId: bd019ffe7a1d4a5ec3b03bd7e0f82ab378abf7e2)
    #5 <null> <null> (clickhouse+0x213693bd) (BuildId: bd019ffe7a1d4a5ec3b03bd7e0f82ab378abf7e2)
    #6 <null> <null> (clickhouse+0x13754d8e) (BuildId: bd019ffe7a1d4a5ec3b03bd7e0f82ab378abf7e2)
    #7 <null> <null> (clickhouse+0xba7d291) (BuildId: bd019ffe7a1d4a5ec3b03bd7e0f82ab378abf7e2)
    #8 <null> <null> (libc.so.6+0x29d8f) (BuildId: 69389d485a9793dbe873f0ea2c93e02efaa9aa3d)
addr2line -afiCe ./clickhouse 0xb9fbb7d 0x1d9a13c5 0x1d9a0954 0x1d925a87 0x13742e8f 0x213693bd 0x13754d8e 0xba7d291
0x000000000b9fbb7d

addr2line: DWARF error: invalid or unhandled FORM value: 0x25
__interceptor_pthread_create
??:?
0x000000001d9a13c5
std::__1::__libcpp_thread_create[abi:v15003](unsigned long*, void* (*)(void*), void*)
./build_docker/../contrib/libcxx/include/__threading_support:376
thread<(lambda at ../src/Client/Suggest.cpp:110:34), void>
./build_docker/../contrib/libcxx/include/thread:311
0x000000001d9a0954
void DB::Suggest::load<DB::Connection>(std::__1::shared_ptr<DB::Context const>, DB::ConnectionParameters const&, int)
./build_docker/../src/Client/Suggest.cpp:110
0x000000001d925a87
DB::ClientBase::runInteractive()
./build_docker/../src/Client/ClientBase.cpp:2045
0x0000000013742e8f
DB::Client::main(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)
./build_docker/../programs/client/Client.cpp:262
0x00000000213693bd
Poco::Util::Application::run()
./build_docker/../contrib/poco/Util/src/Application.cpp:334
0x0000000013754d8e
mainEntryClickHouseClient(int, char**)
./build_docker/../programs/client/Client.cpp:1298
0x000000000ba7d291
main
./build_docker/../programs/main.cpp:482

SUMMARY: ThreadSanitizer: data race (/clickhouse+0xba7dbb2) (BuildId: bd019ffe7a1d4a5ec3b03bd7e0f82ab378abf7e2)
```
{
    if (!block)
        return;
    if (block.columns() != 1)
        throw Exception("Wrong number of columns received for query to read words for suggestion", ErrorCodes::LOGICAL_ERROR);
    const ColumnString & column = typeid_cast<const ColumnString &>(*block.getByPosition(0).column);
    size_t rows = block.rows();
    Words new_words;
    new_words.reserve(rows);
    for (size_t i = 0; i < rows; ++i)
        new_words.emplace_back(column[i].get<String>());
    addWords(std::move(new_words));
}
template
void Suggest::load<Connection>(ContextPtr context, const ConnectionParameters & connection_parameters, Int32 suggestion_limit);
template
void Suggest::load<LocalConnection>(ContextPtr context, const ConnectionParameters & connection_parameters, Int32 suggestion_limit);
}