Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support materialized and aliased columns in joins #25634

Merged

Conversation

vdimir
Copy link
Member

@vdimir vdimir commented Jun 23, 2021

I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en

Changelog category (leave one):

  • Improvement

Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):

Support materialized and aliased columns in joins, close #13274

@robot-clickhouse robot-clickhouse added the pr-improvement Pull request with some product improvements label Jun 23, 2021
@vdimir vdimir changed the title Add materialized columns to joined columns Support materialized and aliased columns in joins Jun 25, 2021
@vdimir vdimir force-pushed the join-materialized-columns branch from 082cc4d to 2949cd1 Compare June 25, 2021 11:50
@vdimir
Copy link
Member Author

vdimir commented Jun 26, 2021

CI failures on 2949cd1 (#25634) in StorageReplicatedMergeTree::processQueueEntry not sure how can be related:


Stress test (thread) — Logical error thrown (see clickhouse-server.log)

StorageReplicatedMergeTree::processQueueEntry DB::Exception: Part all_14_14_1 is covered by all_14_26_2 but should be merged into all_14_27_2. This shouldn't happen often:

~ % curl 'https://clickhouse-test-reports.s3.yandex.net/25634/2949cd1e6f7cfe5a26619681a454bf4776dc5d41/stress_test_(thread)/clickhouse-server.log.gz' | gunzip| grep -A 30 'Code: 49, e.displayText'

Details
16:35:35.858139 [ 5472 ] {} <Error> test_31.ttl_table5: auto DB::StorageReplicatedMergeTree::processQueueEntry(ReplicatedMergeTreeQueue::SelectedEntryPtr)::(anonymous class)::operator()(DB::StorageReplicatedMergeTree::LogEntryPtr &) const: Code: 49, e.displayText() = DB::Exception: Part all_14_14_1 is covered by all_14_26_2 but should be merged into all_14_27_2. This shouldn't happen often., Stack trace (when copying this message, always include the lines below):

0. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/exception:0: Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x17db661b in /usr/bin/clickhouse
1. ./obj-x86_64-linux-gnu/../src/Common/Exception.cpp:59: DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, bool) @ 0x92defbc in /usr/bin/clickhouse
2. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/string:1444: DB::Exception::Exception<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&>(int, 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&) @ 0x142e356b in /usr/bin/clickhouse
3. ./obj-x86_64-linux-gnu/../src/Storages/StorageReplicatedMergeTree.cpp:0: DB::StorageReplicatedMergeTree::tryExecuteMerge(DB::ReplicatedMergeTreeLogEntry const&) @ 0x1425c5c0 in /usr/bin/clickhouse
4. ./obj-x86_64-linux-gnu/../src/Storages/StorageReplicatedMergeTree.cpp:0: DB::StorageReplicatedMergeTree::executeLogEntry(DB::ReplicatedMergeTreeLogEntry&) @ 0x1424e760 in /usr/bin/clickhouse
5. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:0: bool std::__1::__function::__policy_invoker<bool (std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&)>::__call_impl<std::__1::__function::__default_alloc_func<DB::StorageReplicatedMergeTree::processQueueEntry(std::__1::shared_ptr<DB::ReplicatedMergeTreeQueue::SelectedEntry>)::$_18, bool (std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&)> >(std::__1::__function::__policy_storage const*, std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&) @ 0x142dec84 in /usr/bin/clickhouse
6. ./obj-x86_64-linux-gnu/../src/Storages/MergeTree/ReplicatedMergeTreeQueue.cpp:1362: DB::ReplicatedMergeTreeQueue::processEntry(std::__1::function<std::__1::shared_ptr<zkutil::ZooKeeper> ()>, std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&, std::__1::function<bool (std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&)>) @ 0x146d92a7 in /usr/bin/clickhouse
7. ./obj-x86_64-linux-gnu/../src/Storages/StorageReplicatedMergeTree.cpp:0: DB::StorageReplicatedMergeTree::processQueueEntry(std::__1::shared_ptr<DB::ReplicatedMergeTreeQueue::SelectedEntry>) @ 0x1428ac06 in /usr/bin/clickhouse
8. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:0: bool std::__1::__function::__policy_invoker<bool ()>::__call_impl<std::__1::__function::__default_alloc_func<DB::StorageReplicatedMergeTree::getDataProcessingJob()::$_19, bool ()> >(std::__1::__function::__policy_storage const*) @ 0x142df789 in /usr/bin/clickhouse
9. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/__functional_base:0: void std::__1::__function::__policy_invoker<void ()>::__call_impl<std::__1::__function::__default_alloc_func<DB::IBackgroundJobExecutor::jobExecutingTask()::$_0, void ()> >(std::__1::__function::__policy_storage const*) @ 0x14462607 in /usr/bin/clickhouse
10. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:2210: ThreadPoolImpl<ThreadFromGlobalPool>::worker(std::__1::__list_iterator<ThreadFromGlobalPool, void*>) @ 0x9326071 in /usr/bin/clickhouse
11. ./obj-x86_64-linux-gnu/../src/Common/ThreadPool.cpp:0: ThreadFromGlobalPool::ThreadFromGlobalPool<void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda0'()>(void&&, void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda0'()&&...)::'lambda'()::operator()() @ 0x9328541 in /usr/bin/clickhouse
12. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:2090: void std::__1::__function::__policy_invoker<void ()>::__call_impl<std::__1::__function::__default_alloc_func<ThreadFromGlobalPool::ThreadFromGlobalPool<void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda0'()>(void&&, void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda0'()&&...)::'lambda'(), void ()> >(std::__1::__function::__policy_storage const*) @ 0x93284a2 in /usr/bin/clickhouse
13. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:2210: ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x9323936 in /usr/bin/clickhouse
14. ./obj-x86_64-linux-gnu/../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*) @ 0x9326d39 in /usr/bin/clickhouse
15. __tsan_thread_start_func @ 0x91eeded in /usr/bin/clickhouse
16. start_thread @ 0x9609 in /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
17. clone @ 0x122293 in /usr/lib/x86_64-linux-gnu/libc-2.31.so
 (version 21.7.1.7267)
