Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2dot5
ClickHouse
提交
d604e84d
C
ClickHouse
项目概览
2dot5
/
ClickHouse
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
ClickHouse
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d604e84d
编写于
9月 01, 2020
作者:
B
BohuTANG
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ISSUES-14235 add mysql_5_7 and mysql_8_0 empty transaction tests
上级
453fb837
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
41 addition
and
34 deletion
+41
-34
tests/integration/test_materialize_mysql_database/materialize_with_ddl.py
...n/test_materialize_mysql_database/materialize_with_ddl.py
+36
-0
tests/integration/test_materialize_mysql_database/test.py
tests/integration/test_materialize_mysql_database/test.py
+5
-34
未找到文件。
tests/integration/test_materialize_mysql_database/materialize_with_ddl.py
浏览文件 @
d604e84d
import
time
import
pymysql.cursors
def
check_query
(
clickhouse_node
,
query
,
result_set
,
retry_count
=
3
,
interval_seconds
=
3
):
...
...
@@ -321,3 +322,38 @@ def alter_rename_table_with_materialize_mysql_database(clickhouse_node, mysql_no
clickhouse_node
.
query
(
"DROP DATABASE test_database"
)
mysql_node
.
query
(
"DROP DATABASE test_database"
)
def
query_event_with_empty_transaction
(
clickhouse_node
,
mysql_node
,
service_name
):
mysql_node
.
query
(
"CREATE DATABASE test_database"
)
mysql_node
.
query
(
"RESET MASTER"
)
mysql_node
.
query
(
"CREATE TABLE test_database.t1(a INT NOT NULL PRIMARY KEY, b VARCHAR(255) DEFAULT 'BEGIN')"
)
mysql_node
.
query
(
"INSERT INTO test_database.t1(a) VALUES(1)"
)
clickhouse_node
.
query
(
"CREATE DATABASE test_database ENGINE = MaterializeMySQL('{}:3306', 'test_database', 'root', 'clickhouse')"
.
format
(
service_name
))
# Reject one empty GTID QUERY event with 'BEGIN' and 'COMMIT'
mysql_cursor
=
mysql_node
.
cursor
(
pymysql
.
cursors
.
DictCursor
)
mysql_cursor
.
execute
(
"SHOW MASTER STATUS"
)
(
uuid
,
seqs
)
=
mysql_cursor
.
fetchall
()[
0
][
"Executed_Gtid_Set"
].
split
(
":"
)
(
seq_begin
,
seq_end
)
=
seqs
.
split
(
"-"
)
assert
int
(
seq_begin
)
==
1
assert
int
(
seq_end
)
==
3
next_gtid
=
uuid
+
":"
+
str
(
int
(
seq_end
)
+
1
)
mysql_node
.
query
(
"SET gtid_next='"
+
next_gtid
+
"'"
)
mysql_node
.
query
(
"BEGIN"
)
mysql_node
.
query
(
"COMMIT"
)
mysql_node
.
query
(
"SET gtid_next='AUTOMATIC'"
)
# Reject one 'BEGIN' QUERY event and 'COMMIT' XID event.
mysql_node
.
query
(
"/* start */ begin /* end */"
)
mysql_node
.
query
(
"INSERT INTO test_database.t1(a) VALUES(2)"
)
mysql_node
.
query
(
"/* start */ commit /* end */"
)
check_query
(
clickhouse_node
,
"SELECT * FROM test_database.t1 ORDER BY a FORMAT TSV"
,
"1
\t
BEGIN
\n
2
\t
BEGIN
\n
"
)
clickhouse_node
.
query
(
"DROP DATABASE test_database"
)
mysql_node
.
query
(
"DROP DATABASE test_database"
)
tests/integration/test_materialize_mysql_database/test.py
浏览文件 @
d604e84d
...
...
@@ -120,37 +120,8 @@ def test_materialize_database_ddl_with_mysql_8_0(started_cluster, started_mysql_
materialize_with_ddl
.
alter_rename_column_with_materialize_mysql_database
(
clickhouse_node
,
started_mysql_8_0
,
"mysql8_0"
)
materialize_with_ddl
.
alter_modify_column_with_materialize_mysql_database
(
clickhouse_node
,
started_mysql_8_0
,
"mysql8_0"
)
def
test_materialize_database_ddl_with_empty_transaction
(
started_cluster
,
started_mysql_5_7
):
mysql_node
=
started_mysql_5_7
.
alloc_connection
()
mysql_node
.
query
(
"CREATE DATABASE test_database"
)
mysql_node
.
query
(
"RESET MASTER"
)
mysql_node
.
query
(
"CREATE TABLE test_database.t1(a INT NOT NULL PRIMARY KEY, b VARCHAR(255) DEFAULT 'BEGIN')"
)
mysql_node
.
query
(
"INSERT INTO test_database.t1(a) VALUES(1)"
)
clickhouse_node
.
query
(
"CREATE DATABASE test_database ENGINE = MaterializeMySQL('{}:3306', 'test_database', 'root', 'clickhouse')"
.
format
(
"mysql5_7"
))
# Reject one empty GTID QUERY event with 'BEGIN' and 'COMMIT'
mysql_cursor
=
mysql_node
.
cursor
(
pymysql
.
cursors
.
DictCursor
)
mysql_cursor
.
execute
(
"SHOW MASTER STATUS"
)
(
uuid
,
seqs
)
=
mysql_cursor
.
fetchall
()[
0
][
"Executed_Gtid_Set"
].
split
(
":"
)
(
seq_begin
,
seq_end
)
=
seqs
.
split
(
"-"
)
assert
int
(
seq_begin
)
==
1
assert
int
(
seq_end
)
==
3
next_gtid
=
uuid
+
":"
+
str
(
int
(
seq_end
)
+
1
)
mysql_node
.
query
(
"SET gtid_next='"
+
next_gtid
+
"'"
)
mysql_node
.
query
(
"BEGIN"
)
mysql_node
.
query
(
"COMMIT"
)
mysql_node
.
query
(
"SET gtid_next='AUTOMATIC'"
)
# Reject one 'BEGIN' QUERY event and 'COMMIT' XID event.
mysql_node
.
query
(
"/* start */ begin /* end */"
)
mysql_node
.
query
(
"INSERT INTO test_database.t1(a) VALUES(2)"
)
mysql_node
.
query
(
"/* start */ commit /* end */"
)
materialize_with_ddl
.
check_query
(
clickhouse_node
,
"SELECT * FROM test_database.t1 ORDER BY a FORMAT TSV"
,
"1
\t
BEGIN
\n
2
\t
BEGIN
\n
"
)
clickhouse_node
.
query
(
"DROP DATABASE test_database"
)
mysql_node
.
query
(
"DROP DATABASE test_database"
)
def
test_materialize_database_ddl_with_empty_transaction_5_7
(
started_cluster
,
started_mysql_5_7
):
materialize_with_ddl
.
query_event_with_empty_transaction
(
clickhouse_node
,
started_mysql_5_7
.
alloc_connection
(),
"mysql5_7"
)
def
test_materialize_database_ddl_with_empty_transaction_8_0
(
started_cluster
,
started_mysql_8_0
):
materialize_with_ddl
.
query_event_with_empty_transaction
(
clickhouse_node
,
started_mysql_8_0
.
alloc_connection
(),
"mysql8_0"
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录