Commit Graph

524 Commits

Author SHA1 Message Date
BohuTANG
4b0264c2a8 Fix mysql replication GTID event dump format 2020-09-04 12:00:37 +08:00
Alexey Milovidov
4b3220f79a Prepare for clang 11 2020-09-04 03:39:56 +03:00
alexey-milovidov
4f9df21d3e
Merge pull request #10373 from azat/dist-SELECT-optimization
Optimize queries with LIMIT/LIMIT BY/ORDER BY for distributed with GROUP BY sharding_key
2020-09-04 01:38:56 +03:00
zhang2014
802a5a31a0 ISSUES-4006 fix code style 2020-09-03 11:11:18 +08:00
zhang2014
9c091fb2c1 ISSUES-4006 remove unsupport data type 2020-09-03 11:08:38 +08:00
zhang2014
dd0feeeaa1 ISSUES-4006 support datetime with precision 2020-09-03 11:03:28 +08:00
Azat Khuzhin
fffeeeba06 Force WithMergeableStateAfterAggregation via distributed_group_by_no_merge (convert to UInt64)
Possible values:
- 1 - Do not merge aggregation states from different servers for distributed query processing - in case it is for certain that there are different keys on different shards.
- 2 - same as 1 but also apply ORDER BY and LIMIT stages
2020-09-03 00:52:51 +03:00
Azat Khuzhin
4043be3121 Add new query processing stage WithMergeableStateAfterAggregation
Process query until the stage where the aggregate functions were
calculated and finalized.

It will be used for optimize_distributed_group_by_sharding_key.

v2: fix aliases
v3: Fix protocol ABI breakage due to WithMergeableStateAfterAggregation
    Conditions >= for QueryProcessingStage::Enum has been verified, and they
    are ok (in InterpreterSelectQuery).
2020-09-03 00:51:08 +03:00
Dmitry
13ba8cd5a7 fixed spaces 2020-09-02 14:25:11 +03:00
Dmitry
6f18cd772c fixes 2020-09-02 13:07:23 +03:00
Dmitry
2180cdc400 system_events_show_zero_values setting added 2020-09-02 13:00:49 +03:00
BohuTANG
6dfab88156 ISSUES-14235 change string.rfind to string starts_with and add some tests 2020-09-02 08:31:51 +08:00
Alexander Kuzmenkov
fa04b39d32
Revert "Change query event filter and add integration test for empty GTID transaction" 2020-09-02 02:06:53 +03:00
Alexander Kuzmenkov
949a41f8b5
Merge pull request #14321 from BohuTANG/materialize_mysql_query_filter
Change query event filter and add integration test for empty GTID transaction
2020-09-01 17:44:58 +03:00
Artem Zuikov
d304d522cc
Refactoring: rename types to allow change bigint library (#14219) 2020-09-01 12:54:50 +03:00
BohuTANG
453fb837d8 ISSUES-14235 change string.rfind to stringstarts_with 2020-09-01 16:25:15 +08:00
BohuTANG
4d4b4b9532 Fix MaterializeMySQL empty GTID transaction issue #14235 2020-08-30 15:55:34 +08:00
Alexander Kuzmenkov
c4fc434a13
Merge pull request #14060 from azat/parallel_distributed_insert_select-2
Extend parallel_distributed_insert_select to run INSERT into local table
2020-08-26 20:37:36 +03:00
tavplubix
cff92c8ad3
Merge pull request #13820 from BohuTANG/mysql_replica_gtid_issue_4006
ISSUES-4006 support MySQL GTID based replication #4006
2020-08-26 15:02:53 +03:00
BohuTANG
e3bfd1a5b8 ISSUES-4006 fix clang-tidy error on boost::is_any_of 2020-08-26 14:33:05 +08:00
BohuTANG
3510afd149 ISSUES-4006 change UUID from MySQL big-endian to ClickHouse little-endian 2020-08-26 10:39:07 +08:00
BohuTANG
81e679dc22 ISSUES-4006 support gtid sets with whitespace 2020-08-26 09:04:33 +08:00
Azat Khuzhin
50a312534c Extend parallel_distributed_insert_select to run INSERT into local table
Before this patch there was:

- parallel_distributed_insert_select=1, that executes:

    INSERT INTO dist_out SELECT ... FROM underlying_dist_in

After this patch there will be:

- parallel_distributed_insert_select=2, that executes:

    INSERT INTO underlying_dist_out SELECT ... FROM underlying_dist_in

And cover the behaviour w/o integration test, by using the following
techincs:
- SYSTEM STOP DISTRIBUTED SENDS
- prefer_localhost_replica=0
2020-08-25 22:49:13 +03:00
BohuTANG
d01f4d38eb ISSUES-4006 fix fast build warning and remove binlog file name 2020-08-25 17:44:23 +08:00
BohuTANG
d8e88499a5 ISSUES-4006 remove old BinlogDump style 2020-08-25 16:01:51 +08:00
BohuTANG
80af056cb4 ISSUES-4006 change the error code from UNKNOWN_EXCEPTION to LOGICAL_ERROR 2020-08-25 15:49:47 +08:00
BohuTANG
0876ab63ec ISSUES-4006 change to UUID type 2020-08-25 15:44:38 +08:00
Alexey Milovidov
dfe870e38c Merge branch 'new-branch' of https://github.com/ucasFL/ClickHouse into ucasFL-new-branch 2020-08-24 16:26:08 +03:00
Artem Zuikov
becc186c91
Add support for extended precision integers and decimals (#13097) 2020-08-19 14:52:17 +03:00
BohuTANG
26525a5eb1 Merge remote-tracking branch 'origin/master' into mysql_replica_gtid_issue_4006 2020-08-19 08:04:02 +08:00
BohuTANG
30b8159bb0 ISSUES-4006 fix empty gtid format when sets parse 2020-08-18 23:01:21 +08:00
Alexey Milovidov
9615b1f06a Generate ya.make 2020-08-18 12:46:02 +03:00
BohuTANG
a78604db2b ISSUES-4006 add constructor to initialize number member 2020-08-18 11:56:40 +08:00
BohuTANG
34975d1dd3 ISSUES-4006 try to fix PVS check error 2020-08-18 08:56:18 +08:00
BohuTANG
8c9236fefd ISSUES-4006 adapted GTID replication to Materialize MySQL 2020-08-17 22:12:41 +08:00
BohuTANG
c3561cd7e8 ISSUES-4006 add BIT/SET field type support 2020-08-17 16:30:13 +08:00
BohuTANG
ee6ac28773 ISSUES-4006 fix up meta parse 2020-08-17 16:27:34 +08:00
BohuTANG
6557e706c9 ISSUES-4006 fix special build check errors #4006 2020-08-17 16:01:18 +08:00
BohuTANG
a8465cfce6 ISSUES-4006 move MySQL command to the PacketsGeneric.h #4006 2020-08-17 15:27:35 +08:00
BohuTANG
cfc1fea619 ISSUES-4006 add startBinlogDumpGTID api for MySQLClient #4006 2020-08-17 15:21:20 +08:00
BohuTANG
059bf166ae ISSUES-4006 add GTID unit tests #4006 2020-08-17 14:45:43 +08:00
BohuTANG
3ccc650995 ISSUES-4006 add position.Dump() #4006 2020-08-17 09:30:16 +08:00
BohuTANG
e90679707a ISSUES-4006 add MySQL replication GTIDEvent #4006 2020-08-17 09:23:54 +08:00
BohuTANG
b4d18b1a52 ISSUES-4006 add MySQL replication GTID module #4006 2020-08-17 09:02:59 +08:00
Vitaly Baranov
2909ed1bc0 Better initialization of access storages. Make list of access storages dynamic. 2020-08-16 19:15:34 +03:00
feng lv
aaedf02d2b fix conflict 2020-08-16 12:38:39 +08:00
zhang2014
fe49bd3414 Merge branch 'master' of github.com:yandex/ClickHouse into refactor/materialize_mysql_database 2020-08-15 16:12:46 +08:00
alexey-milovidov
ea79c53ed2
Merge pull request #13735 from azat/gcc10-build-fixes-20.7
Fix compilation with gcc10 and libstdc++
2020-08-15 11:01:14 +03:00
zhang2014
2f3042ba86 ISSUES-4006 try fix build 2020-08-15 11:16:55 +08:00
Azat Khuzhin
194d1d514c Fix compilation MySQLReplication with gcc10 and libstdc++
gcc10 reports:
    ../src/Core/MySQLReplication.cpp:62:46: error: use of deleted function ‘std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, char8_t) [with _Traits = std::char_traits<char>]’
2020-08-14 22:15:17 +03:00
zhang2014
b49c3cebb5 ISSUES-4006 try fix build 2020-08-14 23:52:47 +08:00
Alexander Tokmakov
128b19fdba Merge branch 'master' into use_atomic_engine_for_system_db 2020-08-14 13:47:44 +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
zhang2014
7ff62b090e ISSUES-4006 try fix build and style failure 2020-08-14 09:59:59 +08:00
alexey-milovidov
eeefcd6493
Merge pull request #13337 from ClickHouse/refactor-pipes-3
Refactor Pipe
2020-08-14 04:12:22 +03:00
zhang2014
e3b78c5a31 ISSUES-4006 try fix build and style failure 2020-08-14 00:51:51 +08:00
zhang2014
57bf007b82 ISSUES-4006 add ya make 2020-08-13 20:51:29 +08: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
4061254cb1 ISSUES-4006 split authentication 2020-08-13 18:39:15 +08:00
zhang2014
c76d7e3121 ISSUES-4006 split generic packets 2020-08-13 18:17:13 +08:00
zhang2014
57c772e3aa ISSUES-4006 split connection packets 2020-08-13 17:38:00 +08:00
zhang2014
c0d42b764e ISSUES-4006 split protocol text packet 2020-08-13 17:20:45 +08:00
zhang2014
4fcc178deb ISSUES-4006 split mysql protocol 2020-08-13 16:17:33 +08:00
zhang2014
688836cdc4 ISSUES-4006 split msql protocol & fix build 2020-08-13 14:30:29 +08:00
zhang2014
0162c39838 ISSUES-4006 split mysql protocol 2020-08-13 13:02:16 +08:00
Alexander Tokmakov
a6ff049eec use Atomic for system database 2020-08-12 23:40:13 +03:00
tavplubix
4aff48dc3f
Merge pull request #10851 from zhang2014/feature/materialize_mysql_database
ISSUES-4006 support MaterializeMySQL database engine
2020-08-12 15:59:28 +03:00
Alexander Tokmakov
829f7e65de try fix sync, add experimetal flag 2020-08-12 00:59:46 +03:00
Nikolai Kochetov
9b67cd9faf Merge branch 'master' into refactor-pipes-3 2020-08-10 10:50:17 +03:00
Alexey Milovidov
edd89a8610 Fix half of typos 2020-08-08 03:47:03 +03:00
zhang2014
d6bba8cbbb ISSUES-4006 add settings for allows_query_when_mysql_lost & move dump event to logger 2020-08-07 14:12:27 +08:00
zhang2014
bd21f8e6b9 ISSUES-4006 fix conflicts commit when merge 2020-08-07 12:55:45 +08:00
Nikolai Kochetov
d83c7cc0e6 Merge branch 'master' into refactor-pipes-3 2020-08-06 17:32:50 +03:00
Nikolai Kochetov
20e63d2271 Refactor Pipe [part 6] 2020-08-06 15:24:05 +03:00
Alexander Kuzmenkov
45b57f2df5 fixes 2020-08-06 00:53:35 +03:00
Alexander Kuzmenkov
5c2d7fc569 fixes 2020-08-05 18:45:44 +03:00
Alexander Kuzmenkov
d205b20c04 wip 2020-08-05 05:21:33 +03:00
zhang2014
34f7fac76c ISSUES-4006 try fix test failure 2020-08-04 12:22:12 +08:00
zhang2014
c173bd391f ISSUES-4006 try fix build & test failure 2020-08-04 10:31:27 +08:00
zhang2014
b76f218d90 ISSUES-4006 add mysql dml test 2020-08-04 10:31:27 +08:00
zhang2014
9996166860 ISSUES-4006 try fix check style 2020-08-04 10:31:27 +08:00
zhang2014
ad187384f0 ISSUES-4006 try fix build failure 2020-08-04 10:31:27 +08:00
zhang2014
74f354d840 ISSUES-4006 add some check before create materialize mysql database 2020-08-04 10:31:27 +08:00
zhang2014
95b8afb8eb ISSUES-4006 try fix unit test failure 2020-08-04 10:31:26 +08:00
zhang2014
1930b8f584 ISSUES-4006 support drop materialize mysql database engine 2020-08-04 10:31:26 +08:00
zhang2014
6562597064 ISSUES-4006 refactor interpreter 2020-08-04 10:31:26 +08:00
zhang2014
4a99ca0d80 ISSUES-4006 refactor 2020-08-04 10:31:25 +08:00
zhang2014
59465b58c2 ISSUES-4006 fix cmake 2020-08-04 10:31:25 +08:00
zhang2014
0336a4ad58 ISSUES-4006 suport synchronous MySQL incremental data[part 2] 2020-08-04 10:31:23 +08:00
zhang2014
0c52d425ba ISSUES-4006 suport synchronous MySQL incremental data 2020-08-04 10:29:54 +08:00
BohuTANG
5f80db7569 Fix MySQL 8.0 AuthSwitch packet read 2020-08-04 10:26:22 +08:00
BohuTANG
2a0e79c145 Fix MySQL 8.0 optional metadata fields read in TableMapEvent 2020-08-04 10:26:22 +08:00
BohuTANG
3477a467e6 Add master connect flags and change DryRunEvent parse to ignore 2020-08-04 10:26:22 +08:00
BohuTANG
882a773264 Support database replicate filter 2020-08-04 10:26:22 +08:00
BohuTANG
d2aa1f9a47 Disable XA ROLLBACK and SAVEPOINT type for QueryEvent 2020-08-04 10:26:22 +08:00
BohuTANG
ec9345785b Change flavor event to private 2020-08-04 10:26:22 +08:00
BohuTANG
644667adff Change the method print() to dump() 2020-08-04 10:26:22 +08:00
BohuTANG
8090cf1a00 Add default branch to compressed_decimals read 2020-08-04 10:26:22 +08:00
BohuTANG
939bc413ba Move replicate filter to the MySQL server 2020-08-04 10:26:22 +08:00
BohuTANG
9f0e74ff93 Change the MySQL Client api from bool to throw execption 2020-08-04 10:26:22 +08:00
BohuTANG
5c23583cda Add DEMICAL type 2020-08-04 10:26:22 +08:00
BohuTANG
5219a34b32 Add QueryEvent type 2020-08-04 10:26:22 +08:00
BohuTANG
81998cb1af Support DATETIME/TIMESTAMP type 2020-08-04 10:26:22 +08:00
BohuTANG
a36ef50f92 Support more types 2020-08-04 10:26:22 +08:00
BohuTANG
31818388be Support Int8/Int16/Int24 type 2020-08-04 10:26:22 +08:00
BohuTANG
b0657236f6 Add Null type value parse 2020-08-04 10:26:22 +08:00
BohuTANG
2864368716 Fix conflicting file 2020-08-04 10:26:22 +08:00
BohuTANG
02011ae42f Add binlog event parser 2020-08-04 10:26:22 +08:00
BohuTANG
79af54c791 add DryRun event 2020-08-04 10:26:22 +08:00
BohuTANG
3c991db64b fix clang expection error 2020-08-04 10:26:22 +08:00
BohuTANG
eaff3836ef move type() to the base class 2020-08-04 10:26:22 +08:00
BohuTANG
9c2ecf008c fix clang build 2020-08-04 10:26:22 +08:00
BohuTANG
c899c34f03 add mysql replication class 2020-08-04 10:26:22 +08:00
BohuTANG
e32fc1865d fix clang build 2020-08-04 10:26:22 +08:00
BohuTANG
c91a810d2d add binlog event 2020-08-04 10:26:22 +08:00
BohuTANG
0d3cab3e10 fix openssl build 2020-08-04 10:26:22 +08:00
BohuTANG
99402fac85 fixup clang tidy errors 2020-08-04 10:26:22 +08:00
BohuTANG
ef4126d533 add com_binlog_dump 2020-08-04 10:26:22 +08:00
BohuTANG
27e2fe2778 add register slave command 2020-08-04 10:26:22 +08:00
BohuTANG
4a21fce889 fix packet response capability to client 2020-08-04 10:26:22 +08:00
BohuTANG
44cd5534b4 make getPayloadSize protected 2020-08-04 10:26:22 +08:00
BohuTANG
b23816799c add read columns 2020-08-04 10:26:22 +08:00
BohuTANG
6cac6a4f76 add mysql protocol test 2020-08-04 10:26:22 +08:00
BohuTANG
b9e2c0d72c add gtest for MySQL Protocol handshake 2020-08-04 10:26:21 +08:00
BohuTANG
f5a53dd270 handshake auth ok 2020-08-04 10:26:21 +08:00
BohuTANG
1a9118d722 add error to MySQL client connect 2020-08-04 10:26:21 +08:00
BohuTANG
ab8b847e66 add OK/ERR packet parse 2020-08-04 10:26:21 +08:00
BohuTANG
c1332834a9 add ERR packet parse 2020-08-04 10:26:21 +08:00
BohuTANG
3b7a0f92a8 fix the handshake packet 2020-08-04 10:26:21 +08:00
BohuTANG
8c4dc62ebb make ReadPacket public and change variables in constructor function 2020-08-04 10:26:21 +08:00
BohuTANG
63c0f495b9 MySQL: make MySQLProtocol work in server&client duplex mode 2020-08-04 10:26:21 +08:00
Vitaly Baranov
a804f9499d Use references while iterating through settings. 2020-08-04 04:00:38 +03:00
Alexander Tokmakov
5b92f43f12 Merge branch 'master' into database_atomic_improvements 2020-08-03 14:35:40 +03:00
Alexey Milovidov
6f690b7c0d Normalize ya.make files, fix "Arcadia" build 2020-08-02 16:57:38 +03:00
feng lv
88e48168d9 fix 2020-08-02 13:35:58 +08:00
feng lv
edb7c9b2c5 fix conflict 2020-08-02 11:27:32 +08:00
feng lv
fdf646283d fix
fix
2020-08-02 09:59:25 +08:00
Vitaly Baranov
80a3caef1c Allow using any types for custom fields. 2020-07-31 20:57:49 +03:00
Vitaly Baranov
442f3de5a8 Implement custom settings. 2020-07-31 20:57:43 +03:00
Vitaly Baranov
56665a15f7 Rework and rename the template class SettingsCollection => BaseSettings. 2020-07-31 20:54:18 +03:00
Vitaly Baranov
e40a8ac176 Use names of the settings instead of their indices in SettingsConstraints and settings profiles. 2020-07-31 19:11:27 +03:00
Vitaly Baranov
300727afa3 Rework the StringField* classes and make conversion String => StringField* explicit. 2020-07-31 19:11:27 +03:00
Vitaly Baranov
18e3f1f60d Split SettingsCollection.h into 3 files: SettingsFields.h, SettingsEnums.h, SettingsCollection.h 2020-07-31 19:11:27 +03:00
Vitaly Baranov
90602b869a Make SettingsChanges a class. 2020-07-31 19:11:27 +03:00
Vitaly Baranov
d152e84a2e Rename Setting* => SettingField*. 2020-07-31 19:11:27 +03:00
Vitaly Baranov
4ad99f1472 Make type names of settings shorter: SettingUInt64 => UInt64. 2020-07-31 19:11:27 +03:00
Vitaly Baranov
668653600c Use SettingMaxThreads only in Settings, call getNumberOfPhysicalCPUCores() instead of SettingMaxThreads::getAuto(). 2020-07-31 19:11:27 +03:00
Vitaly Baranov
30b34e6a15 Use SettingSeconds only in Settings, use std::chrono::seconds in other places. 2020-07-31 19:11:27 +03:00
Vitaly Baranov
b76b23ce31 Better conversion of String and std::string_view to Field. 2020-07-31 19:11:27 +03:00