2021.06.25 16:35:35.859269 [ 10414 ] {fdbb6d28-246a-4d59-8154-c97d890a2236} <Trace> ContextAccess (default): Access granted: SELECT(name) ON system.databases
2021.06.25 16:35:35.862491 [ 528 ] {} <Trace> test_31.ttl_table2 (ReplicatedMergeTreeQueue): Not executing log entry queue-0000000156 of type MERGE_PARTS for part all_56_62_2 because part all_60_60_0 is not ready yet (log entry for that part is being processed).
2021.06.25 16:35:35.862292 [ 104497 ] {} <Debug> InterserverIOHTTPHandler: Done processing query
2021.06.25 16:35:35.863026 [ 612 ] {} <Trace> test_31.ttl_table3 (ReplicatedMergeTreeQueue): Not executing log entry queue-0000000033 for part all_28_28_0 because it is covered by part all_28_48_3 that is currently executing.
2021.06.25 16:35:35.863258 [ 618 ] {} <Trace> test_31.ttl_table5 (ReplicatedMergeTreeQueue): Not executing log entry queue-0000000028 for part all_24_24_0 because it is covered by part all_14_27_2 that is currently executing.
2021.06.25 16:35:35.864371 [ 72210 ] {a4e7b5db-0462-40c6-9297-3dce46f1e79c} <Debug> executeQuery: (from [::1]:60912, using production parser) (comment: '/usr/share/clickhouse-test/queries/0_stateless/01921_concurrent_ttl_and_normal_merges_zookeeper_long.sh') OPTIMIZE TABLE ttl_table2 FINAl
2021.06.25 16:35:35.865436 [ 104552 ] {} <Trace> ReadWriteBufferFromHTTP: Sending request to http://72493dddb06d:9009/?endpoint=DataPartsExchange%3A%2Ftest%2F01921_concurrent_ttl_and_normal_merges%2F01921_concurrent_ttl_and_normal_merges_zookeeper_long_test_31%2Fttl_table%2Freplicas%2F2&part=all_80_80_0&client_protocol_version=7&compress=false
2021.06.25 16:35:35.866053 [ 72210 ] {a4e7b5db-0462-40c6-9297-3dce46f1e79c} <Trace> ContextAccess (default): Access granted: OPTIMIZE ON test_31.ttl_table2

Stress test (address) — Logical error thrown (see clickhouse-server.log)

DB::StorageReplicatedMergeTree::processQueueEntry DB::Exception: Unexpected merged part ... intersecting drop range ... several times:

curl 'https://clickhouse-test-reports.s3.yandex.net/25634/2949cd1e6f7cfe5a26619681a454bf4776dc5d41/stress_test_(address)/clickhouse-server.log.gz' | gunzip| grep -A 30 'Code: 49, e.displayText'

Details
2021.06.25 16:24:49.730549 [ 34087 ] {} <Error> test_13.ttl_table4: auto DB::StorageReplicatedMergeTree::processQueueEntry(ReplicatedMergeTreeQueue::SelectedEntryPtr)::(anonymous class)::operator()(DB::StorageReplicatedMergeTree::LogEntryPtr &) const: Code: 49, e.displayText() = DB::Exception: Unexpected merged part all_83_90_1 intersecting drop range all_86_89_2, Stack trace (when copying this message, always include the lines below):

0. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/exception:133: Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x2a4acca9 in /usr/bin/clickhouse
1. ./obj-x86_64-linux-gnu/../src/Common/Exception.cpp:59: DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, bool) @ 0xb4414e2 in /usr/bin/clickhouse
2. DB::Exception::Exception<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> > >(int, 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> >&&) @ 0x1b070245 in /usr/bin/clickhouse
3. ./obj-x86_64-linux-gnu/../src/Storages/MergeTree/MergeTreeData.cpp:2346: DB::MergeTreeData::removePartsInRangeFromWorkingSet(DB::MergeTreePartInfo const&, bool, std::__1::unique_lock<std::__1::mutex>&) @ 0x225a6fac in /usr/bin/clickhouse
4. ./obj-x86_64-linux-gnu/../src/Storages/StorageReplicatedMergeTree.cpp:0: DB::StorageReplicatedMergeTree::executeDropRange(DB::ReplicatedMergeTreeLogEntry const&) @ 0x21f47cb3 in /usr/bin/clickhouse
5. ./obj-x86_64-linux-gnu/../src/Storages/StorageReplicatedMergeTree.cpp:0: DB::StorageReplicatedMergeTree::executeLogEntry(DB::ReplicatedMergeTreeLogEntry&) @ 0x21f421e6 in /usr/bin/clickhouse
6. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:0: bool std::__1::__function::__policy_invoker<bool (std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&)>::__call_impl<std::__1::__function::__default_alloc_func<DB::StorageReplicatedMergeTree::processQueueEntry(std::__1::shared_ptr<DB::ReplicatedMergeTreeQueue::SelectedEntry>)::$_18, bool (std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&)> >(std::__1::__function::__policy_storage const*, std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&) @ 0x220dd312 in /usr/bin/clickhouse
7. ./obj-x86_64-linux-gnu/../src/Storages/MergeTree/ReplicatedMergeTreeQueue.cpp:1362: DB::ReplicatedMergeTreeQueue::processEntry(std::__1::function<std::__1::shared_ptr<zkutil::ZooKeeper> ()>, std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&, std::__1::function<bool (std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&)>) @ 0x22a2ec07 in /usr/bin/clickhouse
8. ./obj-x86_64-linux-gnu/../src/Storages/StorageReplicatedMergeTree.cpp:0: DB::StorageReplicatedMergeTree::processQueueEntry(std::__1::shared_ptr<DB::ReplicatedMergeTreeQueue::SelectedEntry>) @ 0x21ff1172 in /usr/bin/clickhouse
9. ./obj-x86_64-linux-gnu/../src/Storages/MergeTree/BackgroundJobsExecutor.cpp:103: void std::__1::__function::__policy_invoker<void ()>::__call_impl<std::__1::__function::__default_alloc_func<DB::IBackgroundJobExecutor::jobExecutingTask()::$_0, void ()> >(std::__1::__function::__policy_storage const*) @ 0x2244fcc4 in /usr/bin/clickhouse
10. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:0: ThreadPoolImpl<ThreadFromGlobalPool>::worker(std::__1::__list_iterator<ThreadFromGlobalPool, void*>) @ 0xb4ddfec in /usr/bin/clickhouse
11. ./obj-x86_64-linux-gnu/../src/Common/ThreadPool.cpp:0: ThreadFromGlobalPool::ThreadFromGlobalPool<void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda0'()>(void&&, void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda0'()&&...)::'lambda'()::operator()() @ 0xb4e36d9 in /usr/bin/clickhouse
12. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:0: ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0xb4d88ac in /usr/bin/clickhouse
13. ./obj-x86_64-linux-gnu/../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*) @ 0xb4e0054 in /usr/bin/clickhouse
14. start_thread @ 0x9609 in /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
15. __clone @ 0x122293 in /usr/lib/x86_64-linux-gnu/libc-2.31.so
 (version 21.7.1.7267)
