-
Notifications
You must be signed in to change notification settings - Fork 8.3k
Exception when use function array in function multiIf #32374
Copy link
Copy link
Closed
Labels
bugConfirmed user-visible misbehaviour in official releaseConfirmed user-visible misbehaviour in official releasecomp-distributedDistributed table engine & query routing across shards (sharding/load balancing).Distributed table engine & query routing across shards (sharding/load balancing).
Description
Describe what's wrong
Using the function 'array' in the function 'multiIf' will get an Exception, but it can be executed normally using [] to replace the function 'array'.
How to reproduce
- Which ClickHouse server version to use
Based on the latest version:
VERSION_DESCRIBE: v21.12.1.1-prestable
commit: 514120adfefd8836b8e0c9c6f89e878d5faf883e
CREATE TABLEstatements for all tables involved
# Create distributed tables and local tables on a cluster with two shards (test_2_0).
CREATE TABLE default.test_array (`x` Nullable(String)) ENGINE = MergeTree ORDER BY tuple() SETTINGS index_granularity = 8192;
CREATE TABLE default.test_array_all (`x` Nullable(String)) ENGINE = Distributed(test_2_0, default, test_array);
- Sample data for all these tables, use clickhouse-obfuscator if necessary
# Insert data into two local tables.
INSERT INTO default.test_array values (null, '');
- Queries to run that lead to unexpected result
# Exception SQL:
SELECT multiIf(x='a', array('a'), array()) FROM test_array_all
# Normally SQL
SELECT multiIf(x = 'a', ['a'], []) FROM test_array_allExpected behavior
Non Exception.
Error message and/or stacktrace
Received exception from server (version 21.12.1):
Code: 10. DB::Exception: Received from localhost:9020. DB::Exception: Not found column multiIf(equals(x, 'a'), array('a'), array()) inblock. There are only columns: multiIf(equals(x, 'a'), ['a'], array()): While executing Remote. Stack trace:
0. ./build/../contrib/libcxx/include/exception:133: Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x143bb14c in /data01/yuanquan/community_clickhouse/build/programs/clickhouse
1. ./build/../src/Common/Exception.cpp:57: DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, bool) @ 0x9e972fa in /data01/yuanquan/community_clickhouse/build/programs/clickhouse
2. ./build/../src/Core/Block.cpp:0: DB::Block::getByName(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const @ 0x10e681d7 in /data01/yuanquan/community_clickhouse/build/programs/clickhouse
3. ./build/../src/QueryPipeline/RemoteQueryExecutor.cpp:181: DB::RemoteQueryExecutor::processPacket(DB::Packet) @ 0x1102d49c in /data01/yuanquan/community_clickhouse/build/programs/clickhouse
4. ./build/../contrib/libcxx/include/vector:463: DB::RemoteQueryExecutor::read(std::__1::unique_ptr<DB::RemoteQueryExecutorReadContext, std::__1::default_delete<DB::RemoteQueryExecutorReadContext> >&) @ 0x1102e588 in /data01/yuanquan/community_clickhouse/build/programs/clickhouse
5. ./build/../contrib/libcxx/include/variant:700: DB::RemoteSource::tryGenerate() @ 0x123271df in /data01/yuanquan/community_clickhouse/build/programs/clickhouse
6. ./build/../contrib/libcxx/include/optional:295: DB::ISource::work() @ 0x121768ba in /data01/yuanquan/community_clickhouse/build/programs/clickhouse
7. ./build/../src/Processors/Sources/SourceWithProgress.cpp:67: DB::SourceWithProgress::work() @ 0x1232a316 in /data01/yuanquan/community_clickhouse/build/programs/clickhouse
8. ./build/../src/Processors/Executors/ExecutionThreadContext.cpp:65: DB::ExecutionThreadContext::executeTask() @ 0x1218cd63 in /data01/yuanquan/community_clickhouse/build/programs/clickhouse
9. ./build/../src/Processors/Executors/PipelineExecutor.cpp:213: DB::PipelineExecutor::executeStepImpl(unsigned long, std::__1::atomic<bool>*) @ 0x121888e0 in /data01/yuanquan/community_clickhouse/build/programs/clickhouse
10. ./build/../contrib/libcxx/include/memory:2851: void std::__1::__function::__policy_invoker<void ()>::__call_impl<std::__1::__function::__default_alloc_func<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PipelineExecutor::executeImpl(unsigned long)::$_1>(DB::PipelineExecutor::executeImpl(unsigned long)::$_1&&)::'lambda'(), void ()> >(std::__1::__function::__policy_storage const*) @ 0x121899e8 in /data01/yuanquan/community_clickhouse/build/programs/clickhouse
11. ./build/../contrib/libcxx/include/functional:2210: ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x9ecb530 in /data01/yuanquan/community_clickhouse/build/programs/clickhouse
12. ./build/../contrib/libcxx/include/memory:1655: void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void ThreadPoolImpl<std::__1::thread>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda0'()> >(void*) @ 0x9ecd933 in /data01/yuanquan/community_clickhouse/build/programs/clickhouse
13. start_thread @ 0x74a4 in /lib/x86_64-linux-gnu/libpthread-2.24.so
14. __clone @ 0xe8d0f in /lib/x86_64-linux-gnu/libc-2.24.so
. (NOT_FOUND_COLUMN_IN_BLOCK)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugConfirmed user-visible misbehaviour in official releaseConfirmed user-visible misbehaviour in official releasecomp-distributedDistributed table engine & query routing across shards (sharding/load balancing).Distributed table engine & query routing across shards (sharding/load balancing).