flydata 0.6.4 → 0.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +1 -0
- data/Gemfile.lock +2 -0
- data/VERSION +1 -1
- data/flydata-core/lib/flydata-core/table_def/base.rb +31 -0
- data/flydata-core/lib/flydata-core/table_def/mysql_table_def.rb +9 -30
- data/flydata-core/lib/flydata-core/table_def/postgresql_table_def.rb +111 -0
- data/flydata-core/lib/flydata-core/table_def/redshift_table_def.rb +4 -1
- data/flydata-core/spec/table_def/postgresql_table_def_spec.rb +348 -0
- data/flydata-core/spec/table_def/redshift_table_def_spec.rb +25 -0
- data/flydata.gemspec +0 -0
- data/lib/flydata.rb +0 -7
- data/lib/flydata/command/base.rb +3 -2
- data/lib/flydata/fluent-plugins/flydata_plugin_ext/base.rb +5 -0
- data/lib/flydata/fluent-plugins/flydata_plugin_ext/flush_support.rb +52 -0
- data/lib/flydata/fluent-plugins/flydata_plugin_ext/flydata_sync.rb +55 -0
- data/lib/flydata/fluent-plugins/{idle_event_detector.rb → flydata_plugin_ext/idle_event_detector.rb} +0 -0
- data/lib/flydata/fluent-plugins/{preference.rb → flydata_plugin_ext/preference.rb} +2 -14
- data/lib/flydata/fluent-plugins/flydata_plugin_ext/transaction_support.rb +58 -0
- data/lib/flydata/fluent-plugins/in_mysql_binlog_flydata.rb +55 -135
- data/lib/flydata/fluent-plugins/mysql/dml_record_handler.rb +9 -4
- data/lib/flydata/helper/server.rb +7 -0
- data/lib/flydata/preference/data_entry_preference.rb +5 -13
- data/lib/flydata/source.rb +1 -1
- data/lib/flydata/source/data_entry.rb +29 -0
- data/lib/flydata/source/sync.rb +19 -0
- data/lib/flydata/source/sync_generate_table_ddl.rb +47 -7
- data/lib/flydata/source_mysql/data_entry.rb +22 -0
- data/lib/flydata/source_mysql/parser/dump_parser.rb +1 -1
- data/lib/flydata/source_mysql/parser/mysql_alter_table.treetop +8 -3
- data/lib/flydata/source_mysql/sync.rb +1 -8
- data/lib/flydata/source_mysql/sync_generate_table_ddl.rb +11 -16
- data/lib/flydata/source_postgresql/data_entry.rb +21 -0
- data/lib/flydata/source_postgresql/sync.rb +29 -0
- data/lib/flydata/source_postgresql/sync_generate_table_ddl.rb +126 -0
- data/spec/flydata/fluent-plugins/{idle_event_detector_spec.rb → flydata_plugin_ext/idle_event_detector_spec.rb} +1 -1
- data/spec/flydata/fluent-plugins/in_mysql_binlog_flydata_spec.rb +10 -0
- data/spec/flydata/source_mysql/parser/alter_table_parser_spec.rb +119 -0
- data/spec/flydata/source_mysql/parser/dump_parser_spec.rb +32 -1
- data/spec/flydata/source_mysql/sync_generate_table_ddl_spec.rb +4 -4
- metadata +31 -5
@@ -16,6 +16,7 @@ module Fluent
|
|
16
16
|
TEST_TABLE_BINLOG_POS = File.join(FLYDATA_HOME, "positions/#{TEST_TABLE}.binlog.pos")
|
17
17
|
TEST_TABLES = "#{TEST_TABLE},test_table_1,test_table_2,test_table_3"
|
18
18
|
TEST_POSITION_FILE = "test_position.binlog.pos"
|
19
|
+
TEST_SENT_POSITION_FILE = "test_position.binlog.sent.pos"
|
19
20
|
TEST_REVISION_FILE = File.join(FLYDATA_HOME, "positions/#{TEST_TABLE}.rev")
|
20
21
|
TEST_TIMESTAMP = 1389214083
|
21
22
|
TEST_TABLE_APPEND_ONLY = "test_table_4"
|
@@ -203,6 +204,13 @@ EOT
|
|
203
204
|
f
|
204
205
|
end
|
205
206
|
|
207
|
+
let(:sent_position_file) do
|
208
|
+
f = double('sent_position_file')
|
209
|
+
allow(f).to receive(:exists?).and_return(true)
|
210
|
+
allow(f).to receive(:read).and_return('test_sent_position')
|
211
|
+
f
|
212
|
+
end
|
213
|
+
|
206
214
|
def create_file(file_path, content)
|
207
215
|
File.open(file_path, 'w') {|f| f.write(content)}
|
208
216
|
end
|
@@ -228,6 +236,8 @@ EOT
|
|
228
236
|
setup_initial_flydata_files
|
229
237
|
allow(MysqlBinlogInput::BinlogUtil).to receive(:to_hash) {|e| e}
|
230
238
|
allow(Mysql::BinLogPositionFile).to receive(:new).with(TEST_POSITION_FILE).and_return(binlog_position_file)
|
239
|
+
allow(Mysql::BinLogPositionFile).to receive(:new).with(TEST_SENT_POSITION_FILE).
|
240
|
+
and_return(sent_position_file)
|
231
241
|
allow(Flydata::Mysql::TableMeta).to receive(:update)
|
232
242
|
allow(plugin).to receive(:`).with("mysql -V").and_return("mysql Ver 14.14 Distrib 5.5.40")
|
233
243
|
allow(plugin).to receive(:`).with(/^echo 'select version\(\);'/).and_return("version()\n5.5.40-0ubuntu0.12.04.1-log")
|
@@ -33,6 +33,86 @@ describe 'MysqlAlterTableParser' do
|
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
|
+
context 'with space between type and meta' do
|
37
|
+
let(:query) { "alter table test_table add column value varchar (26)" }
|
38
|
+
it do
|
39
|
+
expect(subject).to eq({
|
40
|
+
type: :alter_table,
|
41
|
+
table_name: "test_table",
|
42
|
+
actions: [{
|
43
|
+
action: :add_column,
|
44
|
+
column: "value",
|
45
|
+
type: "varchar(78)",
|
46
|
+
query: "add column value varchar (26)"
|
47
|
+
}]
|
48
|
+
})
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
context 'with space before meta value' do
|
53
|
+
let(:query) { "alter table test_table add column value varchar( 26)" }
|
54
|
+
it do
|
55
|
+
expect(subject).to eq({
|
56
|
+
type: :alter_table,
|
57
|
+
table_name: "test_table",
|
58
|
+
actions: [{
|
59
|
+
action: :add_column,
|
60
|
+
column: "value",
|
61
|
+
type: "varchar(78)",
|
62
|
+
query: "add column value varchar( 26)"
|
63
|
+
}]
|
64
|
+
})
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
context 'with space after meta value' do
|
69
|
+
let(:query) { "alter table test_table add column value varchar(26 )" }
|
70
|
+
it do
|
71
|
+
expect(subject).to eq({
|
72
|
+
type: :alter_table,
|
73
|
+
table_name: "test_table",
|
74
|
+
actions: [{
|
75
|
+
action: :add_column,
|
76
|
+
column: "value",
|
77
|
+
type: "varchar(78)",
|
78
|
+
query: "add column value varchar(26 )"
|
79
|
+
}]
|
80
|
+
})
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
context 'with space before and after meta value' do
|
85
|
+
let(:query) { "alter table test_table add column value varchar( 26 )" }
|
86
|
+
it do
|
87
|
+
expect(subject).to eq({
|
88
|
+
type: :alter_table,
|
89
|
+
table_name: "test_table",
|
90
|
+
actions: [{
|
91
|
+
action: :add_column,
|
92
|
+
column: "value",
|
93
|
+
type: "varchar(78)",
|
94
|
+
query: "add column value varchar( 26 )"
|
95
|
+
}]
|
96
|
+
})
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
context 'with spaces everywhere' do
|
101
|
+
let(:query) { "alter table test_table add column value varchar ( 26 )" }
|
102
|
+
it do
|
103
|
+
expect(subject).to eq({
|
104
|
+
type: :alter_table,
|
105
|
+
table_name: "test_table",
|
106
|
+
actions: [{
|
107
|
+
action: :add_column,
|
108
|
+
column: "value",
|
109
|
+
type: "varchar(78)",
|
110
|
+
query: "add column value varchar ( 26 )"
|
111
|
+
}]
|
112
|
+
})
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
36
116
|
context 'with a non-ascii table name' do
|
37
117
|
let(:query) { "alter table `テスト` add column value varchar(26)" }
|
38
118
|
it do
|
@@ -83,6 +163,23 @@ describe 'MysqlAlterTableParser' do
|
|
83
163
|
end
|
84
164
|
end
|
85
165
|
|
166
|
+
context 'data_type without meta' do
|
167
|
+
let(:query) { "alter table test_table add value int not null" }
|
168
|
+
it do
|
169
|
+
expect(subject).to eq({
|
170
|
+
type: :alter_table,
|
171
|
+
table_name: "test_table",
|
172
|
+
actions: [{
|
173
|
+
action: :add_column,
|
174
|
+
column: "value",
|
175
|
+
type: "int4(11)",
|
176
|
+
not_null: true,
|
177
|
+
query: "add value int not null"
|
178
|
+
}]
|
179
|
+
})
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
86
183
|
context 'with multiple columns' do
|
87
184
|
shared_examples 'test result hash' do
|
88
185
|
it do
|
@@ -103,6 +200,7 @@ describe 'MysqlAlterTableParser' do
|
|
103
200
|
})
|
104
201
|
end
|
105
202
|
end
|
203
|
+
|
106
204
|
context 'with spaces before opening bracket' do
|
107
205
|
let(:query) { "alter table test_table add column (value1 varchar(26), value2 varchar(26))" }
|
108
206
|
let(:expected_query) {"add column (value1 varchar(26), value2 varchar(26))"}
|
@@ -115,6 +213,27 @@ describe 'MysqlAlterTableParser' do
|
|
115
213
|
end
|
116
214
|
end
|
117
215
|
|
216
|
+
context 'with multiple columns without bracket without the keyword "COLUMN"' do
|
217
|
+
let(:query) { "alter table test_table add value1 varchar(26), add value2 varchar(26)" }
|
218
|
+
it do
|
219
|
+
expect(subject).to eq({
|
220
|
+
type: :alter_table,
|
221
|
+
table_name: "test_table",
|
222
|
+
actions: [{
|
223
|
+
action: :add_column,
|
224
|
+
column: "value1",
|
225
|
+
type: "varchar(78)",
|
226
|
+
query: "add value1 varchar(26)"
|
227
|
+
},{
|
228
|
+
action: :add_column,
|
229
|
+
column: "value2",
|
230
|
+
type: "varchar(78)",
|
231
|
+
query: "add value2 varchar(26)"
|
232
|
+
}]
|
233
|
+
})
|
234
|
+
end
|
235
|
+
end
|
236
|
+
|
118
237
|
context 'with multiple columns and without the keyword "COLUMN"' do
|
119
238
|
let(:query) { "alter table test_table add ( value1 varchar(26), value2 varchar(26) )" }
|
120
239
|
it do
|
@@ -322,16 +322,29 @@ EOT
|
|
322
322
|
expect(source_table.table_name).to eq('users_login')
|
323
323
|
expect(values_set).to eq(expected_values)
|
324
324
|
nil
|
325
|
+
=begin
|
326
|
+
# Use this when _parse2 is used
|
325
327
|
}.once
|
328
|
+
=end
|
329
|
+
# =begin
|
330
|
+
# Use this when _parse is used
|
331
|
+
}.never
|
332
|
+
# =end
|
326
333
|
end
|
327
334
|
expect(insert_record_block).to receive(:call).never
|
328
335
|
|
329
|
-
#
|
336
|
+
# check_point_block
|
330
337
|
[
|
331
338
|
{state: Flydata::Parser::State::CREATE_TABLE},
|
332
339
|
{state: Flydata::Parser::State::INSERT_RECORD},
|
340
|
+
=begin
|
341
|
+
# Use this when _parse2 is used
|
333
342
|
{state: Flydata::Parser::State::CREATE_TABLE,
|
334
343
|
last_pos: index_after(dump_content, 'UNLOCK TABLES;')}
|
344
|
+
=end
|
345
|
+
# =begin
|
346
|
+
# Use this when _parse is used
|
347
|
+
# =end
|
335
348
|
].each do |expected_params|
|
336
349
|
expect(check_point_block).to receive(:call) { |source_table, last_pos, bytesize, binlog_pos, state, substate|
|
337
350
|
expect(source_table.table_name).to eq('users_login') if source_table
|
@@ -346,10 +359,21 @@ EOT
|
|
346
359
|
end
|
347
360
|
expect(check_point_block).to receive(:call).never
|
348
361
|
|
362
|
+
=begin
|
363
|
+
# Use this when _parse2 is used
|
349
364
|
binlog_pos = default_parser.parse(
|
350
365
|
dump_io, create_table_block, insert_record_block, check_point_block
|
351
366
|
)
|
352
367
|
expect(binlog_pos).to eq(default_binlog_pos)
|
368
|
+
=end
|
369
|
+
# =begin
|
370
|
+
# Use this when _parse is used
|
371
|
+
expect {
|
372
|
+
binlog_pos = default_parser.parse(
|
373
|
+
dump_io, create_table_block, insert_record_block,
|
374
|
+
check_point_block)
|
375
|
+
}.to raise_error(DumpParseError)
|
376
|
+
# =end
|
353
377
|
end
|
354
378
|
end
|
355
379
|
|
@@ -851,7 +875,14 @@ EOT
|
|
851
875
|
end
|
852
876
|
context 'with various escape chars 1' do
|
853
877
|
let(:value) { %Q|\\r\t\\Z| }
|
878
|
+
=begin
|
879
|
+
# Use this when _parse2 is used
|
854
880
|
let(:expected_value) { %Q|\r\t\x1a| }
|
881
|
+
=end
|
882
|
+
# =begin
|
883
|
+
# Use this when _parse is used
|
884
|
+
let(:expected_value) { %Q|\r\t\\Z| }
|
885
|
+
# =end
|
855
886
|
it 'returns correct chars' do
|
856
887
|
expect(subject).to eq([[expected_value]])
|
857
888
|
end
|
@@ -12,7 +12,7 @@ describe SyncGenerateTableDdl do
|
|
12
12
|
'host' => 'localhost',
|
13
13
|
'port' => 3306,
|
14
14
|
'username' => 'masashi',
|
15
|
-
'password' => '
|
15
|
+
'password' => 'welcomes',
|
16
16
|
'database' => 'sync_test',
|
17
17
|
}
|
18
18
|
} }
|
@@ -42,7 +42,7 @@ describe SyncGenerateTableDdl do
|
|
42
42
|
context 'with full options' do
|
43
43
|
it 'issues mysqldump command with expected parameters' do
|
44
44
|
expect(Open3).to receive(:popen3).with(
|
45
|
-
'mysqldump -h localhost -P 3306 -umasashi -
|
45
|
+
'mysqldump -h localhost -P 3306 -umasashi -pwelcomes --default-character-set=utf8 --protocol=tcp -d sync_test table1 table2 table4 table3')
|
46
46
|
|
47
47
|
subject
|
48
48
|
end
|
@@ -65,7 +65,7 @@ describe SyncGenerateTableDdl do
|
|
65
65
|
end
|
66
66
|
it "uses the default port" do
|
67
67
|
expect(Open3).to receive(:popen3).with(
|
68
|
-
'mysqldump -h localhost -umasashi -
|
68
|
+
'mysqldump -h localhost -umasashi -pwelcomes --default-character-set=utf8 --protocol=tcp -d sync_test table1 table2 table4 table3')
|
69
69
|
subject
|
70
70
|
end
|
71
71
|
end
|
@@ -75,7 +75,7 @@ describe SyncGenerateTableDdl do
|
|
75
75
|
end
|
76
76
|
it "uses the specified port" do
|
77
77
|
expect(Open3).to receive(:popen3).with(
|
78
|
-
'mysqldump -h localhost -P 1234 -umasashi -
|
78
|
+
'mysqldump -h localhost -P 1234 -umasashi -pwelcomes --default-character-set=utf8 --protocol=tcp -d sync_test table1 table2 table4 table3')
|
79
79
|
subject
|
80
80
|
end
|
81
81
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flydata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Koichi Fujikawa
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2016-
|
15
|
+
date: 2016-02-08 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: rest-client
|
@@ -162,6 +162,20 @@ dependencies:
|
|
162
162
|
- - ~>
|
163
163
|
- !ruby/object:Gem::Version
|
164
164
|
version: '0.3'
|
165
|
+
- !ruby/object:Gem::Dependency
|
166
|
+
name: pg
|
167
|
+
requirement: !ruby/object:Gem::Requirement
|
168
|
+
requirements:
|
169
|
+
- - ~>
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
version: 0.18.4
|
172
|
+
type: :runtime
|
173
|
+
prerelease: false
|
174
|
+
version_requirements: !ruby/object:Gem::Requirement
|
175
|
+
requirements:
|
176
|
+
- - ~>
|
177
|
+
- !ruby/object:Gem::Version
|
178
|
+
version: 0.18.4
|
165
179
|
- !ruby/object:Gem::Dependency
|
166
180
|
name: slop
|
167
181
|
requirement: !ruby/object:Gem::Requirement
|
@@ -536,7 +550,9 @@ files:
|
|
536
550
|
- flydata-core/lib/flydata-core/string_utils.rb
|
537
551
|
- flydata-core/lib/flydata-core/table_def.rb
|
538
552
|
- flydata-core/lib/flydata-core/table_def/autoload_redshift_table_def.rb
|
553
|
+
- flydata-core/lib/flydata-core/table_def/base.rb
|
539
554
|
- flydata-core/lib/flydata-core/table_def/mysql_table_def.rb
|
555
|
+
- flydata-core/lib/flydata-core/table_def/postgresql_table_def.rb
|
540
556
|
- flydata-core/lib/flydata-core/table_def/redshift_table_def.rb
|
541
557
|
- flydata-core/lib/flydata-core/table_def/sync_redshift_table_def.rb
|
542
558
|
- flydata-core/lib/flydata-core/thread_context.rb
|
@@ -578,6 +594,7 @@ files:
|
|
578
594
|
- flydata-core/spec/table_def/mysqldump_test_unique_key2.dump
|
579
595
|
- flydata-core/spec/table_def/mysqldump_test_unique_key3.dump
|
580
596
|
- flydata-core/spec/table_def/mysqldump_test_unsigned.dump
|
597
|
+
- flydata-core/spec/table_def/postgresql_table_def_spec.rb
|
581
598
|
- flydata-core/spec/table_def/redshift_table_def_spec.rb
|
582
599
|
- flydata-core/spec/table_def/sync_redshift_table_def_spec.rb
|
583
600
|
- flydata-core/spec/wrapper_forwardable_spec.rb
|
@@ -616,7 +633,12 @@ files:
|
|
616
633
|
- lib/flydata/cron.rb
|
617
634
|
- lib/flydata/errors.rb
|
618
635
|
- lib/flydata/event/api_event_sender.rb
|
619
|
-
- lib/flydata/fluent-plugins/
|
636
|
+
- lib/flydata/fluent-plugins/flydata_plugin_ext/base.rb
|
637
|
+
- lib/flydata/fluent-plugins/flydata_plugin_ext/flush_support.rb
|
638
|
+
- lib/flydata/fluent-plugins/flydata_plugin_ext/flydata_sync.rb
|
639
|
+
- lib/flydata/fluent-plugins/flydata_plugin_ext/idle_event_detector.rb
|
640
|
+
- lib/flydata/fluent-plugins/flydata_plugin_ext/preference.rb
|
641
|
+
- lib/flydata/fluent-plugins/flydata_plugin_ext/transaction_support.rb
|
620
642
|
- lib/flydata/fluent-plugins/in_mysql_binlog_flydata.rb
|
621
643
|
- lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
|
622
644
|
- lib/flydata/fluent-plugins/mysql/binlog_position_file.rb
|
@@ -631,7 +653,6 @@ files:
|
|
631
653
|
- lib/flydata/fluent-plugins/mysql/table_meta.rb
|
632
654
|
- lib/flydata/fluent-plugins/mysql/truncate_table_query_handler.rb
|
633
655
|
- lib/flydata/fluent-plugins/out_forward_ssl.rb
|
634
|
-
- lib/flydata/fluent-plugins/preference.rb
|
635
656
|
- lib/flydata/flydata_crontab.sh
|
636
657
|
- lib/flydata/helper/action/agent_action.rb
|
637
658
|
- lib/flydata/helper/action/check_abnormal_shutdown.rb
|
@@ -663,6 +684,7 @@ files:
|
|
663
684
|
- lib/flydata/queueable_thread.rb
|
664
685
|
- lib/flydata/source.rb
|
665
686
|
- lib/flydata/source/component.rb
|
687
|
+
- lib/flydata/source/data_entry.rb
|
666
688
|
- lib/flydata/source/errors.rb
|
667
689
|
- lib/flydata/source/generate_source_dump.rb
|
668
690
|
- lib/flydata/source/parse_dump_and_send.rb
|
@@ -676,6 +698,7 @@ files:
|
|
676
698
|
- lib/flydata/source_mysql/command/mysql_command_base.rb
|
677
699
|
- lib/flydata/source_mysql/command/mysqlbinlog.rb
|
678
700
|
- lib/flydata/source_mysql/command/mysqldump.rb
|
701
|
+
- lib/flydata/source_mysql/data_entry.rb
|
679
702
|
- lib/flydata/source_mysql/generate_source_dump.rb
|
680
703
|
- lib/flydata/source_mysql/mysql_compatibility_check.rb
|
681
704
|
- lib/flydata/source_mysql/parse_dump_and_send.rb
|
@@ -687,6 +710,9 @@ files:
|
|
687
710
|
- lib/flydata/source_mysql/sync.rb
|
688
711
|
- lib/flydata/source_mysql/sync_generate_table_ddl.rb
|
689
712
|
- lib/flydata/source_mysql/table_ddl.rb
|
713
|
+
- lib/flydata/source_postgresql/data_entry.rb
|
714
|
+
- lib/flydata/source_postgresql/sync.rb
|
715
|
+
- lib/flydata/source_postgresql/sync_generate_table_ddl.rb
|
690
716
|
- lib/flydata/source_zendesk/sync_generate_table_ddl.rb
|
691
717
|
- lib/flydata/source_zendesk/zendesk_flydata_tabledefs.rb
|
692
718
|
- lib/flydata/sync_file_manager.rb
|
@@ -718,7 +744,7 @@ files:
|
|
718
744
|
- spec/flydata/command/sync_spec.rb
|
719
745
|
- spec/flydata/command/version_spec.rb
|
720
746
|
- spec/flydata/compatibility_check_spec.rb
|
721
|
-
- spec/flydata/fluent-plugins/idle_event_detector_spec.rb
|
747
|
+
- spec/flydata/fluent-plugins/flydata_plugin_ext/idle_event_detector_spec.rb
|
722
748
|
- spec/flydata/fluent-plugins/in_mysql_binlog_flydata_spec.rb
|
723
749
|
- spec/flydata/fluent-plugins/mysql/alter_table_query_handler_spec.rb
|
724
750
|
- spec/flydata/fluent-plugins/mysql/binlog_query_dispatcher_spec.rb
|