2021.06.25 16:24:49.730597 [ 224314 ] {87c35a2c-22cd-4e18-82f5-40c19cb3d9e7} <Debug> Aggregator: Merged partially aggregated blocks. 0 rows, 0.00 B. in 4.4583e-05 sec. (0.000 rows/sec., 0.00 B/sec.)
2021.06.25 16:24:49.730739 [ 35882 ] {87c35a2c-22cd-4e18-82f5-40c19cb3d9e7} <Trace> Aggregator: Merging partially aggregated blocks (bucket = 124).
2021.06.25 16:24:49.730850 [ 224259 ] {dbc7bcfe-a25e-4b3a-b141-13fd6f7aa129} <Debug> Aggregator: Merged partially aggregated blocks. 0 rows, 0.00 B. in 0.005371278 sec. (0.000 rows/sec., 0.00 B/sec.)
2021.06.25 16:24:49.730866 [ 224314 ] {87c35a2c-22cd-4e18-82f5-40c19cb3d9e7} <Trace> Aggregator: Merging partially aggregated blocks (bucket = 125).
2021.06.25 16:24:49.730891 [ 223792 ] {87c35a2c-22cd-4e18-82f5-40c19cb3d9e7} <Trace> Aggregator: Merging partially aggregated blocks (bucket = 126).
2021.06.25 16:24:49.730892 [ 224077 ] {87c35a2c-22cd-4e18-82f5-40c19cb3d9e7} <Debug> Aggregator: Merged partially aggregated blocks. 0 rows, 0.00 B. in 0.005219345 sec. (0.000 rows/sec., 0.00 B/sec.)
2021.06.25 16:24:49.730923 [ 325868 ] {22c9928b-8b30-4db1-b11f-c311913751ad} <Information> executeQuery: Read 1 rows, 1.00 B in 0.089841382 sec., 11 rows/sec., 11.13 B/sec.
2021.06.25 16:24:49.731068 [ 3621 ] {87c35a2c-22cd-4e18-82f5-40c19cb3d9e7} <Debug> Aggregator: Merged partially aggregated blocks. 0 rows, 0.00 B. in 0.00545665 sec. (0.000 rows/sec., 0.00 B/sec.)
2021.06.25 16:24:49.731076 [ 325868 ] {22c9928b-8b30-4db1-b11f-c311913751ad} <Debug> MemoryTracker: Peak memory usage (for query): 0.00 B.
2021.06.25 16:24:49.731178 [ 34429 ] {87c35a2c-22cd-4e18-82f5-40c19cb3d9e7} <Trace> Aggregator: Merging partially aggregated blocks (bucket = 128).
2021.06.25 16:24:49.731202 [ 224077 ] {87c35a2c-22cd-4e18-82f5-40c19cb3d9e7} <Trace> Aggregator: Merging partially aggregated blocks (bucket = 129).
2021.06.25 16:24:49.731305 [ 34429 ] {87c35a2c-22cd-4e18-82f5-40c19cb3d9e7} <Debug> Aggregator: Merged partially aggregated blocks. 0 rows, 0.00 B. in 4.4994e-05 sec. (0.000 rows/sec., 0.00 B/sec.)
--
2021.06.25 16:24:49.781356 [ 6543 ] {} <Error> test_13.ttl_table2: auto DB::StorageReplicatedMergeTree::processQueueEntry(ReplicatedMergeTreeQueue::SelectedEntryPtr)::(anonymous class)::operator()(DB::StorageReplicatedMergeTree::LogEntryPtr &) const: Code: 49, e.displayText() = DB::Exception: Unexpected merged part all_83_90_1 intersecting drop range all_86_89_2, Stack trace (when copying this message, always include the lines below):

0. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/exception:133: Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x2a4acca9 in /usr/bin/clickhouse
1. ./obj-x86_64-linux-gnu/../src/Common/Exception.cpp:59: DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, bool) @ 0xb4414e2 in /usr/bin/clickhouse
2. DB::Exception::Exception<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> > >(int, 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> >&&) @ 0x1b070245 in /usr/bin/clickhouse
3. ./obj-x86_64-linux-gnu/../src/Storages/MergeTree/MergeTreeData.cpp:2346: DB::MergeTreeData::removePartsInRangeFromWorkingSet(DB::MergeTreePartInfo const&, bool, std::__1::unique_lock<std::__1::mutex>&) @ 0x225a6fac in /usr/bin/clickhouse
4. ./obj-x86_64-linux-gnu/../src/Storages/StorageReplicatedMergeTree.cpp:0: DB::StorageReplicatedMergeTree::executeDropRange(DB::ReplicatedMergeTreeLogEntry const&) @ 0x21f47cb3 in /usr/bin/clickhouse
5. ./obj-x86_64-linux-gnu/../src/Storages/StorageReplicatedMergeTree.cpp:0: DB::StorageReplicatedMergeTree::executeLogEntry(DB::ReplicatedMergeTreeLogEntry&) @ 0x21f421e6 in /usr/bin/clickhouse
6. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:0: bool std::__1::__function::__policy_invoker<bool (std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&)>::__call_impl<std::__1::__function::__default_alloc_func<DB::StorageReplicatedMergeTree::processQueueEntry(std::__1::shared_ptr<DB::ReplicatedMergeTreeQueue::SelectedEntry>)::$_18, bool (std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&)> >(std::__1::__function::__policy_storage const*, std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&) @ 0x220dd312 in /usr/bin/clickhouse
7. ./obj-x86_64-linux-gnu/../src/Storages/MergeTree/ReplicatedMergeTreeQueue.cpp:1362: DB::ReplicatedMergeTreeQueue::processEntry(std::__1::function<std::__1::shared_ptr<zkutil::ZooKeeper> ()>, std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&, std::__1::function<bool (std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&)>) @ 0x22a2ec07 in /usr/bin/clickhouse
8. ./obj-x86_64-linux-gnu/../src/Storages/StorageReplicatedMergeTree.cpp:0: DB::StorageReplicatedMergeTree::processQueueEntry(std::__1::shared_ptr<DB::ReplicatedMergeTreeQueue::SelectedEntry>) @ 0x21ff1172 in /usr/bin/clickhouse
9. ./obj-x86_64-linux-gnu/../src/Storages/MergeTree/BackgroundJobsExecutor.cpp:103: void std::__1::__function::__policy_invoker<void ()>::__call_impl<std::__1::__function::__default_alloc_func<DB::IBackgroundJobExecutor::jobExecutingTask()::$_0, void ()> >(std::__1::__function::__policy_storage const*) @ 0x2244fcc4 in /usr/bin/clickhouse
10. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:0: ThreadPoolImpl<ThreadFromGlobalPool>::worker(std::__1::__list_iterator<ThreadFromGlobalPool, void*>) @ 0xb4ddfec in /usr/bin/clickhouse
11. ./obj-x86_64-linux-gnu/../src/Common/ThreadPool.cpp:0: ThreadFromGlobalPool::ThreadFromGlobalPool<void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda0'()>(void&&, void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda0'()&&...)::'lambda'()::operator()() @ 0xb4e36d9 in /usr/bin/clickhouse
12. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:0: ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0xb4d88ac in /usr/bin/clickhouse
13. ./obj-x86_64-linux-gnu/../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*) @ 0xb4e0054 in /usr/bin/clickhouse
14. start_thread @ 0x9609 in /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
15. __clone @ 0x122293 in /usr/lib/x86_64-linux-gnu/libc-2.31.so
 (version 21.7.1.7267)
