Skip to content

Cannot compare DB::Array with std::__1::basic_string #11286

@filimonov

Description

@filimonov

That test works on 19.11, and fails on all versions >=19.13.

drop table if exists count_lc_test;

CREATE TABLE count_lc_test
(
    `s` LowCardinality(String), 
    `arr` Array(LowCardinality(String)),
    `num` UInt64
)
ENGINE = MergeTree
ORDER BY (s, arr);

INSERT INTO count_lc_test(num, arr) VALUES (1,[]),(2,['a']),(3,['a','b','c']),(4,['aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa']);

select count() from count_lc_test where notEmpty(arr);

The error message:

Received exception from server (version 20.5.1):
Code: 169. DB::Exception: Received from localhost:9000. DB::Exception: Cannot compare DB::Array with std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >. Stack trace:

0. /build/obj-x86_64-linux-gnu/../contrib/poco/Foundation/src/Exception.cpp:27: Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x1065a1f0 in /usr/lib/debug/usr/bin/clickhouse
1. /build/obj-x86_64-linux-gnu/../src/Common/Exception.cpp:32: DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x914dd3d in /usr/lib/debug/usr/bin/clickhouse
2. /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/string:2134: bool DB::FieldVisitorAccurateLess::cantCompare<DB::Array, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(DB::Array const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const @ 0xd66880a in /usr/lib/debug/usr/bin/clickhouse
3. /build/obj-x86_64-linux-gnu/../src/Core/Field.h:547: auto DB::Field::dispatch<auto DB::applyVisitor<DB::FieldVisitorAccurateLess, DB::Field const&, DB::Field const&>(DB::FieldVisitorAccurateLess&&, DB::Field const&, DB::Field const&)::'lambda'(DB::FieldVisitorAccurateLess&), DB::Field const&>(DB::FieldVisitorAccurateLess&&, DB::Field const&) @ 0xd7b9290 in /usr/lib/debug/usr/bin/clickhouse
4. /build/obj-x86_64-linux-gnu/../src/Storages/MergeTree/KeyCondition.h:172: DB::KeyCondition::checkInHyperrectangle(std::__1::vector<DB::Range, std::__1::allocator<DB::Range> > const&, std::__1::vector<std::__1::shared_ptr<DB::IDataType const>, std::__1::allocator<std::__1::shared_ptr<DB::IDataType const> > > const&) const @ 0xdc70d33 in /usr/lib/debug/usr/bin/clickhouse
5. /build/obj-x86_64-linux-gnu/../src/Storages/MergeTree/KeyCondition.cpp:1052: DB::KeyCondition::checkInRange(unsigned long, DB::FieldRef const*, DB::FieldRef const*, std::__1::vector<std::__1::shared_ptr<DB::IDataType const>, std::__1::allocator<std::__1::shared_ptr<DB::IDataType const> > > const&, bool, BoolMask) const @ 0xdc7221f in /usr/lib/debug/usr/bin/clickhouse
6. /build/obj-x86_64-linux-gnu/../src/Storages/MergeTree/KeyCondition.cpp:1207: DB::KeyCondition::mayBeTrueInRange(unsigned long, DB::FieldRef const*, DB::FieldRef const*, std::__1::vector<std::__1::shared_ptr<DB::IDataType const>, std::__1::allocator<std::__1::shared_ptr<DB::IDataType const> > > const&) const @ 0xdc723db in /usr/lib/debug/usr/bin/clickhouse
7. /build/obj-x86_64-linux-gnu/../src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp:1284: DB::MergeTreeDataSelectExecutor::markRangesFromPKRange(std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&, DB::KeyCondition const&, DB::Settings const&) const @ 0xdd39bab in /usr/lib/debug/usr/bin/clickhouse
8. /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/deque:1719: DB::MergeTreeDataSelectExecutor::readFromParts(std::__1::vector<std::__1::shared_ptr<DB::IMergeTreeDataPart const>, std::__1::allocator<std::__1::shared_ptr<DB::IMergeTreeDataPart const> > >, 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&, DB::SelectQueryInfo const&, DB::Context const&, unsigned long, unsigned int, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, long, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, long> > > const*) const @ 0xdd43882 in /usr/lib/debug/usr/bin/clickhouse
9. /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/vector:461: DB::MergeTreeDataSelectExecutor::read(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&, DB::SelectQueryInfo const&, DB::Context const&, unsigned long, unsigned int, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, long, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, long> > > const*) const @ 0xdd478a3 in /usr/lib/debug/usr/bin/clickhouse
10. /build/obj-x86_64-linux-gnu/../src/Storages/StorageMergeTree.cpp:149: DB::StorageMergeTree::read(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&, DB::SelectQueryInfo const&, DB::Context const&, DB::QueryProcessingStage::Enum, unsigned long, unsigned int) @ 0xdaf9b05 in /usr/lib/debug/usr/bin/clickhouse
11. /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/vector:1383: void DB::InterpreterSelectQuery::executeFetchColumns<DB::QueryPipeline>(DB::QueryProcessingStage::Enum, DB::QueryPipeline&, std::__1::shared_ptr<DB::PrewhereInfo> const&, 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&, DB::QueryPipeline&) @ 0xd67ed2b in /usr/lib/debug/usr/bin/clickhouse
12. /build/obj-x86_64-linux-gnu/../src/Interpreters/InterpreterSelectQuery.cpp:788: void DB::InterpreterSelectQuery::executeImpl<DB::QueryPipeline>(DB::QueryPipeline&, std::__1::shared_ptr<DB::IBlockInputStream> const&, std::__1::optional<DB::Pipe>, DB::QueryPipeline&) @ 0xd6824c2 in /usr/lib/debug/usr/bin/clickhouse
13. /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/optional:224: DB::InterpreterSelectQuery::executeWithProcessors() @ 0xd6464fd in /usr/lib/debug/usr/bin/clickhouse
14. /build/obj-x86_64-linux-gnu/../src/Interpreters/InterpreterSelectWithUnionQuery.cpp:256: DB::InterpreterSelectWithUnionQuery::executeWithProcessors() @ 0xd817c75 in /usr/lib/debug/usr/bin/clickhouse
15. /build/obj-x86_64-linux-gnu/../src/Interpreters/executeQuery.cpp:341: DB::executeQueryImpl(char const*, char const*, DB::Context&, bool, DB::QueryProcessingStage::Enum, bool, DB::ReadBuffer*, bool) @ 0xd956d94 in /usr/lib/debug/usr/bin/clickhouse
16. /build/obj-x86_64-linux-gnu/../src/Interpreters/executeQuery.cpp:588: DB::executeQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::Context&, bool, DB::QueryProcessingStage::Enum, bool, bool) @ 0xd95a735 in /usr/lib/debug/usr/bin/clickhouse
17. /build/obj-x86_64-linux-gnu/../programs/server/TCPHandler.cpp:252: DB::TCPHandler::runImpl() @ 0x9256a98 in /usr/lib/debug/usr/bin/clickhouse
18. /build/obj-x86_64-linux-gnu/../programs/server/TCPHandler.cpp:1244: DB::TCPHandler::run() @ 0x9257a70 in /usr/lib/debug/usr/bin/clickhouse
19. /build/obj-x86_64-linux-gnu/../contrib/poco/Net/src/TCPServerConnection.cpp:57: Poco::Net::TCPServerConnection::start() @ 0x1057801b in /usr/lib/debug/usr/bin/clickhouse
20. /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/atomic:856: Poco::Net::TCPServerDispatcher::run() @ 0x105784ab in /usr/lib/debug/usr/bin/clickhouse
21. /build/obj-x86_64-linux-gnu/../contrib/poco/Foundation/include/Poco/Mutex_POSIX.h:59: Poco::PooledThread::run() @ 0x106f6fd6 in /usr/lib/debug/usr/bin/clickhouse
22. /build/obj-x86_64-linux-gnu/../contrib/poco/Foundation/include/Poco/AutoPtr.h:223: Poco::ThreadImpl::runnableEntry(void*) @ 0x106f23d0 in /usr/lib/debug/usr/bin/clickhouse
23. start_thread @ 0x76db in /lib/x86_64-linux-gnu/libpthread-2.27.so
24. /build/glibc-OTsEL5/glibc-2.27/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:97: __clone @ 0x12188f in /usr/lib/debug/lib/x86_64-linux-gnu/libc-2.27.so


0 rows in set. Elapsed: 0.419 sec. 

Metadata

Metadata

Labels

bugConfirmed user-visible misbehaviour in official releasest-acceptedThe issue is in our backlog, ready to take

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions