Commit Graph

513 Commits

Author SHA1 Message Date
Azat Khuzhin
510eab25a1 Add timeout into "Timeout exceeded while reading from" message 2021-12-14 10:18:57 +03:00
Azat Khuzhin
eb9968babf Add timeout into "Read timeout while draining from" message 2021-12-14 10:18:57 +03:00
Azat Khuzhin
4e4837758a Remove readline support
- it was not nested for a long time
- replxx is an upstream way for completion
2021-12-11 11:29:59 +03:00
Azat Khuzhin
fa6090f588 Fix processing initial table (--table/stdin) in clickhouse-local
This patch will:
- fix the issue when table had been tried to create multiple times for
  --queries-files
- create these table for --interactive mode (before it works only if you
  had some queries already, i.e. when it run interactive after
  non-interactive)

This will also make ClientBase interface a little bit cleaner, by
removing one abstract method getQueryTextPrefix()
2021-12-10 22:08:03 +03:00
Nikita Mikhaylov
dbf5091016
Parallel reading from replicas (#29279) 2021-12-09 13:39:28 +03:00
alexey-milovidov
50c23a9fd6
Merge pull request #31123 from amosbird/repl-improvement
Better clickhouse-client multiline input
2021-12-06 12:22:13 +03:00
Anton Popov
6f4d9a53b2 Merge remote-tracking branch 'origin/sparse-serialization' into HEAD 2021-12-01 15:54:33 +03:00
mergify[bot]
b4f43c59a2
Merge branch 'master' into stress-test 2021-12-01 10:12:22 +00:00
alexey-milovidov
96ec92c7cd
Merge pull request #31155 from ClickHouse/incremental-profile-events
Send incremental profile events to client
2021-12-01 04:04:41 +03:00
mergify[bot]
e6f5792ba3
Merge branch 'master' into stress-test 2021-11-29 09:01:33 +00:00
Raúl Marín
f0ee0724ac Reduce dependencies on ASTSelectQuery.h
243 -> 152
2021-11-26 18:35:24 +01:00
mergify[bot]
ce0c112586
Merge branch 'master' into stress-test 2021-11-25 11:09:26 +00:00
Anton Popov
ccd78e3838 Merge remote-tracking branch 'upstream/master' into HEAD 2021-11-22 17:19:35 +03:00
Vitaly Baranov
6634fcbac7 Rename Quota::ResourceType -> QuotaType and move it to Access/Common. 2021-11-19 00:14:23 +03:00
Kruglov Pavel
f27fcf8372
Merge pull request #31004 from Avogar/output-formats
Small refactoring in formats
2021-11-17 20:44:46 +03:00
Amos Bird
93294734d3
Better clickhouse-client multiline input 2021-11-17 22:11:30 +08:00
Kseniia Sumarokova
d1374481df
Merge pull request #31457 from azat/local-pager
Add --pager support for clickhouse-local
2021-11-17 09:29:56 +03:00
Azat Khuzhin
bbbbd261b8 Add --pager support for clickhouse-local 2021-11-16 22:25:32 +03:00
mergify[bot]
923874060a
Merge branch 'master' into stress-test 2021-11-16 16:42:50 +00:00
Nikolay Degterinsky
ba50e8387d Merge branch 'master' into query_parameters 2021-11-15 19:55:54 +00:00
Nikolay Degterinsky
5d07387987 Fix INFILE tests 2021-11-15 19:55:27 +00:00
Kseniia Sumarokova
846fbd059b
Merge pull request #31403 from kssenii/fix-client-output
Fix client
2021-11-14 15:01:30 +03:00
kssenii
ad1b7c83cd Fix 2021-11-14 07:19:59 +00:00
alexey-milovidov
e323b83f6a
Merge pull request #30876 from pmed/backslash_letter_interactive_input
add aliases for `\<letter>` interactive client commands
2021-11-14 01:43:13 +03:00
Nikolai Kochetov
6623c609cf
Merge pull request #19587 from ClickHouse/refactor-pipeline-executor
Refactor pipeline executor
2021-11-12 11:49:05 +03:00
Kseniia Sumarokova
2313981fd7
Merge pull request #31260 from azat/external-cleanup
Cleanup extern ProfileEvents/CurrentMetrics and add a style check
2021-11-12 00:02:57 +03:00
avogar
e5661b9b62 Minor change 2021-11-11 21:09:21 +03:00
mergify[bot]
58c5981cab
Merge branch 'master' into refactor-pipeline-executor 2021-11-11 16:16:52 +00:00
Nikolay Degterinsky
7b5954b736 Merge branch 'master' into query_parameters 2021-11-11 11:43:00 +00:00
Azat Khuzhin
baf14444e6 Cleanup ProfileEvents and CurrentMetrics 2021-11-10 21:15:27 +03:00
kssenii
6bc7fb1edf Fixes 2021-11-10 09:33:48 +00:00
Anton Popov
a20922b2d3 Merge remote-tracking branch 'origin/sparse-serialization' into HEAD 2021-11-09 15:36:25 +03:00
kssenii
bfde7fd36c Better 2021-11-09 12:06:43 +00:00
mergify[bot]
f55e1439cb
Merge branch 'master' into output-formats 2021-11-08 15:33:45 +00:00
Dmitry Novik
a093395b9b Process incremental profile events on client 2021-11-08 16:38:31 +03:00
kssenii
dead99011b Merge branch 'master' of github.com:ClickHouse/ClickHouse into intersect-except-fix 2021-11-08 16:15:33 +03:00
Kseniia Sumarokova
908d78febe
Merge pull request #30851 from kssenii/clickhouse-local-improve
Allow delayed interactive mode
2021-11-08 10:07:29 +03:00
tavplubix
94a66f724e
Merge pull request #30135 from FArthur-cmd/add_parallel_reading_from_infile
Add parallel file reading `FROM INFILE` in client
2021-11-06 15:54:27 +03:00
kssenii
26c4affc18 Fixes 2021-11-04 11:00:35 +00:00
avogar
2dd4393ca1 Small refactoring in formats 2021-11-03 20:07:05 +03:00
mergify[bot]
8ef9e61e36
Merge branch 'master' into stress-test 2021-11-03 08:28:43 +00:00
kssenii
feb3d8bc75 Merge branch 'master' of github.com:ClickHouse/ClickHouse into clickhouse-local-improve 2021-11-02 20:01:15 +00:00
Kseniia Sumarokova
351c7bc8d6
Merge pull request #30881 from kssenii/fix-local-verbose
clickhouse-local interactive fix --verbose and allow logging into file
2021-11-01 23:08:49 +03:00
kssenii
35349056b8 Fix 2021-11-01 16:33:19 +03:00
zhangxiao871
45c12f9b2a merge from master 2021-11-01 18:32:56 +08:00
alexey-milovidov
04f5c4bd9a
Merge pull request #30938 from kssenii/fix-local-file-progress
Fix file progress for clickhouse-local
2021-11-01 12:39:12 +03:00
kssenii
d7dab834ec Fix file progress for local 2021-11-01 00:33:03 +03:00
Alexey Milovidov
993f3faefd Miscellaneous 2021-10-31 18:11:46 +03:00
Pavel Medvedev
7b50ab7136 skip spaces before and after \<letter> alias
... for proper single letter like `\l`, `\d` handling.

Using `std::search()` for alias substring search instead of `.starts_with()`
to get the alias start position, to check the leading range contains only space
characters, and to get the rest of input after the space.

See issue #9339
2021-10-31 15:46:30 +01:00
alexey-milovidov
c504e0c08d
Update ClientBase.cpp 2021-10-30 21:17:38 +03:00
Alexey Milovidov
05c2cd098c Fix parallel formatting and progress flicker in clickhouse-client 2021-10-30 21:02:33 +03:00
kssenii
e97233f33d Fix --verbose in local and logging 2021-10-30 17:23:24 +03:00
Pavel Medvedev
f4e3d053c2 add aliases for \<letter> interactive client commands
initial implementation for:
  * \d aka SHOW TABLES
  * \l aka SHOW DATABASES
  * \c aka USE

Replace prefix of interactive `input` string with an aliased command
inside of the loop of `ClientBase::runInteractive()` in order to allow
command parameters, like `\c db_name`.

See issue #9339
2021-10-30 09:00:45 +02:00
kssenii
07bab5193f Delayed interactive 2021-10-29 16:23:53 +03:00
Artur
89d8fb7622 correct test 2021-10-28 21:23:58 +00:00
Artur
72685d0c78 refactoring and test improvement 2021-10-28 18:46:51 +00:00
mergify[bot]
c1bff1b17d
Merge branch 'master' into stress-test 2021-10-28 14:53:30 +00:00
Alexey Milovidov
8b4a6a2416 Remove cruft 2021-10-28 02:10:39 +03:00
mergify[bot]
d9d9d38e4f
Merge branch 'master' into stress-test 2021-10-27 19:00:31 +00:00
Artur
20c5e9d321 refactoring, adding tests for local 2021-10-26 15:16:58 +00:00
zhangxiao871
bf9aebac90 Fix test and build 2021-10-26 12:45:09 +08:00
Nikolai Kochetov
05f42e2d07 Merge branch 'master' into refactor-pipeline-executor 2021-10-25 12:09:38 +03:00
Kruglov Pavel
855b10261c
Merge pull request #30285 from kssenii/fix-local-exceptions
Fix printing stacktraces for clickhouse-local
2021-10-24 19:54:59 +03:00
Azat Khuzhin
83d68246c3 Fix LOGICAL_ERROR on connection draining in case of ECONNRESET
In case of ECONNRESET (Connection reset by peer) the "cancelled" will
not be set, and so drain() will fail with LOGICAL_ERROR:

<details>

    2021.10.16 04:10:55.054771 [ 7635 ] {882164e0-ca26-4955-8759-708ba1f6e85c} <Error> PullingAsyncPipelineExecutor: Code: 210. DB::NetException: Connection reset by peer, while writing to socket (127.0.0.2:9000). (NETWORK_ERROR), Stack trace (when copying this message, always include the lines below):

    ...
    4. ./obj-x86_64-linux-gnu/../src/Common/NetException.h:12: DB::NetException::NetException(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x20db5749 in /usr/bin/clickhouse
    5. ./obj-x86_64-linux-gnu/../src/IO/WriteBufferFromPocoSocket.cpp:56: DB::WriteBufferFromPocoSocket::nextImpl() @ 0x211d56bb in /usr/bin/clickhouse
    6. ./obj-x86_64-linux-gnu/../src/IO/WriteBuffer.h:47: DB::WriteBuffer::next() @ 0x14e4c874 in /usr/bin/clickhouse
    7. ./obj-x86_64-linux-gnu/../src/Client/Connection.cpp:560: DB::Connection::sendCancel() @ 0x227c0c22 in /usr/bin/clickhouse
    8. ./obj-x86_64-linux-gnu/../src/Client/HedgedConnections.cpp:242: DB::HedgedConnections::sendCancel() @ 0x227f1b53 in /usr/bin/clickhouse
    ...
    2021.10.16 04:12:35.555530 [ 5575 ] {} <Fatal> : Logical error: 'Cannot drain connections: cancel first.'.

</details>

Found by stress tests on CI [1].

  [1]: https://clickhouse-test-reports.s3.yandex.net/0/d3cb99701d4aaec384fd183168d10e0f650ecc1d/stress_test_(debug).html#fail1
2021-10-23 22:44:32 +03:00
Filatenkov Artur
2384108ea5
remove trailing whitespaces 2021-10-22 15:32:24 +03:00
zhangxiao871
4e49eba087 Fix data race 2021-10-22 20:23:25 +08:00
Filatenkov Artur
328a605f7e
Merge branch 'ClickHouse:master' into add_parallel_reading_from_infile 2021-10-22 15:20:00 +03:00
Azat Khuzhin
b0984a3337 clickhouse-local: fix block lost in interactive mode
In case only one block in the query execution, LocalConnection can
return Progress packet instead of the block itself, after it will call
poll() again and the block will got lost.

Fix this by processing block before Progress packet.

And actually AFAICS Progress can be removed after pollImpl(), since
there is Progress handling before.

Fixes: #30282 (cc @kssenii)
2021-10-22 00:46:01 +03:00
zhangxiao871
6cd0f18bfd Fix PVS check 2021-10-21 17:59:24 +08:00
zhangxiao871
ac421b7faf Fix conflicts 2021-10-21 15:50:38 +08:00
zhangxiao871
e6cf9605a5 Refactor and add test. 2021-10-21 15:46:34 +08:00
mergify[bot]
943a1cbba0
Merge branch 'master' into stress-test 2021-10-21 04:41:23 +00:00
kssenii
ec7c93728b Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into fix-local-exceptions 2021-10-20 23:42:27 +00:00
Kseniia Sumarokova
cae31437e8
Merge pull request #30336 from kssenii/fix-local-defaults
Send table columns in clickhouse-local
2021-10-20 21:18:02 +03:00
zhangxiao871
8480ae631a Refactor and add test. 2021-10-20 16:35:37 +08:00
Kseniia Sumarokova
5324cc8359
Merge pull request #30282 from kssenii/fix-local-less-threads
Less threads in clickhouse-local, fix Ok. printing
2021-10-19 22:54:28 +03:00
Nikolai Kochetov
171a6e35ce Fix build. 2021-10-19 21:39:34 +03:00
Nikolai Kochetov
1e1bd568ac Merge branch 'master' into refactor-pipeline-executor 2021-10-19 17:57:58 +03:00
Maksim Kita
0b3926950d
Merge pull request #30143 from amosbird/useupstreamreplxx
Use upstream replxx
2021-10-19 17:50:43 +03:00
Ilya Yatsishin
4396daeb1f
Merge pull request #30064 from azat/client-print-profile-events 2021-10-19 12:42:09 +03:00
kssenii
4bf1f2ca12 Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into fix-local-exceptions 2021-10-19 08:28:47 +00:00
Azat Khuzhin
424bf6fcf4 client: add ability to print raw profile events
This can be useful for debugging and for testing (since you will not
need to obtain query_id and look at query_log).

v2:
- mark test as long
- add option to docs
- add type of profile event into logs too
v3:
- resolve conflicts
- and fix onProfileEvents callback
v4:
- add --print-profile-events separate switch
2021-10-19 00:54:38 +03:00
kssenii
b7a53df9de Send columns description in clickhouse-local 2021-10-18 14:53:42 +00:00
Nikolay Degterinsky
d76976e272 Merge branch 'master' into query_parameters 2021-10-18 17:34:20 +03:00
Kruglov Pavel
003955b59f
Merge branch 'master' into clickhouse-local 2021-10-18 14:24:08 +03:00
kssenii
1cc511789d Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into fix-local-less-threads 2021-10-18 08:30:59 +00:00
Nikolai Kochetov
bfcbf5abe0 Merge branch 'master' into removing-data-streams-folder 2021-10-17 10:42:37 +03:00
kssenii
4390dde76c Fix local break on timeout 2021-10-16 19:50:05 +00:00
kssenii
09e3aec96e Fix local break on timeout 2021-10-16 19:48:51 +00:00
alexey-milovidov
3d2fb2f67b
Merge pull request #30275 from kssenii/fix-local-query-stage
--stage for clickhouse-local
2021-10-16 18:42:28 +03:00
Nikolai Kochetov
a08c98d760 Move some files. 2021-10-16 17:03:50 +03:00
kssenii
5db75f9e77 Better exception 2021-10-16 11:30:24 +00:00
kssenii
9525437499 Less threads in local, fix Ok. printing 2021-10-16 10:25:39 +00:00
kssenii
6c0eaf76da Query stage for local 2021-10-16 08:43:18 +00:00
Nikolai Kochetov
067eaadadd Merge branch 'master' into removing-data-streams-folder 2021-10-16 09:46:05 +03:00
Nikolai Kochetov
c668696047
Merge pull request #30171 from ClickHouse/remove-stream-interfaces
Remove stream interfaces
2021-10-16 09:34:01 +03:00
Nikolai Kochetov
fd14faeae2 Remove DataStreams folder. 2021-10-15 23:18:20 +03:00
alexey-milovidov
50b54b37ca
Merge pull request #30072 from ClickHouse/client-profile-msg
Fix hardware utilization info printing in client
2021-10-15 23:05:43 +03:00
avogar
be4fc79d32 Better handling exceptions, update tests 2021-10-15 18:30:32 +03:00
Filatenkov Artur
77bbd949dc
Merge branch 'ClickHouse:master' into add_parallel_reading_from_infile 2021-10-15 15:26:45 +03:00
avogar
a1a4df2501 Fix handling exception 'unrecognised option' in clickhouse-local and client 2021-10-14 16:34:05 +03:00
Nikolai Kochetov
ab28c6c855 Remove BlockInputStream interfaces. 2021-10-14 13:25:43 +03:00
Nikolai Kochetov
3d3e143c29
Merge pull request #30001 from ClickHouse/remove-streams-from-formats
Remove streams from formats.
2021-10-14 12:39:07 +03:00
Nikolay Degterinsky
63faf0212d Merge branch 'master' into query_parameters 2021-10-13 23:55:09 +03:00
Amos Bird
8851cb8459
Use upstream replxx 2021-10-14 00:52:53 +08:00
Filatenkov Artur
bf1d45362d
Merge branch 'master' into add_parallel_reading_from_infile 2021-10-13 18:47:13 +03:00
Artur
18c2ac2e1e add parallel reading from infile in client 2021-10-13 15:43:52 +00:00
zhangxiao871
923c76fc99 Modify comments 2021-10-13 18:38:24 +08:00
Nikolai Kochetov
a5fa5c7ea3 Move formats to Impl 2021-10-13 13:01:08 +03:00
Nikolay Degterinsky
49c1a52f34 Merge branch 'master' into query_parameters 2021-10-13 03:04:40 +03:00
Nikolay Degterinsky
5fa0f9e7fd Add parameters to INSERT queries 2021-10-13 03:01:41 +03:00
Dmitry Novik
f1bbc7f9b6 Fix hardware utilization info printing in client 2021-10-12 23:17:15 +03:00
Nikolai Kochetov
2c92caac17 Fix clickhouse local. 2021-10-11 21:20:35 +03:00
Nikolai Kochetov
ec18340351 Remove streams from formats. 2021-10-11 19:11:50 +03:00
Dmitry Novik
bfdd34c13d code cleanup 2021-10-11 17:39:24 +03:00
Dmitry Novik
7c3192735a Reset profile events stream in Connection::sendQuery 2021-10-11 17:39:24 +03:00
Dmitry Novik
9f9af28b5e Output memory usage with progress 2021-10-11 17:39:24 +03:00
Dmitry Novik
73df6190df Cleanup code 2021-10-11 17:39:24 +03:00
Dmitry Novik
7e3caf96be Fix cores approximation 2021-10-11 17:39:24 +03:00
Dmitry Novik
4c6b3c40f2 Calculate approximate cores number used 2021-10-11 17:39:24 +03:00
Dmitry Novik
15ac65aa33 Add thread usage info on client side 2021-10-11 17:39:24 +03:00
Dmitry Novik
356723427d WIP on ProfileEvents forwarding 2021-10-11 17:39:23 +03:00
Dmitry Novik
362bcb2f66 Introduce ProfileEvents packet 2021-10-11 17:29:50 +03:00
Nikolai Kochetov
a95c28ec4b
Merge pull request #29898 from ClickHouse/remove-native-stream
Remove some more streams.
2021-10-10 21:01:16 +03:00
Alexey Milovidov
103b3c91ba Remove 'printf' function usage. 2021-10-10 04:21:07 +03:00
Nikolai Kochetov
c6bce1a4cf Update Native. 2021-10-08 20:21:19 +03:00
Nikolai Kochetov
340b53ef85 Remove some more streams. 2021-10-08 17:03:54 +03:00
kssenii
c734ada95b Fix 2021-10-07 20:28:38 +00:00
mergify[bot]
0910a8ec74
Merge branch 'master' into stress-test 2021-10-05 09:46:18 +00:00
Azat Khuzhin
bbee102e58 Fix --stage for clickhouse-local
This also fixes UBsan error, since query_processing_stage was not
initialized before for clickhouse-local.
2021-10-04 21:00:48 +03:00
Pavel Kruglov
2db11bc6c5 Add backward compatibility check in stress test 2021-10-04 16:34:14 +03:00
Kseniia Sumarokova
ddc775b1c8
Merge pull request #29626 from kssenii/fix-signals
Follow-up for #26231
2021-10-03 22:13:54 +03:00
Kseniia Sumarokova
ad0fcda713
Update ClientBase.h 2021-10-03 12:11:59 +03:00
kssenii
aa539937fb Fix build check 2021-10-03 06:23:05 +00:00
kssenii
0ed92d85e2 Fix 2021-10-02 13:05:19 +00:00
kssenii
e10255bba3 Fix 2021-10-02 08:10:34 +00:00
Alexey Milovidov
fe6b7c77c7 Rename "common" to "base" 2021-10-02 10:13:14 +03:00
kssenii
dabab85c60 Fix 2021-10-01 17:31:00 +00:00
kssenii
05181c6900 Fix 2021-10-01 14:13:02 +00:00
kssenii
59cbe8579d Interrupt listener 2021-09-29 22:01:52 +00:00
kssenii
07b979bda3 Rewrite to processors 2021-09-29 19:17:02 +00:00
kssenii
2c005db9ad Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into interactive-mode-for-clickhouse-local 2021-09-29 17:45:15 +00:00
Nikolai Kochetov
78a7665f43 Merge branch 'master' into rewrite-pushing-to-views 2021-09-27 10:56:50 +03:00
kssenii
8e200b68a4 Small fix 2021-09-26 21:22:04 +00:00
kssenii
2129230b1e Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into interactive-mode-for-clickhouse-local 2021-09-25 09:16:05 +00:00
kssenii
f3784780fd Fixes 2021-09-25 08:46:57 +00:00
Alexey Milovidov
cd7f9d981c Remove ya.make 2021-09-25 04:22:54 +03:00
Nikolai Kochetov
998d29ebc7 Merge branch 'master' into rewrite-pushing-to-views 2021-09-23 13:10:27 +03:00
Azat Khuzhin
015695b3bf Fix connection timeouts (send_timeout/receive_timeout)
Query is not executed within sendQuery() function.

INSERT query consist from multiple parts:
- sendQuery()
- write()/writePrepared() -- send Data blocks
- writeSuffix() -- send empty Data block and receive EndOfStream
(see RemoteBlockOutputStream for more info)
So as you can see it is not executed completely from the sendQuery() function.

SELECT query (and others) also send Data blocks to the client after.

And what this means that temporary timeout (via TimeoutSetter) is not
enough, since next query can use timeout from the previous query.

Usually you do not see it, because:
- You don't use custom send_timeout/receive_timeout
- SELECT is fast enough

However it is not the case with INSERT, especially with
insert_distributed_sync=1, since
DistributedBlockOutputStream::writeSuffix() may stack because remote
server still INSERT'ing the data (i.e. creating znodes in zookeeper for
ReplicatedMergeTree, syncing blocks, and similar) that was issued from
DistributedBlockOutputStream::write(), and it will lead to the following
exception:

    Code: 209, e.displayText() = DB::NetException: Timeout exceeded while reading from socket (127.1:9000): while receiving packet from ch-47-drt.dpa.semrush.net:9000: Insertion status:
    Wrote X blocks and Y rows on shard Z replica 0, 127.1:9000 (average 0 ms per block, the slowest block N ms)
    0. DB::Exception::Exception()
    1. DB::ReadBufferFromPocoSocket::nextImpl()
    2. void DB::readVarUIntImpl<false>(unsigned long&, DB::ReadBuffer&)
    3. DB::Connection::receivePacket()
    4. DB::RemoteBlockOutputStream::writeSuffix()
    ...
2021-09-23 09:03:13 +03:00
kssenii
04575eb12b Review fixes, fix style check and clang-tidy 2021-09-22 21:35:29 +00:00