2021.06.25 16:24:49.782989 [ 186485 ] {} <Trace> InterserverIOHTTPHandler-factory: HTTP Request for InterserverIOHTTPHandler-factory. Method: POST, Address: [::ffff:172.17.0.2]:54250, User-Agent: (none), Content Type: , Transfer Encoding: identity, X-Forwarded-For: (none)
2021.06.25 16:24:49.782663 [ 579 ] {} <Trace> test_13.ttl_table2 (ReplicatedMergeTreeQueue): Not executing log entry queue-0000000143 for part all_92_92_0 because it is covered by part all_91_92_1 that is currently executing.
2021.06.25 16:24:49.783758 [ 579 ] {} <Trace> test_13.ttl_table2 (ReplicatedMergeTreeQueue): Not executing log entry queue-0000000162 for part all_101_101_0 because it is covered by part all_101_102_1 that is currently executing.
2021.06.25 16:24:49.783833 [ 579 ] {} <Trace> test_13.ttl_table2 (ReplicatedMergeTreeQueue): Not executing log entry queue-0000000163 for part all_102_102_0 because it is covered by part all_101_102_1 that is currently executing.
2021.06.25 16:24:49.783887 [ 325868 ] {c3de3354-ef2c-4f04-aee3-4f3284d2971f} <Trace> ContextAccess (default): Access granted: SELECT(dummy) ON system.one
2021.06.25 16:24:49.784103 [ 224077 ] {87c35a2c-22cd-4e18-82f5-40c19cb3d9e7} <Trace> Aggregator: Merging partially aggregated blocks (bucket = 158).
2021.06.25 16:24:49.784227 [ 223792 ] {87c35a2c-22cd-4e18-82f5-40c19cb3d9e7} <Trace> Aggregator: Merging partially aggregated blocks (bucket = 159).
2021.06.25 16:24:49.784239 [ 3621 ] {87c35a2c-22cd-4e18-82f5-40c19cb3d9e7} <Trace> Aggregator: Merging partially aggregated blocks (bucket = 150).
2021.06.25 16:24:49.784262 [ 34601 ] {87c35a2c-22cd-4e18-82f5-40c19cb3d9e7} <Trace> Aggregator: Merging partially aggregated blocks (bucket = 151).
2021.06.25 16:24:49.784266 [ 224192 ] {87c35a2c-22cd-4e18-82f5-40c19cb3d9e7} <Trace> Aggregator: Merging partially aggregated blocks (bucket = 160).
2021.06.25 16:24:49.785818 [ 224192 ] {87c35a2c-22cd-4e18-82f5-40c19cb3d9e7} <Debug> Aggregator: Merged partially aggregated blocks. 0 rows, 0.00 B. in 0.001395695 sec. (0.000 rows/sec., 0.00 B/sec.)
2021.06.25 16:24:49.785859 [ 36043 ] {87c35a2c-22cd-4e18-82f5-40c19cb3d9e7} <Trace> Aggregator: Merging partially aggregated blocks (bucket = 161).
--
2021.06.25 16:24:49.965866 [ 224003 ] {} <Error> test_13.ttl_table2: auto DB::StorageReplicatedMergeTree::processQueueEntry(ReplicatedMergeTreeQueue::SelectedEntryPtr)::(anonymous class)::operator()(DB::StorageReplicatedMergeTree::LogEntryPtr &) const: Code: 49, e.displayText() = DB::Exception: Unexpected merged part all_83_90_1 intersecting drop range all_86_89_2, Stack trace (when copying this message, always include the lines below):

0. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/exception:133: Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x2a4acca9 in /usr/bin/clickhouse
1. ./obj-x86_64-linux-gnu/../src/Common/Exception.cpp:59: DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, bool) @ 0xb4414e2 in /usr/bin/clickhouse
2. DB::Exception::Exception<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> > >(int, 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> >&&) @ 0x1b070245 in /usr/bin/clickhouse
3. ./obj-x86_64-linux-gnu/../src/Storages/MergeTree/MergeTreeData.cpp:2346: DB::MergeTreeData::removePartsInRangeFromWorkingSet(DB::MergeTreePartInfo const&, bool, std::__1::unique_lock<std::__1::mutex>&) @ 0x225a6fac in /usr/bin/clickhouse
4. ./obj-x86_64-linux-gnu/../src/Storages/StorageReplicatedMergeTree.cpp:0: DB::StorageReplicatedMergeTree::executeDropRange(DB::ReplicatedMergeTreeLogEntry const&) @ 0x21f47cb3 in /usr/bin/clickhouse
5. ./obj-x86_64-linux-gnu/../src/Storages/StorageReplicatedMergeTree.cpp:0: DB::StorageReplicatedMergeTree::executeLogEntry(DB::ReplicatedMergeTreeLogEntry&) @ 0x21f421e6 in /usr/bin/clickhouse
6. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:0: bool std::__1::__function::__policy_invoker<bool (std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&)>::__call_impl<std::__1::__function::__default_alloc_func<DB::StorageReplicatedMergeTree::processQueueEntry(std::__1::shared_ptr<DB::ReplicatedMergeTreeQueue::SelectedEntry>)::$_18, bool (std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&)> >(std::__1::__function::__policy_storage const*, std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&) @ 0x220dd312 in /usr/bin/clickhouse
7. ./obj-x86_64-linux-gnu/../src/Storages/MergeTree/ReplicatedMergeTreeQueue.cpp:1362: DB::ReplicatedMergeTreeQueue::processEntry(std::__1::function<std::__1::shared_ptr<zkutil::ZooKeeper> ()>, std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&, std::__1::function<bool (std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&)>) @ 0x22a2ec07 in /usr/bin/clickhouse
8. ./obj-x86_64-linux-gnu/../src/Storages/StorageReplicatedMergeTree.cpp:0: DB::StorageReplicatedMergeTree::processQueueEntry(std::__1::shared_ptr<DB::ReplicatedMergeTreeQueue::SelectedEntry>) @ 0x21ff1172 in /usr/bin/clickhouse
9. ./obj-x86_64-linux-gnu/../src/Storages/MergeTree/BackgroundJobsExecutor.cpp:103: void std::__1::__function::__policy_invoker<void ()>::__call_impl<std::__1::__function::__default_alloc_func<DB::IBackgroundJobExecutor::jobExecutingTask()::$_0, void ()> >(std::__1::__function::__policy_storage const*) @ 0x2244fcc4 in /usr/bin/clickhouse
10. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:0: ThreadPoolImpl<ThreadFromGlobalPool>::worker(std::__1::__list_iterator<ThreadFromGlobalPool, void*>) @ 0xb4ddfec in /usr/bin/clickhouse
11. ./obj-x86_64-linux-gnu/../src/Common/ThreadPool.cpp:0: ThreadFromGlobalPool::ThreadFromGlobalPool<void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda0'()>(void&&, void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda0'()&&...)::'lambda'()::operator()() @ 0xb4e36d9 in /usr/bin/clickhouse
12. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:0: ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0xb4d88ac in /usr/bin/clickhouse
13. ./obj-x86_64-linux-gnu/../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*) @ 0xb4e0054 in /usr/bin/clickhouse
14. start_thread @ 0x9609 in /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
15. __clone @ 0x122293 in /usr/lib/x86_64-linux-gnu/libc-2.31.so
 (version 21.7.1.7267)
