Commit Graph

120400 Commits

Author SHA1 Message Date
Val Doroshchuk
efa638ef3c MaterializedMySQL: Support unquoted utf-8 strings in DDL
Since ClickHouse does not support unquoted utf-8 strings but MySQL does.

Instead of fixing Lexer to recognize utf-8 chars as TokenType::BareWord,
suggesting to quote all unrecognized tokens before applying any DDL.

Actual parsing and validating the syntax will be done by particular Parser.

If there is any TokenType::Error, the query is unable to be parsed anyway.
Quoting such tokens can provide the support of utf-8 names.

See `tryQuoteUnrecognizedTokens` and `QuoteUnrecognizedTokensTest`.

mysql> CREATE TABLE 道.渠(...

is converted to

CREATE TABLE `道`.`渠`(...

Also fixed the bug with missing * while doing SELECT in full sync because db or table name are back quoted when not needed.
2023-07-24 11:12:10 +02:00
Azat Khuzhin
0401dc453e Fix flakiness of test_version_update_after_mutation by enabling force_remove_data_recursively_on_drop
Since there can be some leftovers:

    2023.07.24 07:08:25.238066 [ 140 ] {} <Error> Application: Code: 219. DB::Exception: Cannot drop: filesystem error: in remove: Directory not empty ["/var/lib/clickhouse/data/system/"]. Probably database contain some detached tables or metadata leftovers from Ordinary engine. If you want to remove all data anyway, try to attach database back and drop it again with enabled force_remove_data_recursively_on_drop setting: Exception while trying to convert database system from Ordinary to Atomic. It may be in some intermediate state. You can finish conversion manually by moving the rest tables from system to .tmp_convert.system.9396432095832455195 (using RENAME TABLE) and executing DROP DATABASE system and RENAME DATABASE .tmp_convert.system.9396432095832455195 TO system. (DATABASE_NOT_EMPTY), Stack trace (when copying this message, always include the lines below):

    0. DB::Exception::Exception(DB::Exception::MessageMasked&&, int, bool) @ 0x000000000e68af57 in /usr/bin/clickhouse
    1. ? @ 0x000000000cab443c in /usr/bin/clickhouse
    2. DB::DatabaseOnDisk::drop(std::shared_ptr<DB::Context const>) @ 0x000000001328d617 in /usr/bin/clickhouse
    3. DB::DatabaseCatalog::detachDatabase(std::shared_ptr<DB::Context const>, String const&, bool, bool) @ 0x0000000013524a6c in /usr/bin/clickhouse
    4. DB::InterpreterDropQuery::executeToDatabaseImpl(DB::ASTDropQuery const&, std::shared_ptr<DB::IDatabase>&, std::vector<StrongTypedef<wide::integer<128ul, unsigned int>, DB::UUIDTag>, std::allocator<StrongTypedef<wide::integer<128ul, unsigned int>, DB::UUIDTag>>>&) @ 0x0000000013bc05e4 in /usr/bin/clickhouse
    5. DB::InterpreterDropQuery::executeToDatabase(DB::ASTDropQuery const&) @ 0x0000000013bbc6b8 in /usr/bin/clickhouse
    6. DB::InterpreterDropQuery::execute() @ 0x0000000013bbba22 in /usr/bin/clickhouse
    7. ? @ 0x00000000140b13a5 in /usr/bin/clickhouse
    8. DB::executeQuery(String const&, std::shared_ptr<DB::Context>, bool, DB::QueryProcessingStage::Enum) @ 0x00000000140ad20e in /usr/bin/clickhouse
    9. ? @ 0x00000000140d2ef0 in /usr/bin/clickhouse
    10. DB::maybeConvertSystemDatabase(std::shared_ptr<DB::Context>) @ 0x00000000140d0aaf in /usr/bin/clickhouse
    11. DB::Server::main(std::vector<String, std::allocator<String>> const&) @ 0x000000000e724e55 in /usr/bin/clickhouse
    12. Poco::Util::Application::run() @ 0x0000000017ead086 in /usr/bin/clickhouse
    13. DB::Server::run() @ 0x000000000e714a5d in /usr/bin/clickhouse
    14. Poco::Util::ServerApplication::run(int, char**) @ 0x0000000017ec07b9 in /usr/bin/clickhouse
    15. mainEntryClickHouseServer(int, char**) @ 0x000000000e711a26 in /usr/bin/clickhouse
    16. main @ 0x0000000008cf13cf in /usr/bin/clickhouse
    17. __libc_start_main @ 0x0000000000021b97 in /lib/x86_64-linux-gnu/libc-2.27.so
    18. _start @ 0x00000000080705ae in /usr/bin/clickhouse
     (version 23.7.1.2012)

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2023-07-24 10:34:50 +02:00
Smita Kulkarni
0e46cf86b7 Added try-except to check cases when second backup/restore is picked up first 2023-07-24 08:52:19 +02:00
Alexey Milovidov
c794922401 More tests 2023-07-24 08:20:30 +02:00
Alexey Milovidov
890a3754a6 Fix error 2023-07-24 08:19:46 +02:00
Alexey Milovidov
aaa0bf64fd Add a test 2023-07-24 08:05:55 +02:00
Alexey Milovidov
ceaaa78fdc Fix transform 2023-07-24 08:04:38 +02:00
Alexey Milovidov
b225f9c34b
Merge pull request #52450 from ClickHouse/remove-to-decimal-string
Remove `toDecimalString`
2023-07-24 08:40:51 +03:00
Alexey Milovidov
f17844e9c2
Merge pull request #51037 from azat/dist/optimize_skip_unused_shards-join-fix
Fix optimize_skip_unused_shards with JOINs
2023-07-24 08:31:00 +03:00
Azat Khuzhin
6ae4d29180 Fix tests after session_timezone randomization
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2023-07-24 06:24:31 +02:00
Azat Khuzhin
bc167dfde8 clickhouse-test: add proper escaping for HTTP parameters
The problem is that old versions of cURL (7.81.0 at least) handle
additional parameters incorrectly if in previous parameter was "/":

    $ docker run --rm curlimages/curl:8.1.2 --http1.1 --get -vvv 'http://kernel.org/?bar=foo/baz' --data-urlencode "query=select 1 format Null"; echo
    > GET /?bar=foo/baz&query=select+1+format+Null HTTP/1.1
    > User-Agent: curl/8.1.2

    $ docker run --rm curlimages/curl:7.81.0 --http1.1 --get -vvv 'http://kernel.org/?bar=foo/baz' --data-urlencode "query=select 1 format Null"; echo
    > GET /?bar=foo/baz?query=select+1+format+Null HTTP/1.1
    > User-Agent: curl/7.81.0-DEV

Note, that I thought about making the same for cli, but it is not that
easy, even after getting rid of sh -c and string contantenation, it
still cannot be done for CLICKHOUSE_CLIENT_OPT.

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2023-07-24 06:13:12 +02:00
Azat Khuzhin
2389e0f0b6 Randomize timezone in tests across non-deterministic around 1970 and default
There was some cases when some patches to the datetime code leads to
flaky tests, due to the tests itself had been runned using regular
timezone (TZ).

But if you will this tests with something "specific" (that is not
strictly defined around 1970 year), those tests will fail.

So to catch such issues in the PRs itself, let's randomize
session_timezone as well.

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2023-07-24 06:13:12 +02:00
Alexey Milovidov
0c765ddc5c Merge branch 'master' into sql-fetch-allow-without-offset 2023-07-24 05:56:46 +02:00
Alexey Milovidov
ac54be9652 Fix a test 2023-07-24 05:56:18 +02:00
Azat Khuzhin
4a33e027c5 Split StorageReplicatedMergeTree reading methods
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2023-07-24 05:50:44 +02:00
Azat Khuzhin
323128df6f Remove non existing ctor of Cluster::Address
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2023-07-24 05:50:44 +02:00
Azat Khuzhin
83c0f03b98 Change signature of the updateSettingsForCluster() to avoid cluster requirement
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2023-07-24 05:50:44 +02:00
Azat Khuzhin
b222476090 Add ability to pass table for connections checks per-shard to ReadFromRemote
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2023-07-24 05:50:44 +02:00
Azat Khuzhin
67095d2150 Fix comment for function argument in TableFunctionRemote
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2023-07-24 05:50:44 +02:00
Azat Khuzhin
a0070eda02 Slightly optimize code in ClusterProxy::executeQuery()
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2023-07-24 05:50:44 +02:00
Azat Khuzhin
d7f7f16fbc Introduce IStorage::supportsTrivialCountOptimization()
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2023-07-24 05:50:44 +02:00
Alexey Milovidov
169b9d5cc0 Fix tidy 2023-07-24 05:49:06 +02:00
Alexey Milovidov
e87f976f2b Merge branch 'master' into remove-wrong-code 2023-07-24 05:48:06 +02:00
Alexey Milovidov
a1a79eee0f
Merge pull request #51383 from ClickHouse/fix-potentially-bad-code
Remove suspicious code
2023-07-24 06:46:31 +03:00
Alexey Milovidov
eb5038f3e9
Merge pull request #52295 from ClickHouse/allow_vertical_merges_from_compact_to_wide_parts
Enable `allow_vertical_merges_from_compact_to_wide_parts` by default
2023-07-24 06:44:33 +03:00
robot-ch-test-poll4
a104ce6b3b
Merge pull request #52467 from hanfei1991/hanfei/refine-52451
do not throw exception in OptimizedRegularExpressionImpl::analyze
2023-07-24 05:38:54 +02:00
Alexey Milovidov
75efee9675 Fix errors 2023-07-24 05:34:00 +02:00
Alexey Milovidov
a17652a422 Merge branch 'master' into incbin 2023-07-24 05:33:52 +02:00
JackyWoo
ab3376a998
Merge branch 'master' into rewrite_uniq_to_count 2023-07-24 11:04:36 +08:00
Alexey Milovidov
1037b4ecb1 Merge branch 'master' into sql-fetch-allow-without-offset 2023-07-24 02:33:01 +02:00
robot-ch-test-poll2
2b0c423d7d
Merge pull request #52499 from ClickHouse/try-fix-join-ast-fuzz-asan
Try to fix asan wanring in HashJoin
2023-07-24 02:10:59 +02:00
Alexey Milovidov
1bc83afa54
Merge branch 'master' into fix-potentially-bad-code 2023-07-24 03:02:57 +03:00
Alexey Milovidov
e8b271e878
Merge pull request #51916 from ClickHouse/maybe-better-tests
Maybe better tests
2023-07-24 03:01:39 +03:00
Alexey Milovidov
ffc3028438
Merge pull request #52146 from ClickHouse/more-changes
Fix ORDER BY tuple of WINDOW functions (and slightly more changes)
2023-07-24 03:00:35 +03:00
Alexey Milovidov
706da4d530
Merge pull request #51973 from ClickHouse/integration-tests-fix-disaster-2
Fix disaster in integration tests, part 2
2023-07-24 02:57:39 +03:00
Alexey Milovidov
d7cdfb47d3 Fix merge 2023-07-24 01:56:04 +02:00
Alexey Milovidov
5c15e6021b Merge branch 'master' into remove-to-decimal-string 2023-07-24 01:51:43 +02:00
robot-ch-test-poll4
fb045b0d86
Merge pull request #52498 from ClickHouse/dont_shutdown_interserver_before_tables
Don't shutdown interserver before tables
2023-07-24 01:45:25 +02:00
robot-clickhouse
dba7a0dffc Automatic style fix 2023-07-23 23:18:19 +00:00
Alexey Milovidov
40f5649811 Fix test 2023-07-24 01:02:11 +02:00
Alexey Milovidov
890bda177d Merge branch 'master' into allow_vertical_merges_from_compact_to_wide_parts 2023-07-24 00:57:48 +02:00
Alexey Milovidov
641c086dbd Fix Darwin 2023-07-24 00:53:11 +02:00
Alexey Milovidov
7b4d0cf9d5 Fix Darwin 2023-07-24 00:51:20 +02:00
Alexey Milovidov
1e467867e6 Attempt to fix LTO 2023-07-24 00:03:40 +02:00
Han Fei
40992de98d
Merge branch 'master' into hanfei/refine-52451 2023-07-23 23:48:12 +02:00
Igor Nikonov
c0f16dcf03 Test from fuzzer 2023-07-23 21:10:12 +00:00
alesapin
e02948580b Don't shutdown interserver before tables 2023-07-23 22:38:59 +02:00
robot-clickhouse-ci-2
66c0015b87
Merge pull request #52050 from arenadata/ADQM-982
Subsequence string matching (new hasSubsequence() function)
2023-07-23 21:18:27 +02:00
Alexey Milovidov
67f643f27e Fix error 2023-07-23 21:00:28 +02:00
Alexey Milovidov
e21a4c4c9a Fix the test 2023-07-23 20:57:16 +02:00