hexiaoting
74d875c837
Merge remote-tracking branch 'origin/master' into dev_map2
2020-11-26 15:13:52 +08:00
Alexander Kuzmenkov
1d7dcef4a0
Merge remote-tracking branch 'origin/master' into HEAD
2020-11-24 21:45:10 +03:00
lichengxiang
fdde2d1e8a
fix #17294 : Distinct on subquery with group by may return duplicate result
2020-11-23 17:06:59 +08:00
alexey-milovidov
711f64048b
Merge pull request #17205 from sneako/while-reading-the-value
...
Minor grammar correction in error messages
2020-11-23 05:44:58 +03:00
Nikolai Kochetov
cf678b6092
Merge branch 'master' into order-inputs-in-action-dag
2020-11-21 13:54:50 +03:00
Pavel Kruglov
3ee4972586
Merge branch 'master' of github.com:ClickHouse/ClickHouse into optimize-data-on-insert
2020-11-20 01:23:51 +03:00
Azat Khuzhin
35231662b3
Improve performance of AggregatingMergeTree w/ SimpleAggregateFunction(String)
...
While reading from AggregatingMergeTree with
SimpleAggregateFunction(String) in primary key and
optimize_aggregation_in_order perf top shows:
Samples: 1M of event 'cycles', 4000 Hz, Event count (approx.): 287759760270 lost: 0/0 drop: 0/0
Children Self Shared Object Symbol
+ 12.64% 11.39% clickhouse [.] memcpy
+ 9.08% 0.23% [unknown] [.] 0000000000000000
+ 8.45% 8.40% clickhouse [.] ProfileEvents::increment # <-- this, and in debug it has not 0.08x overhead, but 5.8x overhead
+ 7.68% 7.67% clickhouse [.] LZ4_compress_fast_extState
+ 5.29% 5.22% clickhouse [.] DB::IAggregateFunctionHelper<DB::AggregateFunctionNullUnary<true, true> >::addFree
The reason is obvious, ProfileEvents is atomic counters (and also they
are nested):
<details>
```
Samples: 7M of event 'cycles', 4000 Hz, Event count (approx.): 450726149337
ProfileEvents::increment /usr/bin/clickhouse [Percent: local period]
Percent│
│
│
│ Disassembly of section .text:
│
│ 00000000078d8900 <ProfileEvents::increment(unsigned long, unsigned long)@@Base>:
│ ProfileEvents::increment(unsigned long, unsigned long):
0.17 │ push %rbp
0.00 │ mov %rsi,%rbp
0.04 │ push %rbx
0.20 │ mov %rdi,%rbx
0.17 │ sub $0x8,%rsp
0.26 │ → callq DB::CurrentThread::getProfileEvents
│ ProfileEvents::Counters::increment(unsigned long, unsigned long):
0.00 │ lea 0x0(,%rbx,8),%rdi
0.05 │ nop
│ unsigned long std::__1::__cxx_atomic_fetch_add<unsigned long, unsigned long>(std::__1::__cxx_atomic_base_impl<unsigned long>*, unsigned long, std::__1::memory_order):
1.02 │ mov (%rax),%rdx
97.04 │ lock add %rbp,(%rdx,%rdi,1)
│ ProfileEvents::Counters::increment(unsigned long, unsigned long):
0.21 │ mov 0x10(%rax),%rax
0.04 │ test %rax,%rax
0.00 │ → jne 78d8920 <ProfileEvents::increment(unsigned long, unsigned long)@@Base+0x20>
│ ProfileEvents::increment(unsigned long, unsigned long):
0.38 │ add $0x8,%rsp
0.00 │ pop %rbx
0.04 │ pop %rbp
0.38 │ ← retq
```
</details>
These ProfileEvents was ArenaAllocChunks (it shows ~1.5M events per
second), and the reason is that the table has
SimpleAggregateFunction(String) in PK, which requires Arena.
But most of the time there Arena wasn't even used, so avoid this cost by
re-creating Arena only if it was "used" (i.e. has new chunks).
Another possibility is to avoid populating Arena::head in ctor, but this
will make the Arena code more complex, so for now this was preferred.
Also as a long-term solution it worth looking at implementing them via
RCU (to move the extra overhead out from the write code path into read
side).
2020-11-19 23:06:12 +03:00
Alexander Kuzmenkov
6cb378e072
cleanup
2020-11-19 18:52:11 +03:00
Nico Piderman
f1b8906418
Minor grammar correction in error messages
...
Noticed this when I got an error loading some JSONEachRow data.
'while read the value of' -> 'while reading the value of'.
2020-11-19 15:44:58 +01:00
Pavel Kruglov
547ec19fb3
Merge branch 'master' of github.com:ClickHouse/ClickHouse into optimize-data-on-insert
2020-11-18 12:01:59 +03:00
Alexander Kuzmenkov
b16c5a1748
Merge remote-tracking branch 'origin/master' into HEAD
2020-11-17 22:54:54 +03:00
Alexander Kuzmenkov
8cde88440b
Write rows as JSON array in JSONEachRow output format
2020-11-17 22:50:47 +03:00
Alexander Kuzmenkov
a8f29f7da6
make it a setting and not a format
2020-11-17 22:45:17 +03:00
Alexander Kuzmenkov
2bd6584636
JSONArray fixes
2020-11-17 21:33:54 +03:00
Nikolai Kochetov
13eceff55c
Remove Converting transform and step.
2020-11-17 20:16:55 +03:00
Nikita Mikhaylov
68b6f08e36
Merge pull request #16721 from nikitamikhaylov/parsing-constraints
...
Turn off parallel parsing when memory limit is small.
2020-11-17 17:37:14 +03:00
Nikolai Kochetov
013c582abf
Merge pull request #17095 from ClickHouse/actions-dag-addition
...
Move ActionsDAG into separate file
2020-11-17 11:17:55 +03:00
Nikolai Kochetov
86395e11a2
Merge pull request #17006 from azat/fix-distributed-queries-finish
...
Fix Distributed queries finishing (avoid connection resets)
2020-11-17 11:11:27 +03:00
Alexey Milovidov
24f4fa6edf
Follow Arcadia ya.make rules
2020-11-17 00:16:50 +03:00
Alexey Milovidov
3df04ce0c2
Follow Arcadia ya.make rules
2020-11-16 21:24:58 +03:00
Nikolai Kochetov
e8e6461fa7
Move ActionsDAG to separate file.
2020-11-16 17:57:56 +03:00
alexey-milovidov
c2205498b2
Merge pull request #16985 from filimonov/ip-refresh-on-session-reconnect
...
Reresolve the IP of the `format_avro_schema_registry_url` in case of errors.
2020-11-15 01:54:01 +03:00
Azat Khuzhin
aa073aa14c
Fix data race for RemoteSource::was_query_canceled
...
Since onCancel() and generate() can be called from different threads
TSAN reports:
WARNING: ThreadSanitizer: data race (pid=253)
Write of size 1 at 0x7b50008c25c2 by thread T144 (mutexes: write M643587328754916744):
#0 DB::RemoteSource::onCancel() /build/obj-x86_64-linux-gnu/../src/Processors/Sources/RemoteSource.cpp:79:24 (clickhouse+0x11c2019d)
#1 DB::IProcessor::cancel() /build/obj-x86_64-linux-gnu/../src/Processors/IProcessor.h:235:9 (clickhouse+0x11c21def)
#2 DB::RemoteSource::onUpdatePorts() /build/obj-x86_64-linux-gnu/../src/Processors/Sources/RemoteSource.h:32:13 (clickhouse+0x11c21def)
#3 DB::PipelineExecutor::tryAddProcessorToStackIfUpdated(DB::ExecutingGraph::Edge&, std::__1::queue<DB::ExecutingGraph::Node*, std::__1::deque<DB::ExecutingGraph::Node*, std::__1::allocator<DB::ExecutingGraph::Node*> > >&, unsigned long) /build/obj-x86_64-linux-gnu/../src/Processors/Executors/PipelineExecutor.cpp:190:43 (clickhouse+0x11aaf954)
#4 DB::PipelineExecutor::prepareProcessor(unsigned long, unsigned long, std::__1::queue<DB::ExecutingGraph::Node*, std::__1::deque<DB::ExecutingGraph::Node*, std::__1::allocator<DB::ExecutingGraph::Node*> > >&, std::__1::unique_lock<std::__1::mutex>) /build/obj-x86_64-linux-gnu/../src/Processors/Executors/PipelineExecutor.cpp:296:18 (clickhouse+0x11ab0169)
#5 DB::PipelineExecutor::tryAddProcessorToStackIfUpdated(DB::ExecutingGraph::Edge&, std::__1::queue<DB::ExecutingGraph::Node*, std::__1::deque<DB::ExecutingGraph::Node*, std::__1::allocator<DB::ExecutingGraph::Node*> > >&, unsigned long) /build/obj-x86_64-linux-gnu/../src/Processors/Executors/PipelineExecutor.cpp:187:16 (clickhouse+0x11aaf9c2)
#6 DB::PipelineExecutor::prepareProcessor(unsigned long, unsigned long, std::__1::queue<DB::ExecutingGraph::Node*, std::__1::deque<DB::ExecutingGraph::Node*, std::__1::allocator<DB::ExecutingGraph::Node*> > >&, std::__1::unique_lock<std::__1::mutex>) /build/obj-x86_64-linux-gnu/../src/Processors/Executors/PipelineExecutor.cpp:296:18 (clickhouse+0x11ab0169)
#7 DB::PipelineExecutor::executeStepImpl(unsigned long, unsigned long, std::__1::atomic<bool>*) /build/obj-x86_64-linux-gnu/../src/Processors/Executors/PipelineExecutor.cpp:589:26 (clickhouse+0x11ab2a3e)
#8 DB::PipelineExecutor::executeSingleThread(unsigned long, unsigned long) /build/obj-x86_64-linux-gnu/../src/Processors/Executors/PipelineExecutor.cpp:477:5 (clickhouse+0x11ab538b)
#9 DB::PipelineExecutor::executeImpl(unsigned long)::$_4::operator()() const /build/obj-x86_64-linux-gnu/../src/Processors/Executors/PipelineExecutor.cpp:736:21 (clickhouse+0x11ab538b)
#10 decltype(std::__1::forward<DB::PipelineExecutor::executeImpl(unsigned long)::$_4&>(fp)()) std::__1::__invoke_constexpr<DB::PipelineExecutor::executeImpl(unsigned long)::$_4&>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/type_traits:3525:1 (clickhouse+0x11ab538b)
#11 decltype(auto) std::__1::__apply_tuple_impl<DB::PipelineExecutor::executeImpl(unsigned long)::$_4&, std::__1::tuple<>&>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&, std::__1::tuple<>&, std::__1::__tuple_indices<>) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/tuple:1415:1 (clickhouse+0x11ab538b)
#12 decltype(auto) std::__1::apply<DB::PipelineExecutor::executeImpl(unsigned long)::$_4&, std::__1::tuple<>&>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&, std::__1::tuple<>&) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/tuple:1424:1 (clickhouse+0x11ab538b)
#13 ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PipelineExecutor::executeImpl(unsigned long)::$_4>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&&)::'lambda'()::operator()() /build/obj-x86_64-linux-gnu/../src/Common/ThreadPool.h:178:13 (clickhouse+0x11ab538b)
#14 decltype(std::__1::forward<DB::PipelineExecutor::executeImpl(unsigned long)::$_4>(fp)()) std::__1::__invoke<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PipelineExecutor::executeImpl(unsigned long)::$_4>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&&)::'lambda'()&>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&&) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/type_traits:3519:1 (clickhouse+0x11ab538b)
#15 void std::__1::__invoke_void_return_wrapper<void>::__call<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PipelineExecutor::executeImpl(unsigned long)::$_4>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&&)::'lambda'()&>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&&...) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/__functional_base:348:9 (clickhouse+0x11ab538b)
#16 std::__1::__function::__alloc_func<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PipelineExecutor::executeImpl(unsigned long)::$_4>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&&)::'lambda'(), std::__1::allocator<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PipelineExecutor::executeImpl(unsigned long)::$_4>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&&)::'lambda'()>, void ()>::operator()() /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:1540:16 (clickhouse+0x11ab538b)
#17 std::__1::__function::__func<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PipelineExecutor::executeImpl(unsigned long)::$_4>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&&)::'lambda'(), std::__1::allocator<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PipelineExecutor::executeImpl(unsigned long)::$_4>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&&)::'lambda'()>, void ()>::operator()() /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:1714:12 (clickhouse+0x11ab538b)
#18 std::__1::__function::__value_func<void ()>::operator()() const /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:1867:16 (clickhouse+0x8346263)
#19 std::__1::function<void ()>::operator()() const /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:2473:12 (clickhouse+0x8346263)
#20 ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) /build/obj-x86_64-linux-gnu/../src/Common/ThreadPool.cpp:236:17 (clickhouse+0x8346263)
#21 void ThreadPoolImpl<std::__1::thread>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()::operator()() const /build/obj-x86_64-linux-gnu/../src/Common/ThreadPool.cpp:117:73 (clickhouse+0x8349ea8)
#22 decltype(std::__1::forward<void>(fp)(std::__1::forward<void ThreadPoolImpl<std::__1::thread>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()>(fp0)...)) std::__1::__invoke<void ThreadPoolImpl<std::__1::thread>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()>(void&&, void ThreadPoolImpl<std::__1::thread>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()&&...) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/type_traits:3519:1 (clickhouse+0x8349ea8)
#23 void std::__1::__thread_execute<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>)::'lambda1'()>(std::__1::tuple<void, void ThreadPoolImpl<std::__1::thread>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()>&, std::__1::__tuple_indices<>) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/thread:273:5 (clickhouse+0x8349ea8)
#24 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>)::'lambda1'()> >(void*) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/thread:284:5 (clickhouse+0x8349ea8)
Previous read of size 1 at 0x7b50008c25c2 by thread T91:
#0 DB::RemoteSource::generate() /build/obj-x86_64-linux-gnu/../src/Processors/Sources/RemoteSource.cpp:35:9 (clickhouse+0x11c1fb9e)
#1 DB::ISource::work() /build/obj-x86_64-linux-gnu/../src/Processors/ISource.cpp:48:31 (clickhouse+0x11a6c852)
#2 DB::SourceWithProgress::work() /build/obj-x86_64-linux-gnu/../src/Processors/Sources/SourceWithProgress.cpp:36:30 (clickhouse+0x11c26d1a)
#3 DB::executeJob(DB::IProcessor*) /build/obj-x86_64-linux-gnu/../src/Processors/Executors/PipelineExecutor.cpp:78:20 (clickhouse+0x11ab4836)
#4 DB::PipelineExecutor::addJob(DB::ExecutingGraph::Node*)::$_0::operator()() const /build/obj-x86_64-linux-gnu/../src/Processors/Executors/PipelineExecutor.cpp:95:13 (clickhouse+0x11ab4836)
#5 decltype(std::__1::forward<DB::PipelineExecutor::addJob(DB::ExecutingGraph::Node*)::$_0&>(fp)()) std::__1::__invoke<DB::PipelineExecutor::addJob(DB::ExecutingGraph::Node*)::$_0&>(DB::PipelineExecutor::addJob(DB::ExecutingGraph::Node*)::$_0&) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/type_traits:3519:1 (clickhouse+0x11ab4836)
#6 void std::__1::__invoke_void_return_wrapper<void>::__call<DB::PipelineExecutor::addJob(DB::ExecutingGraph::Node*)::$_0&>(DB::PipelineExecutor::addJob(DB::ExecutingGraph::Node*)::$_0&) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/__functional_base:348:9 (clickhouse+0x11ab4836)
#7 std::__1::__function::__alloc_func<DB::PipelineExecutor::addJob(DB::ExecutingGraph::Node*)::$_0, std::__1::allocator<DB::PipelineExecutor::addJob(DB::ExecutingGraph::Node*)::$_0>, void ()>::operator()() /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:1540:16 (clickhouse+0x11ab4836)
#8 std::__1::__function::__func<DB::PipelineExecutor::addJob(DB::ExecutingGraph::Node*)::$_0, std::__1::allocator<DB::PipelineExecutor::addJob(DB::ExecutingGraph::Node*)::$_0>, void ()>::operator()() /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:1714:12 (clickhouse+0x11ab4836)
#9 std::__1::__function::__value_func<void ()>::operator()() const /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:1867:16 (clickhouse+0x11ab2801)
#10 std::__1::function<void ()>::operator()() const /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:2473:12 (clickhouse+0x11ab2801)
#11 DB::PipelineExecutor::executeStepImpl(unsigned long, unsigned long, std::__1::atomic<bool>*) /build/obj-x86_64-linux-gnu/../src/Processors/Executors/PipelineExecutor.cpp:561:17 (clickhouse+0x11ab2801)
#12 DB::PipelineExecutor::executeSingleThread(unsigned long, unsigned long) /build/obj-x86_64-linux-gnu/../src/Processors/Executors/PipelineExecutor.cpp:477:5 (clickhouse+0x11ab538b)
#13 DB::PipelineExecutor::executeImpl(unsigned long)::$_4::operator()() const /build/obj-x86_64-linux-gnu/../src/Processors/Executors/PipelineExecutor.cpp:736:21 (clickhouse+0x11ab538b)
#14 decltype(std::__1::forward<DB::PipelineExecutor::executeImpl(unsigned long)::$_4&>(fp)()) std::__1::__invoke_constexpr<DB::PipelineExecutor::executeImpl(unsigned long)::$_4&>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/type_traits:3525:1 (clickhouse+0x11ab538b)
#15 decltype(auto) std::__1::__apply_tuple_impl<DB::PipelineExecutor::executeImpl(unsigned long)::$_4&, std::__1::tuple<>&>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&, std::__1::tuple<>&, std::__1::__tuple_indices<>) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/tuple:1415:1 (clickhouse+0x11ab538b)
#16 decltype(auto) std::__1::apply<DB::PipelineExecutor::executeImpl(unsigned long)::$_4&, std::__1::tuple<>&>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&, std::__1::tuple<>&) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/tuple:1424:1 (clickhouse+0x11ab538b)
#17 ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PipelineExecutor::executeImpl(unsigned long)::$_4>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&&)::'lambda'()::operator()() /build/obj-x86_64-linux-gnu/../src/Common/ThreadPool.h:178:13 (clickhouse+0x11ab538b)
#18 decltype(std::__1::forward<DB::PipelineExecutor::executeImpl(unsigned long)::$_4>(fp)()) std::__1::__invoke<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PipelineExecutor::executeImpl(unsigned long)::$_4>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&&)::'lambda'()&>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&&) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/type_traits:3519:1 (clickhouse+0x11ab538b)
#19 void std::__1::__invoke_void_return_wrapper<void>::__call<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PipelineExecutor::executeImpl(unsigned long)::$_4>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&&)::'lambda'()&>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&&...) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/__functional_base:348:9 (clickhouse+0x11ab538b)
#20 std::__1::__function::__alloc_func<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PipelineExecutor::executeImpl(unsigned long)::$_4>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&&)::'lambda'(), std::__1::allocator<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PipelineExecutor::executeImpl(unsigned long)::$_4>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&&)::'lambda'()>, void ()>::operator()() /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:1540:16 (clickhouse+0x11ab538b)
#21 std::__1::__function::__func<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PipelineExecutor::executeImpl(unsigned long)::$_4>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&&)::'lambda'(), std::__1::allocator<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PipelineExecutor::executeImpl(unsigned long)::$_4>(DB::PipelineExecutor::executeImpl(unsigned long)::$_4&&)::'lambda'()>, void ()>::operator()() /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:1714:12 (clickhouse+0x11ab538b)
#22 std::__1::__function::__value_func<void ()>::operator()() const /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:1867:16 (clickhouse+0x8346263)
#23 std::__1::function<void ()>::operator()() const /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/functional:2473:12 (clickhouse+0x8346263)
#24 ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) /build/obj-x86_64-linux-gnu/../src/Common/ThreadPool.cpp:236:17 (clickhouse+0x8346263)
#25 void ThreadPoolImpl<std::__1::thread>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()::operator()() const /build/obj-x86_64-linux-gnu/../src/Common/ThreadPool.cpp:117:73 (clickhouse+0x8349ea8)
#26 decltype(std::__1::forward<void>(fp)(std::__1::forward<void ThreadPoolImpl<std::__1::thread>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()>(fp0)...)) std::__1::__invoke<void ThreadPoolImpl<std::__1::thread>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()>(void&&, void ThreadPoolImpl<std::__1::thread>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()&&...) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/type_traits:3519:1 (clickhouse+0x8349ea8)
#27 void std::__1::__thread_execute<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>)::'lambda1'()>(std::__1::tuple<void, void ThreadPoolImpl<std::__1::thread>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()>&, std::__1::__tuple_indices<>) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/thread:273:5 (clickhouse+0x8349ea8)
#28 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>)::'lambda1'()> >(void*) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/thread:284:5 (clickhouse+0x8349ea8)
2020-11-14 21:08:41 +03:00
Azat Khuzhin
a350f3f854
Explicitly finish the RemoteSource to avoid connection reset
...
This patch fixes the 01563_distributed_query_finish test.
2020-11-14 18:36:15 +03:00
Azat Khuzhin
8f42144097
Do not try to send query if it was canceled in RemoteSource
...
With optimize_distributed_group_by_sharding_key it is possible to get
enough rows even before sending query to another shard and in this case
it shouldn't send anything to others.
This reduces NETWORK_ERROR in the 01563_distributed_query_finish from 2 to 1.
2020-11-14 18:36:04 +03:00
alexey-milovidov
9ae14d8f19
Update AvroRowInputFormat.cpp
2020-11-14 17:45:47 +03:00
Mikhail Filimonov
e78010c28c
Attempt to fix #16926
2020-11-13 15:21:04 +01:00
Pavel Kruglov
6a57c0a8cf
Move merge in MergeTreeDataWriter
2020-11-13 10:55:56 +03:00
Pavel Kruglov
8d5e0784d3
Add setting optimize_on_insert
2020-11-12 23:37:23 +03:00
Nikita Mikhaylov
33bada767c
Merge branch 'master' into parsing-constraints
2020-11-12 23:25:39 +03:00
Nikolai Kochetov
46f70dd0de
Merge branch 'master' into actions-dag-f14
2020-11-12 11:54:44 +03:00
tavplubix
058aa8f85e
Merge pull request #16824 from ClickHouse/replace_stringstreams_with_buffers
...
Replace std::*stringstreams with DB::*Buffers
2020-11-12 01:11:44 +03:00
Nikolai Kochetov
9b13d0e0eb
Revert "Add ActionsDAG::updateHeader()"
...
This reverts commit b78657656c
.
2020-11-11 20:17:26 +03:00
Nikolai Kochetov
58c4a7b890
Some renames.
2020-11-11 19:52:27 +03:00
Nikolai Kochetov
4abcd1bcb3
Add more comments.
2020-11-11 17:26:18 +03:00
Nikolai Kochetov
b78657656c
Add ActionsDAG::updateHeader()
2020-11-11 16:50:29 +03:00
Nikolai Kochetov
1846bb3cac
Merge branch 'master' into actions-dag-f14
2020-11-11 13:08:57 +03:00
Alexander Tokmakov
b94cc5c4e5
remove more stringstreams
2020-11-10 21:22:26 +03:00
Nikolai Kochetov
c6575c9032
Update ExpressionActions constructur
2020-11-10 19:27:55 +03:00
Nikolai Kochetov
1db8e77371
Add comments. Update ActionsDAG::Index
2020-11-10 17:54:59 +03:00
Nikolai Kochetov
195c941c4e
Merge branch 'master' into storage-read-query-plan
2020-11-10 15:02:22 +03:00
Alexander Kuzmenkov
0530c40cd8
fixes
2020-11-10 08:50:32 +03:00
Alexander Tokmakov
5cdfcfb307
remove other stringstreams
2020-11-09 22:12:44 +03:00
Alexander Kuzmenkov
26229ed231
tmp spans for threads
...
(doesn't compile because of json metadata changes)
2020-11-09 18:07:38 +03:00
Nikolai Kochetov
6717c7a0af
Merge branch 'master' into actions-dag-f14
2020-11-09 14:57:48 +03:00
tavplubix
67099f28ac
Merge pull request #16591 from ClickHouse/aku/create-file
...
Support `SETTINGS` clause for File engine
2020-11-09 14:15:42 +03:00
Alexander Kuzmenkov
2fe9c76728
Merge remote-tracking branch 'origin/master' into HEAD
2020-11-09 09:37:50 +03:00
alexey-milovidov
f4ba5f1f9a
Merge pull request #16772 from ClickHouse/fix-stringstream
...
Fix "server failed to start" error
2020-11-08 14:27:08 +03:00
Alexey Milovidov
5314185e25
Merge branch 'master' into azat-optimize_skip_unused_shards-optimization
2020-11-08 00:17:59 +03:00
FawnD2
6a89d965fd
Merge branch 'master' into switch-upstream-for-arrow-submodule
2020-11-07 22:34:55 +03:00
Alexander Kuzmenkov
79f759fb6c
Merge remote-tracking branch 'origin/master' into HEAD
2020-11-07 11:54:11 +03:00
Alexey Milovidov
fd84d16387
Fix "server failed to start" error
2020-11-07 03:14:53 +03:00
nikitamikhaylov
9803565af7
style
2020-11-06 21:59:16 +03:00
nikitamikhaylov
f1709f9a80
better
2020-11-06 21:55:13 +03:00
nikitamikhaylov
2febfd43e5
rewrite format line as string
2020-11-06 21:55:13 +03:00
Alexey Milovidov
17b3dff0c2
Whitespaces
2020-11-06 20:58:04 +03:00
Nikolai Kochetov
c10f733587
Merge branch 'master' into storage-read-query-plan
2020-11-06 15:43:46 +03:00
Nikolai Kochetov
9aeb757da4
Merge branch 'master' into actions-dag-f14
2020-11-06 15:04:20 +03:00
Nikita Mikhaylov
e5cb09cb5f
Merge pull request #16613 from nikitamikhaylov/with_totals_having_assert
...
Fix fuzzer found error (with totals)
2020-11-06 14:41:16 +03:00
hexiaoting
28e87da976
remove map literal and Merge remote-tracking branch 'origin/master' into dev_map2
2020-11-06 15:07:41 +08:00
FawnD2
069e3dec0d
Do not use deprecated API
2020-11-05 20:10:11 +03:00
nikitamikhaylov
aceb82ae6a
better
2020-11-05 19:00:05 +03:00
Alexander Kuzmenkov
2efbcbaa14
Merge remote-tracking branch 'origin/master' into HEAD
2020-11-05 14:28:56 +03:00
Alexey Milovidov
b56486510f
Improve Arcadia
2020-11-05 12:55:01 +03:00
Alexey Milovidov
0b1c96db51
Provide row number when "Cannot read all data" during parsing input
2020-11-03 23:32:18 +03:00
Nikolai Kochetov
4ce88298d7
Fix build
2020-11-03 22:33:29 +03:00
Nikolai Kochetov
6767a226fc
Merge branch 'master' into actions-dag-f14
2020-11-03 15:21:06 +03:00
Nikolai Kochetov
07a7c46b89
Refactor ExpressionActions [Part 3]
2020-11-03 14:28:28 +03:00
Alexander Kuzmenkov
0f22a9dfcd
fix build
2020-11-02 19:13:42 +03:00
Alexander Kuzmenkov
548ac9d57b
Merge remote-tracking branch 'origin/master' into HEAD
2020-11-02 17:37:30 +03:00
Alexander Kuzmenkov
99ee127620
Support SETTINGS
clause for File engine
...
Accept the usual user settings related to file formats.
Most of the diff are the mechanistic code changes required to allow
providing the required FormatSettings to the format factory. The File
engine then extracts these settings from the `CREATE` query, and specifies
them when creating the format parser.
2020-11-02 10:50:38 +03:00
hexiaoting
3a70cf3773
Merge remote-tracking branch 'origin/master' into dev_map2
2020-11-02 14:46:56 +08:00
Alexander Kuzmenkov
417fa65cb4
fixup
2020-10-30 16:34:59 +03:00
Alexander Kuzmenkov
e81140b5fa
format settings in File engine
2020-10-30 15:13:53 +03:00
alesapin
be183027b3
Merge pull request #16516 from zlobober/remove_g0
...
Remove -g0 form Arcadia build settings.
2020-10-30 13:58:08 +03:00
Alexander Kuzmenkov
145ad495ce
fixes
2020-10-30 13:42:32 +03:00
Alexander Kuzmenkov
15317fcbd1
Merge remote-tracking branch 'origin/master' into HEAD
2020-10-30 13:34:20 +03:00
alesapin
e06f65ee73
Merge pull request #16521 from myrrc/improvement/avro-format-lc
...
Fixing the inability to deserialize AVRO into table if it contains LowCardinality columns
2020-10-30 11:31:22 +03:00
Alexander Kuzmenkov
1a3fe377a6
prepare for format settings in File engine
2020-10-30 04:52:37 +03:00
Alexander Kuzmenkov
8928920cfd
Merge remote-tracking branch 'origin/master' into HEAD
2020-10-30 00:29:16 +03:00
Alexander Kuzmenkov
18fbb3dc23
some drafts
2020-10-30 00:29:10 +03:00
myrrc
9564a7f6d1
simplified the cast
2020-10-29 20:30:24 +03:00
myrrc
68b47f5f61
removing LC in AVRO input format if needed
2020-10-29 20:24:54 +03:00
Pavel Kruglov
dbfef325e6
Rename NullSink to NullOutput
2020-10-29 20:22:48 +03:00
Maxim Akhmedov
3627fabfb9
Remove -g0 form Arcadia build settings.
2020-10-29 17:37:23 +03:00
Alexander Kuzmenkov
ba34145817
Merge pull request #16425 from filimonov/minumum
...
Fix typos reported by codespell
2020-10-28 08:07:18 +03:00
Mikhail Filimonov
41971e073a
Fix typos reported by codespell
2020-10-27 12:04:03 +01:00
Alexey Milovidov
32ed8c9681
Fix trailing whitespace
2020-10-26 22:12:40 +03:00
hexiaoting
483be134b2
Support MergeTree Engine
2020-10-23 16:36:17 +08:00
Nikolai Kochetov
c91b453630
Try fix tests.
2020-10-22 14:08:12 +03:00
Nikolai Kochetov
7fa045cff8
Merge branch 'master' into storage-read-query-plan
2020-10-22 13:31:10 +03:00
hexiaoting
fcd35b0619
Merge branch 'master' into dev_map2
2020-10-18 16:18:13 +08:00
Vitaly Baranov
5f261cec3c
Merge pull request #15199 from filimonov/non_delimited_protobuf
...
ProtobufSingle format
2020-10-15 16:58:39 +03:00
Amos Bird
1bcacde8d5
Eagerly move data out of sink
2020-10-14 21:05:20 +08:00
hexiaoting
4f3f221987
Fix build error
2020-10-14 14:35:14 +08:00
hexiaoting
cdb4dd57a6
Add new DataType Map(key,value)
2020-10-14 14:35:14 +08:00
Amos Bird
1c3fe943e0
Fix DelayedSource
2020-10-13 10:18:30 +08:00
Amos Bird
ca7a5ccd0d
More resize
2020-10-13 09:56:35 +08:00
Mikhail Filimonov
87a8ba63f7
Few more CR fixes
2020-10-12 15:05:40 +02:00
Nikolai Kochetov
7e58f99f64
Merge branch 'master' into storage-read-query-plan
2020-10-12 13:12:39 +03:00
Amos Bird
d2dcfc3f0d
Refactor processors.
2020-10-12 17:30:05 +08:00
Mikhail Filimonov
7fb329713a
Avoid shadowing class member, set first_row flag after write
2020-10-12 07:52:38 +02:00
Mikhail Filimonov
f6b00f2cb6
After CR fixes
2020-10-12 07:52:09 +02:00
Mikhail Filimonov
c37a456c49
Refactoring WriteCallback->RowOutputFormatParams
2020-10-12 07:52:06 +02:00
Mikhail Filimonov
e17d4e1eeb
Tests and some docs
2020-10-12 07:51:46 +02:00
Mikhail Filimonov
6df42c580b
ProtobufSingle output format
2020-10-12 07:51:45 +02:00
Mikhail Filimonov
b602d18dd8
ProtobufSingle input format
...
Allows to read Single protobuf message at once (w/o length-delemeters).
2020-10-12 07:51:36 +02:00
alexey-milovidov
10e9d14466
Merge pull request #15818 from ClickHouse/style-pragma-once
...
Check for #pragma once in headers
2020-10-11 13:14:09 +03:00
Alexey Milovidov
269b6383f5
Check for #pragma once in headers
2020-10-10 21:37:02 +03:00
Alexey Milovidov
5b482f4191
Cleanups
2020-10-10 19:31:10 +03:00
Nikolai Kochetov
d94d88a6c0
Fix style.
2020-10-07 15:04:15 +03:00
Nikolai Kochetov
7e02152b50
Merge branch 'master' into storage-read-query-plan
2020-10-07 14:27:21 +03:00
Nikolai Kochetov
c5cb05f5f3
Try fix tests.
2020-10-07 14:26:29 +03:00
Nikolai Kochetov
1f2e867ce6
Merge pull request #15645 from ClickHouse/read-from-storage-step-field-order
...
Ensure resource destruction order in ReadFromStorageStep.
2020-10-06 19:17:38 +03:00
Azat Khuzhin
9594e463b4
Cancel other processors on query exception ( #15578 )
...
* Add a test for canceling distributed queries on error
* Cancel other processors on exception in PipelineExecutor
Fixes: 01514_distributed_cancel_query_on_error
2020-10-06 14:24:55 +03:00
Nikolai Kochetov
3564ba1c63
Remove moves.
2020-10-06 13:02:07 +03:00
Nikolai Kochetov
efd1f10a6d
Fix build.
2020-10-06 11:55:03 +03:00
Nikolai Kochetov
5bbae0953a
Fix order of resource destruction in SettingQuotaAndLimitsStep.
2020-10-06 09:53:51 +03:00
Nikolai Kochetov
f9bf1e3406
Merge branch 'master' into storage-read-query-plan
2020-10-06 09:50:10 +03:00
Nikolai Kochetov
28e12c559c
Ensure resource desrtuction order in ReadFromStorageStep.
2020-10-06 09:35:35 +03:00
Anton Popov
a49591b250
Merge pull request #15543 from azat/optimize_aggregation_in_order-fix-memory-usage
...
[RFC] Significantly reduce memory usage in AggregatingInOrderTransform
2020-10-05 16:34:12 +03:00
alexey-milovidov
2fcf2e0fbe
Merge pull request #15443 from ucasFL/pretty_row_numbers
...
Add setting `output_format_pretty_row_numbers`
2020-10-05 11:49:55 +03:00
alexey-milovidov
97d97f6b2e
Merge pull request #15513 from ClickHouse/aku/error-context
...
Add some context to an error message
2020-10-03 16:24:19 +03:00
Azat Khuzhin
2a2f858365
Significantly reduce memory usage in AggregatingInOrderTransform
...
Clean the aggregates pools (Arena's objects) between flushes, this will
reduce memory usage significantly (since Arena is not intended for
memory reuse in the already full Chunk's)
Before this patch you cannot run SELECT FROM huge_table GROUP BY
primary_key SETTINGS optimize_aggregation_in_order=1 (and the whole
point of optimize_aggregation_in_order got lost), while after, this
should be possible.
2020-10-03 00:56:58 +03:00
Azat Khuzhin
b838214a35
Pass non-const SelectQueryInfo (and drop mutable qualifiers)
2020-10-02 22:42:35 +03:00
feng lv
d2f75f8508
fix
2020-10-02 23:13:28 +08:00
Nikolai Kochetov
11c0c2864f
Fix build.
2020-10-02 17:23:06 +03:00
alesapin
17b86dec96
Recursive defaults
2020-10-02 15:38:50 +03:00
Nikolai Kochetov
5134028140
Fix style.
2020-10-01 21:19:38 +03:00
Nikolai Kochetov
f02ad3dc8e
Use QueryPlan while reading from MergeTree.
2020-10-01 21:02:22 +03:00
Nikolai Kochetov
ec64def384
Use QueryPlan while reading from MergeTree.
2020-10-01 20:34:22 +03:00
Alexander Kuzmenkov
c20053351c
Make the test throw more comprehensive errors
2020-10-01 17:23:48 +03:00
Nikolai Kochetov
cb22152878
Fix build.
2020-09-30 18:54:16 +03:00
Nikolai Kochetov
2efde179e9
Merge branch 'master' into storage-read-query-plan
2020-09-30 15:23:46 +03:00
Nikolai Kochetov
5ac6bc071d
QueryPlan for StorageBuffer and StorageMaterializedView read.
2020-09-30 15:22:57 +03:00
Nikolai Kochetov
576ffadb17
Fix explain for ISourceStep.
2020-09-30 15:22:30 +03:00
feng lv
c857b5dd5d
fix
2020-09-30 09:50:23 +08:00
alexey-milovidov
9f944424cf
Merge pull request #15364 from ClickHouse/format-raw-blob
...
Add format RawBLOB
2020-09-30 01:14:40 +03:00
Nikolai Kochetov
33487c0e4a
Merge pull request #15422 from ClickHouse/query-plan-header-remove-columns
...
Remove column from header descriotion for EXPLAIN PLAN
2020-09-29 15:51:09 +03:00
feng lv
4f000388a7
add setting output_format_pretty_row_numbers
2020-09-29 20:30:36 +08:00
Alexey Milovidov
e4800e7b35
Fix comment
2020-09-29 00:10:36 +03:00
Nikolai Kochetov
347080ff9a
Remove column from header descriotion for EXPLAIN PLAN and EXPLAIN PIPELINE
2020-09-28 20:37:11 +03:00
Alexander Kuzmenkov
51b9aaf4d8
Merge pull request #15363 from ClickHouse/format-regexp-raw
...
Add support for "Raw" column format for Regexp format
2020-09-28 20:03:32 +03:00
Nikita Mikhaylov
72e4b10c00
Merge pull request #14842 from hexiaoting/hxt_dev
...
Fix bug for LineAsString Format
2020-09-28 14:02:23 +03:00
Alexey Milovidov
57c6af479c
Fix "Arcadia"
2020-09-28 03:26:15 +03:00
Alexey Milovidov
a7ddd8489a
Added format RawBLOB
2020-09-28 03:11:19 +03:00
Alexey Milovidov
b800a7fdf1
Add support for "Raw" column format for Regexp format
2020-09-28 01:09:32 +03:00
alexey-milovidov
fc1cf426dd
Merge pull request #15048 from markpapadakis/patch-5
...
Update ForkProcessor.cpp
2020-09-26 07:35:31 +03:00
Nikolai Kochetov
dea90009e3
Fix build
2020-09-25 16:03:12 +03:00
Alexander Kuzmenkov
679c0988a5
Merge remote-tracking branch 'origin/master' into HEAD
2020-09-22 16:25:52 +03:00
Nikolai Kochetov
62ef40394a
Merge pull request #14856 from ClickHouse/query-plan-for-creating-sets
...
Query plan for creating sets
2020-09-22 16:19:20 +03:00
Alexander Kuzmenkov
dde4cf70e1
Merge remote-tracking branch 'origin/master' into HEAD
2020-09-22 14:03:59 +03:00
Nikolai Kochetov
54c1f04b38
Review fixes.
2020-09-21 11:36:12 +03:00
alexey-milovidov
ffe4f4b366
Update ForkProcessor.cpp
2020-09-20 22:59:26 +03:00
Mark Papadakis
25a1f82631
Update ForkProcessor.cpp
...
Got rid of an unnecessary local
2020-09-20 20:26:44 +03:00
Nikolai Kochetov
b26f11c00c
Support StorageDistributed::read for QueryPlan.
2020-09-18 17:16:53 +03:00
Nikolai Kochetov
50674a320f
Refactor IStorage::read with query plan.
2020-09-18 14:39:07 +03:00
Nikolai Kochetov
2491f0e1c5
Merge branch 'master' into storage-read-query-plan
2020-09-18 14:07:03 +03:00
roman
ddca262fe6
fix review comments
2020-09-17 20:54:21 +01:00
Alexander Kuzmenkov
fb64cf210a
straighten the protocol version
2020-09-17 17:37:29 +03:00
Nikolai Kochetov
e013acb6b6
Fix build.
2020-09-17 16:26:34 +03:00
Nikolai Kochetov
0bf4e8e6e9
Support reading with QueryPlan for StorageView.
2020-09-17 16:22:24 +03:00
Nikolai Kochetov
193b572a05
Add MaterializingStep.
2020-09-17 15:11:23 +03:00
roman
b41421cb1c
[settings]: introduce new query complexity settings for leaf-nodes
...
The new setting should allow to control query complexity on leaf nodes
excluding the final merging stage on the root-node. For example, distributed
query that reads 1k rows from 5 shards will breach the `max_rows_to_read=5000`,
while effectively every shard reads only 1k rows. With setting `max_rows_to_read_leaf=1500`
this limit won't be reached and query will succeed since every shard reads
not more that ~1k rows.
2020-09-17 10:37:05 +01:00
Nikolai Kochetov
7384733144
Fix style.
2020-09-17 09:01:35 +03:00
Nikolai Kochetov
fe1056579f
Fix tests.
2020-09-16 19:45:56 +03:00
Nikolai Kochetov
73ad505735
Fix tests.
2020-09-16 19:38:33 +03:00
Nikolai Kochetov
2f7ab2bca4
Fix tests.
2020-09-16 19:30:48 +03:00
Nikolai Kochetov
8a26251f94
Fix tests.
2020-09-16 19:11:16 +03:00
Nikolai Kochetov
8de76709fb
Fix tests.
2020-09-16 17:41:01 +03:00
Nikolai Kochetov
8be45dd3cc
Update QueryPipeline::addDelayingPipeline
2020-09-16 13:25:01 +03:00
Nikolai Kochetov
3cc89d467c
Merge branch 'master' into query-plan-for-creating-sets
2020-09-15 20:15:41 +03:00
Nikolai Kochetov
118a8a513e
Update mutations interpreter.
2020-09-15 20:13:13 +03:00
Nikolai Kochetov
e29f27e333
Merge pull request #14815 from ClickHouse/storage-read-query-plan
...
Return query plan from storage.
2020-09-15 18:34:11 +03:00
Nikolai Kochetov
4c783f19ee
Use QueryPlan for SubqueryForSet.
2020-09-15 16:25:14 +03:00
Nikolai Kochetov
6eac433c55
Review fixes.
2020-09-15 13:40:39 +03:00
hexiaoting
023daddbea
Fix bug for LineAsString Format
2020-09-15 18:13:39 +08:00
Artem Zuikov
51ba12c2c3
Try speedup build ( #14809 )
2020-09-15 12:55:57 +03:00
Nikolai Kochetov
31660ddb4d
Fix build
2020-09-15 00:30:55 +03:00
Nikolai Kochetov
bcfc83022a
Return query plan from storage.
2020-09-14 17:13:58 +03:00
nikitamikhaylov
d0c259974d
style check
2020-09-10 19:35:18 +03:00
Nikita Mikhaylov
a39ba57e8c
Merge branch 'master' into dev-nf
2020-09-10 18:10:47 +04:00
Nikita Mikhaylov
f0a65522cc
Merge pull request #14333 from hczhcz/patch-0901
...
Add JSONStrings formats
2020-09-10 17:54:42 +04:00
Nikolai Kochetov
7fb45461d1
Try fix totals port for IAccumulatingTransform.
2020-09-10 10:36:29 +03:00
hcz
d8fce448a2
Implement null_as_default for JSONStrings formats
2020-09-09 15:47:32 +08:00
alexey-milovidov
f2e9a09b11
Merge pull request #14585 from ClickHouse/join-processor
...
Remove Join from ExpressionActions
2020-09-08 23:56:09 +03:00
Nikolai Kochetov
b0cb5511a9
Fix build.
2020-09-08 14:17:39 +03:00
Nikolai Kochetov
39aad9979a
Remove Join from ExpressionActions.
2020-09-08 13:40:53 +03:00
Ilya Yatsishin
11a247d2f4
Merge pull request #14556 from ClickHouse/fix-arcadia-2
...
Lower binary size in "Arcadia" build
2020-09-08 12:08:35 +03:00
Nikolai Kochetov
c3eeb8f71e
Merge pull request #14412 from ClickHouse/pipes-and-creating-sets
...
Pipes and creating sets
2020-09-08 10:47:56 +03:00
Nikolai Kochetov
d771ce5609
Merge pull request #14500 from ClickHouse/many-rows-in-totals
...
Many rows in totals
2020-09-08 10:40:14 +03:00
Alexey Milovidov
e3924b8057
Fix "Arcadia"
2020-09-08 01:14:13 +03:00
Nikita Mikhaylov
a56d42de67
fix arcadia
2020-09-07 20:55:06 +03:00
Nikolai Kochetov
73de00f4df
Review fix.
2020-09-07 20:49:23 +03:00
Nikita Mikhaylov
2c04b0a8e6
comment added
2020-09-07 19:07:34 +03:00
Nikolai Kochetov
382ebc700e
Added comment.
2020-09-07 12:47:59 +03:00
Alexey Milovidov
4a336e3814
More consistent invocation of skipBOMIfExists
2020-09-07 07:21:55 +03:00
Nikolai Kochetov
29918c9411
Update IAccumulatingTransform.
2020-09-04 23:44:15 +03:00
Nikolai Kochetov
499405504f
Merge branch 'master' into pipes-and-creating-sets
2020-09-04 23:41:20 +03:00
Nikolai Kochetov
01d0f6e5c5
Merge pull request #14402 from ClickHouse/stop-threads-if-exception-in-pipeline-executor
...
Stop query execution if exception happened in PipelineExecutor itself.
2020-09-04 23:40:22 +03:00
Nikolai Kochetov
d7be761484
Try fix test.
2020-09-04 20:14:36 +03:00
Nikolai Kochetov
7f88e3de1f
Review fix.
2020-09-04 15:54:31 +03:00
Nikolai Kochetov
41a3fad1ea
Allow many rows in totals.
2020-09-04 15:34:36 +03:00
Nikolai Kochetov
c761970bc5
Merge branch 'master' into pipes-and-creating-sets
2020-09-04 11:38:35 +03:00
Nikolai Kochetov
b7e53208d1
Fix tests.
2020-09-04 11:36:47 +03:00
Matwey V. Kornilov
9b4da1e82f
Add missed #include <atomic>
...
std::atomic<Data*> at line 199 requires including <atomic>
2020-09-02 23:40:27 +03:00
Nikolai Kochetov
acfd35a908
Update QueryPipeline::addCreatingSetsTransform
2020-09-02 16:04:54 +03:00
Nikolai Kochetov
811e44a937
Merge pull request #14315 from azat/EXPLAIN-SIGSEGV-fix
...
[RFC] Fix QueryPlan lifetime (for EXPLAIN PIPELINE graph=1) for queries with nested interpreter
2020-09-02 12:46:59 +03:00
Nikolai Kochetov
13e0464138
Stop query execution if exception happened in PipelineExecutor itself.
2020-09-02 12:39:49 +03:00
hcz
a80c1adee8
Add JSONCompactStrings formats
2020-09-02 12:15:58 +08:00
Nikolai Kochetov
f82b799f12
Update CreatingSetsTransform.
2020-09-01 16:53:11 +03:00
Nikolai Kochetov
8fac595428
Stop query execution if exception happened in PipelineExecutor itself.
2020-09-01 13:29:10 +03:00
hcz
86fa185bb6
Add JSONStrings formats
2020-09-01 17:06:36 +08:00
Azat Khuzhin
d04cda0367
Fix QueryPlan lifetime (for EXPLAIN PIPELINE graph=1) for queries with nested interpreter
...
Example of such queries are distributed queries, which creates local
InterpreterSelectQuery, which will have it's own QueryPlan but returns
Pipes that has that IQueryPlanStep attached.
After EXPLAIN PIPELINE graph=1 tries to use them, and will get SIGSEGV.
- TSAN:
<details>
```
==2782113==ERROR: AddressSanitizer: heap-use-after-free on address 0x6120000223c0 at pc 0x00002b8f3f3e bp 0x7fff18cfbff0 sp 0x7fff18cfbfe8
READ of size 8 at 0x6120000223c0 thread T22 (TCPHandler)
#0 0x2b8f3f3d in DB::printPipelineCompact(std::__1::vector<std::__1::shared_ptr<DB::IProcessor>, std::__1::allocator<std::__1::shared_ptr<DB::IProcessor> > > const&, DB::WriteBuffer&, bool) /build/obj-x86_64-linux-gnu/../src/Processors/printPipeline.cpp:116:53
#1 0x29ee698c in DB::InterpreterExplainQuery::executeImpl() /build/obj-x86_64-linux-gnu/../src/Interpreters/InterpreterExplainQuery.cpp:275:17
#2 0x29ee2e40 in DB::InterpreterExplainQuery::execute() /build/obj-x86_64-linux-gnu/../src/Interpreters/InterpreterExplainQuery.cpp:73:14
#3 0x2a7b44a2 in DB::executeQueryImpl(char const*, char const*, DB::Context&, bool, DB::QueryProcessingStage::Enum, bool, DB::ReadBuffer*) /build/obj-x86_64-linux-gnu/../src/Interpreters/executeQuery.cpp:389:28
#4 0x2a7b1cb3 in DB::executeQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::Context&, bool, DB::QueryProcessingStage::Enum, bool) /build/obj-x86_64-linux-gnu/../src/Interpreters/executeQuery.cpp:675:30
#5 0x2b7993b2 in DB::TCPHandler::runImpl() /build/obj-x86_64-linux-gnu/../src/Server/TCPHandler.cpp:253:24
#6 0x2b7b649a in DB::TCPHandler::run() /build/obj-x86_64-linux-gnu/../src/Server/TCPHandler.cpp:1217:9
#7 0x31d9c57e in Poco::Net::TCPServerConnection::start() /build/obj-x86_64-linux-gnu/../contrib/poco/Net/src/TCPServerConnection.cpp:43:3
#8 0x31d9d281 in Poco::Net::TCPServerDispatcher::run() /build/obj-x86_64-linux-gnu/../contrib/poco/Net/src/TCPServerDispatcher.cpp:114:20
#9 0x3206b5d5 in Poco::PooledThread::run() /build/obj-x86_64-linux-gnu/../contrib/poco/Foundation/src/ThreadPool.cpp:199:14
#10 0x320657ad in Poco::ThreadImpl::runnableEntry(void*) /build/obj-x86_64-linux-gnu/../contrib/poco/Foundation/src/Thread_POSIX.cpp:345:27
#11 0x7ffff7f853e8 in start_thread (/usr/lib/libpthread.so.0+0x93e8)
#12 0x7ffff7ea2292 in clone (/usr/lib/libc.so.6+0x100292)
0x6120000223c0 is located 0 bytes inside of 272-byte region [0x6120000223c0,0x6120000224d0)
freed by thread T22 (TCPHandler) here:
#0 0x122f3b62 in operator delete(void*, unsigned long) (/src/ch/tmp/master-20200831/clickhouse+0x122f3b62)
#1 0x2bd9e9fa in std::__1::default_delete<DB::IQueryPlanStep>::operator()(DB::IQueryPlanStep*) const /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/memory:2363:5
#2 0x2bd9e9fa in std::__1::unique_ptr<DB::IQueryPlanStep, std::__1::default_delete<DB::IQueryPlanStep> >::reset(DB::IQueryPlanStep*) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/memory:2618:7
#3 0x2bd9e9fa in std::__1::unique_ptr<DB::IQueryPlanStep, std::__1::default_delete<DB::IQueryPlanStep> >::~unique_ptr() /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/memory:2572:19
#4 0x2bd9e9fa in DB::QueryPlan::Node::~Node() /build/obj-x86_64-linux-gnu/../src/Processors/QueryPlan/QueryPlan.h:66:12
#5 0x2bd9e9fa in void std::__1::allocator_traits<std::__1::allocator<std::__1::__list_node<DB::QueryPlan::Node, void*> > >::__destroy<DB::QueryPlan::Node>(std::__1::integral_constant<bool, false>, std::__1::allocator<std::__1::__list_node<DB::QueryPlan::Node, void*> >&,
DB::QueryPlan::Node*) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/memory:1798:23
#6 0x2bd9e9fa in void std::__1::allocator_traits<std::__1::allocator<std::__1::__list_node<DB::QueryPlan::Node, void*> > >::destroy<DB::QueryPlan::Node>(std::__1::allocator<std::__1::__list_node<DB::QueryPlan::Node, void*> >&, DB::QueryPlan::Node*) /build/obj-x86_64-lin
ux-gnu/../contrib/libcxx/include/memory:1630:14
#7 0x2bd9e9fa in std::__1::__list_imp<DB::QueryPlan::Node, std::__1::allocator<DB::QueryPlan::Node> >::clear() /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/list:762:13
#8 0x29fece08 in DB::InterpreterSelectQuery::execute() /build/obj-x86_64-linux-gnu/../src/Interpreters/InterpreterSelectQuery.cpp:492:1
#9 0x2abf7484 in DB::ClusterProxy::(anonymous namespace)::createLocalStream(std::__1::shared_ptr<DB::IAST> const&, DB::Block const&, DB::Context const&, DB::QueryProcessingStage::Enum) /build/obj-x86_64-linux-gnu/../src/Interpreters/ClusterProxy/SelectStreamFactory.cpp:
78:33
#10 0x2abea85d in DB::ClusterProxy::SelectStreamFactory::createForShard(DB::Cluster::ShardInfo const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::shared_ptr<DB::IAST> const&, DB::Context const&, std::__1::shar
ed_ptr<DB::Throttler> const&, DB::SelectQueryInfo const&, std::__1::vector<DB::Pipe, std::__1::allocator<DB::Pipe> >&)::$_0::operator()() const /build/obj-x86_64-linux-gnu/../src/Interpreters/ClusterProxy/SelectStreamFactory.cpp:133:51
#11 0x2abea85d in DB::ClusterProxy::SelectStreamFactory::createForShard(DB::Cluster::ShardInfo const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::shared_ptr<DB::IAST> const&, DB::Context const&, std::__1::shar
ed_ptr<DB::Throttler> const&, DB::SelectQueryInfo const&, std::__1::vector<DB::Pipe, std::__1::allocator<DB::Pipe> >&) /build/obj-x86_64-linux-gnu/../src/Interpreters/ClusterProxy/SelectStreamFactory.cpp:189:13
#12 0x2abe6d99 in DB::ClusterProxy::executeQuery(DB::ClusterProxy::IStreamFactory&, std::__1::shared_ptr<DB::Cluster> const&, Poco::Logger*, std::__1::shared_ptr<DB::IAST> const&, DB::Context const&, DB::Settings const&, DB::SelectQueryInfo const&) /build/obj-x86_64-lin
ux-gnu/../src/Interpreters/ClusterProxy/executeQuery.cpp:107:24
#13 0x2abc4b74 in DB::StorageDistributed::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&, s
td::__1::shared_ptr<DB::StorageInMemoryMetadata const> const&, DB::SelectQueryInfo const&, DB::Context const&, DB::QueryProcessingStage::Enum, unsigned long, unsigned int) /build/obj-x86_64-linux-gnu/../src/Storages/StorageDistributed.cpp:514:12
#14 0x2bda1c5a in DB::ReadFromStorageStep::ReadFromStorageStep(std::__1::shared_ptr<DB::RWLockImpl::LockHolderImpl>, std::__1::shared_ptr<DB::StorageInMemoryMetadata const>&, DB::SelectQueryOptions, std::__1::shared_ptr<DB::IStorage>, std::__1::vector<std::__1::basic_st
ring<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&, std::__1::shared_ptr<DB::Context>, DB::QueryProcessingStage
::Enum, unsigned long, unsigned long) /build/obj-x86_64-linux-gnu/../src/Processors/QueryPlan/ReadFromStorageStep.cpp:39:26
#15 0x2a01ca70 in std::__1::__unique_if<DB::ReadFromStorageStep>::__unique_single std::__1::make_unique<DB::ReadFromStorageStep, std::__1::shared_ptr<DB::RWLockImpl::LockHolderImpl>&, std::__1::shared_ptr<DB::StorageInMemoryMetadata const>&, DB::SelectQueryOptions&, std
::__1::shared_ptr<DB::IStorage>&, 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> > > >&, DB::SelectQueryInfo&, st
d::__1::shared_ptr<DB::Context>&, DB::QueryProcessingStage::Enum&, unsigned long&, unsigned long&>(std::__1::shared_ptr<DB::RWLockImpl::LockHolderImpl>&, std::__1::shared_ptr<DB::StorageInMemoryMetadata const>&, DB::SelectQueryOptions&, std::__1::shared_ptr<DB::IStorage>&,
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> > > >&, DB::SelectQueryInfo&, std::__1::shared_ptr<DB::Context>&,
DB::QueryProcessingStage::Enum&, unsigned long&, unsigned long&) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/memory:3028:32
#16 0x29ff556a in DB::InterpreterSelectQuery::executeFetchColumns(DB::QueryProcessingStage::Enum, DB::QueryPlan&, 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&) /build/obj-x86_64-linux-gnu/../src/Interpreters/InterpreterSelectQuery.cpp:1383:26
#17 0x29fe6b83 in DB::InterpreterSelectQuery::executeImpl(DB::QueryPlan&, std::__1::shared_ptr<DB::IBlockInputStream> const&, std::__1::optional<DB::Pipe>) /build/obj-x86_64-linux-gnu/../src/Interpreters/InterpreterSelectQuery.cpp:795:9
#18 0x29fe5771 in DB::InterpreterSelectQuery::buildQueryPlan(DB::QueryPlan&) /build/obj-x86_64-linux-gnu/../src/Interpreters/InterpreterSelectQuery.cpp:473:5
#19 0x2a47d370 in DB::InterpreterSelectWithUnionQuery::buildQueryPlan(DB::QueryPlan&) /build/obj-x86_64-linux-gnu/../src/Interpreters/InterpreterSelectWithUnionQuery.cpp:182:38
#20 0x29ee5bff in DB::InterpreterExplainQuery::executeImpl() /build/obj-x86_64-linux-gnu/../src/Interpreters/InterpreterExplainQuery.cpp:265:21
#21 0x29ee2e40 in DB::InterpreterExplainQuery::execute() /build/obj-x86_64-linux-gnu/../src/Interpreters/InterpreterExplainQuery.cpp:73:14
#22 0x2a7b44a2 in DB::executeQueryImpl(char const*, char const*, DB::Context&, bool, DB::QueryProcessingStage::Enum, bool, DB::ReadBuffer*) /build/obj-x86_64-linux-gnu/../src/Interpreters/executeQuery.cpp:389:28
#23 0x2a7b1cb3 in DB::executeQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::Context&, bool, DB::QueryProcessingStage::Enum, bool) /build/obj-x86_64-linux-gnu/../src/Interpreters/executeQuery.cpp:675:30
#24 0x2b7993b2 in DB::TCPHandler::runImpl() /build/obj-x86_64-linux-gnu/../src/Server/TCPHandler.cpp:253:24
#25 0x2b7b649a in DB::TCPHandler::run() /build/obj-x86_64-linux-gnu/../src/Server/TCPHandler.cpp:1217:9
#26 0x31d9c57e in Poco::Net::TCPServerConnection::start() /build/obj-x86_64-linux-gnu/../contrib/poco/Net/src/TCPServerConnection.cpp:43:3
#27 0x31d9d281 in Poco::Net::TCPServerDispatcher::run() /build/obj-x86_64-linux-gnu/../contrib/poco/Net/src/TCPServerDispatcher.cpp:114:20
#28 0x3206b5d5 in Poco::PooledThread::run() /build/obj-x86_64-linux-gnu/../contrib/poco/Foundation/src/ThreadPool.cpp:199:14
#29 0x320657ad in Poco::ThreadImpl::runnableEntry(void*) /build/obj-x86_64-linux-gnu/../contrib/poco/Foundation/src/Thread_POSIX.cpp:345:27
#30 0x7ffff7f853e8 in start_thread (/usr/lib/libpthread.so.0+0x93e8)
```
</details>
2020-09-01 10:04:08 +03:00
Mark Papadakis
ff76790a59
Update AggregatingTransform.cpp
...
Replaced redundant call to chunk.getNumRows() with local var.
2020-08-28 16:08:06 +03:00
alexey-milovidov
65ee7dcb18
Merge pull request #13941 from gervarela/avro_confluent_skip_missing_magic_or_schema_id
...
Skip abnormaly small messages in AvroConfluent format
2020-08-26 19:34:42 +03:00
alexey-milovidov
3c6675f7f4
Update AvroRowInputFormat.cpp
2020-08-26 02:26:27 +03:00
alexey-milovidov
5d4507907d
Update AvroRowInputFormat.cpp
2020-08-26 00:19:51 +03:00
alexey-milovidov
efa5b76605
Update AvroRowInputFormat.cpp
2020-08-26 00:17:39 +03:00
Alexander Kuzmenkov
e3c919ec19
Merge pull request #13847 from hexiaoting/dev_rmcode
...
Deprecate ODBCDriver format
2020-08-24 22:34:52 +03:00
alexey-milovidov
b71ef6db22
Update AvroRowInputFormat.cpp
2020-08-21 18:34:15 +03:00
alexey-milovidov
84db9a3a66
Merge pull request #13906 from tomjiang1987/optimize_error_msg_for_null
...
optimize error msg for null value of TabSeparatedRow format
2020-08-21 16:06:16 +03:00
Gervasio Varela
a6a18b62f9
AvroConfluent + Kafla: Skip malformed messages that do not contain at least the AvroConfluent magic number and the schema id definition.
2020-08-21 11:11:41 +02:00
tao jiang
294aa985e0
fix typo exception name
2020-08-21 08:53:00 +08:00
alexey-milovidov
c5a7b1c456
Update RowInputFormatWithDiagnosticInfo.cpp
2020-08-20 20:34:55 +03:00
alexey-milovidov
911946b517
Update TabSeparatedRowInputFormat.cpp
2020-08-20 20:32:49 +03:00
Nikolai Kochetov
7c0fcb2039
Merge pull request #13611 from ClickHouse/array-join-processor
...
Refactor ARRAY JOIN
2020-08-20 17:56:37 +03:00
tao jiang
189c284597
fix if statement code style check
2020-08-20 18:42:14 +08:00
tao jiang
70ef84ee4b
fix code style check
2020-08-20 18:06:41 +08:00
Jiang Tao
613e3f7247
optimize error msg for null value
2020-08-20 11:25:28 +08:00
hexiaoting
e9be2f14ea
fix implementation for \n separated lines
2020-08-19 11:50:43 +08:00
Mark Papadakis
734f57462b
Update PipelineExecutor.cpp
...
Should have used back_edges instead of direct_edges
2020-08-18 15:09:23 +03:00
hexiaoting
ddbfe0ce21
Deprecate ODBCDriver format
2020-08-18 11:29:40 +08:00
hexiaoting
0451d57293
Add new feature: LineAsString Format
2020-08-18 10:35:08 +08:00
hexiaoting
405a6fb08f
New feature: LineAsString format. #13630
2020-08-17 18:20:23 +08:00
Alexey Milovidov
09846a92cd
Fix typos
2020-08-16 15:09:41 +03:00
tavplubix
18ef911fe8
Merge pull request #13672 from zhang2014/refactor/materialize_mysql_database
...
ISSUES-4006 split mysql protocol to multiple packets
2020-08-16 13:55:11 +03:00
alexey-milovidov
c5c79e9408
Merge pull request #13590 from azat/TSV-fix-CR-assertion
...
Fix assertion for carriage return in TSV format header
2020-08-15 11:15:23 +03:00
alexey-milovidov
d95b9f73a4
Update TabSeparatedRowInputFormat.cpp
2020-08-15 11:11:10 +03:00
Nikolai Kochetov
8e631a98ea
Refactor ActionsChain.
2020-08-14 21:24:58 +03:00
Nikolai Kochetov
6934974fc5
Lift up ARRAY JOIN step.
2020-08-14 21:24:31 +03:00
Nikolai Kochetov
85d0f1a480
Add ARRAY JOIN to ActionsChain
2020-08-14 21:24:19 +03:00
Nikolai Kochetov
95bbda3667
Specify columns after ARRAY JOIN and JOIN.
...
Add ArrayJoinTransform and ArrayJoinStep.
2020-08-14 21:24:03 +03:00
zhang2014
4199baf69d
Merge branch 'master' of github.com:yandex/ClickHouse into refactor/materialize_mysql_database
2020-08-14 13:30:12 +08:00
alexey-milovidov
eeefcd6493
Merge pull request #13337 from ClickHouse/refactor-pipes-3
...
Refactor Pipe
2020-08-14 04:12:22 +03:00
alexey-milovidov
3b05c315e4
Update Pipe.h
2020-08-14 04:10:10 +03:00
zhang2014
96bd3ac34b
ISSUES-4006 split mysql protocol
2020-08-13 20:41:36 +08:00
zhang2014
34f4c8972e
ISSUES-4006 split replication packets
2020-08-13 20:07:02 +08:00
zhang2014
c76d7e3121
ISSUES-4006 split generic packets
2020-08-13 18:17:13 +08:00
zhang2014
c0d42b764e
ISSUES-4006 split protocol text packet
2020-08-13 17:20:45 +08:00