2021.06.25 16:24:49.967386 [ 611 ] {} <Trace> test_13.ttl_table2: Will try to insert a log entry to DROP_RANGE for part: all_39_43_1
2021.06.25 16:24:49.967678 [ 87627 ] {} <Debug> TCPHandler: Connected ClickHouse client version 21.7.0, revision: 54449, database: test_13, user: default.
2021.06.25 16:24:49.967886 [ 325868 ] {4dc2639f-7648-4af6-9f9d-84b5f527251d} <Trace> InterpreterSelectQuery: FetchColumns -> Complete
2021.06.25 16:24:49.969658 [ 533 ] {} <Warning> test_13.ttl_table2 (ReplicatedMergeTreePartCheckThread): Found parts with the same min block and with the same max block as the missing part all_38_52_2. Hoping that it will eventually appear as a result of a merge.
2021.06.25 16:24:49.969787 [ 186483 ] {d95e0a7a-5f00-41b0-bf41-e73725c2719b} <Debug> executeQuery: (from [::1]:37470, using production parser) (comment: '/usr/share/clickhouse-test/queries/0_stateless/00097_long_storage_buffer_race_condition.sh') CREATE TABLE IF NOT EXISTS buf_00097 (a UInt8) ENGINE = Buffer(test_15, b, 1, 1, 1, 1, 1, 1, 1);
2021.06.25 16:24:49.972355 [ 498 ] {} <Trace> test_13.ttl_table4: Will try to insert a log entry to DROP_RANGE for part: all_44_44_1
2021.06.25 16:24:49.972735 [ 33570 ] {dbc7bcfe-a25e-4b3a-b141-13fd6f7aa129} <Trace> Aggregator: Merging partially aggregated blocks (bucket = 146).
2021.06.25 16:24:49.972735 [ 36477 ] {dbc7bcfe-a25e-4b3a-b141-13fd6f7aa129} <Trace> Aggregator: Merging partially aggregated blocks (bucket = 147).
2021.06.25 16:24:49.972751 [ 224321 ] {dbc7bcfe-a25e-4b3a-b141-13fd6f7aa129} <Trace> Aggregator: Merging partially aggregated blocks (bucket = 212).
2021.06.25 16:24:49.973555 [ 224946 ] {dbc7bcfe-a25e-4b3a-b141-13fd6f7aa129} <Trace> Aggregator: Merging partially aggregated blocks (bucket = 148).
2021.06.25 16:24:49.993068 [ 186483 ] {d95e0a7a-5f00-41b0-bf41-e73725c2719b} <Trace> ContextAccess (default): Access granted: CREATE TABLE ON test_15.buf_00097
2021.06.25 16:24:49.973573 [ 223768 ] {dbc7bcfe-a25e-4b3a-b141-13fd6f7aa129} <Trace> Aggregator: Merging partially aggregated blocks (bucket = 213).
--
2021.06.25 16:24:50.123035 [ 224232 ] {} <Error> test_13.ttl_table2: auto DB::StorageReplicatedMergeTree::processQueueEntry(ReplicatedMergeTreeQueue::SelectedEntryPtr)::(anonymous class)::operator()(DB::StorageReplicatedMergeTree::LogEntryPtr &) const: Code: 49, e.displayText() = DB::Exception: Unexpected merged part all_83_90_1 intersecting drop range all_86_89_2, Stack trace (when copying this message, always include the lines below):

0. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/exception:133: Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x2a4acca9 in /usr/bin/clickhouse
1. ./obj-x86_64-linux-gnu/../src/Common/Exception.cpp:59: DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, bool) @ 0xb4414e2 in /usr/bin/clickhouse
2. DB::Exception::Exception<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> > >(int, 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> >&&) @ 0x1b070245 in /usr/bin/clickhouse
3. ./obj-x86_64-linux-gnu/../src/Storages/MergeTree/MergeTreeData.cpp:2346: DB::MergeTreeData::removePartsInRangeFromWorkingSet(DB::MergeTreePartInfo const&, bool, std::__1::unique_lock<std::__1::mutex>&) @ 0x225a6fac in /usr/bin/clickhouse
4. ./obj-x86_64-linux-gnu/../src/Storages/StorageReplicatedMergeTree.cpp:0: DB::StorageReplicatedMergeTree::executeDropRange(DB::ReplicatedMergeTreeLogEntry const&) @ 0x21f47cb3 in /usr/bin/clickhouse
5. ./obj-x86_64-linux-gnu/../src/Storages/StorageReplicatedMergeTree.cpp:0: DB::StorageReplicatedMergeTree::executeLogEntry(DB::ReplicatedMergeTreeLogEntry&) @ 0x21f421e6 in /usr/bin/clickhouse
6. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:0: bool std::__1::__function::__policy_invoker<bool (std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&)>::__call_impl<std::__1::__function::__default_alloc_func<DB::StorageReplicatedMergeTree::processQueueEntry(std::__1::shared_ptr<DB::ReplicatedMergeTreeQueue::SelectedEntry>)::$_18, bool (std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&)> >(std::__1::__function::__policy_storage const*, std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&) @ 0x220dd312 in /usr/bin/clickhouse
7. ./obj-x86_64-linux-gnu/../src/Storages/MergeTree/ReplicatedMergeTreeQueue.cpp:1362: DB::ReplicatedMergeTreeQueue::processEntry(std::__1::function<std::__1::shared_ptr<zkutil::ZooKeeper> ()>, std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&, std::__1::function<bool (std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&)>) @ 0x22a2ec07 in /usr/bin/clickhouse
8. ./obj-x86_64-linux-gnu/../src/Storages/StorageReplicatedMergeTree.cpp:0: DB::StorageReplicatedMergeTree::processQueueEntry(std::__1::shared_ptr<DB::ReplicatedMergeTreeQueue::SelectedEntry>) @ 0x21ff1172 in /usr/bin/clickhouse
9. ./obj-x86_64-linux-gnu/../src/Storages/MergeTree/BackgroundJobsExecutor.cpp:103: void std::__1::__function::__policy_invoker<void ()>::__call_impl<std::__1::__function::__default_alloc_func<DB::IBackgroundJobExecutor::jobExecutingTask()::$_0, void ()> >(std::__1::__function::__policy_storage const*) @ 0x2244fcc4 in /usr/bin/clickhouse
10. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:0: ThreadPoolImpl<ThreadFromGlobalPool>::worker(std::__1::__list_iterator<ThreadFromGlobalPool, void*>) @ 0xb4ddfec in /usr/bin/clickhouse
11. ./obj-x86_64-linux-gnu/../src/Common/ThreadPool.cpp:0: ThreadFromGlobalPool::ThreadFromGlobalPool<void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda0'()>(void&&, void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda0'()&&...)::'lambda'()::operator()() @ 0xb4e36d9 in /usr/bin/clickhouse
12. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:0: ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0xb4d88ac in /usr/bin/clickhouse
13. ./obj-x86_64-linux-gnu/../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*) @ 0xb4e0054 in /usr/bin/clickhouse
14. start_thread @ 0x9609 in /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
15. __clone @ 0x122293 in /usr/lib/x86_64-linux-gnu/libc-2.31.so
 (version 21.7.1.7267)
2021.06.25 16:24:50.124594 [ 611 ] {} <Trace> test_13.ttl_table2 (ReplicatedMergeTreeCleanupThread): Execution took 265 ms.
2021.06.25 16:24:50.124795 [ 536 ] {} <Trace> test_13.ttl_table2: Found 3 old parts to remove.
2021.06.25 16:24:50.124892 [ 536 ] {} <Debug> test_13.ttl_table2: Removing 3 old parts from ZooKeeper
2021.06.25 16:24:50.127722 [ 325987 ] {} <Debug> TCPHandler: Connected ClickHouse client version 21.7.0, revision: 54449, user: default.
2021.06.25 16:24:50.128079 [ 536 ] {} <Debug> test_13.ttl_table2: There is no part all_83_90_1 in ZooKeeper, it was only in filesystem
2021.06.25 16:24:50.128156 [ 536 ] {} <Debug> test_13.ttl_table2: There is no part all_91_92_1 in ZooKeeper, it was only in filesystem
2021.06.25 16:24:50.128227 [ 536 ] {} <Debug> test_13.ttl_table2: There is no part all_107_107_1 in ZooKeeper, it was only in filesystem
2021.06.25 16:24:50.128295 [ 536 ] {} <Debug> test_13.ttl_table2: Removed 3 old parts from ZooKeeper. Removing them from filesystem.
2021.06.25 16:24:50.128368 [ 536 ] {} <Debug> test_13.ttl_table2: Removing part from filesystem all_83_90_1
2021.06.25 16:24:50.128973 [ 536 ] {} <Debug> test_13.ttl_table2: Removing part from filesystem all_91_92_1
2021.06.25 16:24:50.129396 [ 536 ] {} <Debug> test_13.ttl_table2: Removing part from filesystem all_107_107_1
2021.06.25 16:24:50.129758 [ 536 ] {} <Debug> test_13.ttl_table2: Removed 3 old parts

@@ -30,14 +30,13 @@ class JoinedTables
}

StoragePtr getLeftTableStorage();
bool resolveTables();
bool resolveTables(bool include_all_columns);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this ever get called with different flag values for the same JoinedTables object? Maybe we could make it a const field of JoinedTables instead.

Comment on lines 118 to 119
ContextPtr context,
bool include_all)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd make a ColumnTypeBit enum { Normal, Alias, Materialized } and pass here a bitset which_columns parameterized by this enum, built by caller. Might be easier to understand what it is ultimately going to return. Not sure.

Copy link
Contributor

@akuzm akuzm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm overall

@akuzm akuzm self-assigned this Jul 7, 2021
@alexey-milovidov alexey-milovidov merged commit 7c17e25 into ClickHouse:master Jul 9, 2021
@vdimir vdimir deleted the join-materialized-columns branch July 9, 2021 06:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pr-improvement Pull request with some product improvements
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Unexpected behavior with materialized columns filtering in joins
4 participants