Skip to content

Commit 84b8b5c

Browse files
authored
Merge pull request #6 from fac/fix/connection-flags-passthrough
Fix: Ensure connection flags are supported
2 parents 216b444 + db11743 commit 84b8b5c

File tree

5 files changed

+78
-41
lines changed

5 files changed

+78
-41
lines changed

Gemfile.lock

Lines changed: 49 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,78 @@
11
PATH
22
remote: .
33
specs:
4-
mysql2-aurora (0.5.2.1)
5-
mysql2 (~> 0.5.2)
4+
mysql2-aurora (0.5.6)
5+
mysql2 (~> 0.5.6)
66

77
GEM
88
remote: https://rubygems.org/
99
specs:
10-
ast (2.4.0)
11-
coderay (1.1.2)
10+
ast (2.4.2)
11+
coderay (1.1.3)
1212
coveralls (0.8.23)
1313
json (>= 1.8, < 3)
1414
simplecov (~> 0.16.1)
1515
term-ansicolor (~> 1.3)
1616
thor (>= 0.19.4, < 2.0)
1717
tins (~> 1.6)
18-
diff-lcs (1.3)
19-
docile (1.3.1)
20-
jaro_winkler (1.5.2)
21-
json (2.6.2)
22-
method_source (0.9.2)
23-
mysql2 (0.5.2)
24-
parallel (1.17.0)
25-
parser (2.6.3.0)
26-
ast (~> 2.4.0)
27-
pry (0.12.2)
28-
coderay (~> 1.1.0)
29-
method_source (~> 0.9.0)
30-
rainbow (3.0.0)
31-
rake (13.0.6)
32-
rspec (3.8.0)
33-
rspec-core (~> 3.8.0)
34-
rspec-expectations (~> 3.8.0)
35-
rspec-mocks (~> 3.8.0)
36-
rspec-core (3.8.0)
37-
rspec-support (~> 3.8.0)
38-
rspec-expectations (3.8.4)
18+
diff-lcs (1.5.1)
19+
docile (1.4.0)
20+
json (2.7.1)
21+
method_source (1.0.0)
22+
mysql2 (0.5.6)
23+
parallel (1.24.0)
24+
parser (3.3.0.5)
25+
ast (~> 2.4.1)
26+
racc
27+
pry (0.14.2)
28+
coderay (~> 1.1)
29+
method_source (~> 1.0)
30+
racc (1.7.3)
31+
rainbow (3.1.1)
32+
rake (13.2.0)
33+
regexp_parser (2.9.0)
34+
rexml (3.2.6)
35+
rspec (3.13.0)
36+
rspec-core (~> 3.13.0)
37+
rspec-expectations (~> 3.13.0)
38+
rspec-mocks (~> 3.13.0)
39+
rspec-core (3.13.0)
40+
rspec-support (~> 3.13.0)
41+
rspec-expectations (3.13.0)
3942
diff-lcs (>= 1.2.0, < 2.0)
40-
rspec-support (~> 3.8.0)
41-
rspec-mocks (3.8.0)
43+
rspec-support (~> 3.13.0)
44+
rspec-mocks (3.13.0)
4245
diff-lcs (>= 1.2.0, < 2.0)
43-
rspec-support (~> 3.8.0)
44-
rspec-support (3.8.2)
45-
rubocop (0.71.0)
46-
jaro_winkler (~> 1.5.1)
46+
rspec-support (~> 3.13.0)
47+
rspec-support (3.13.1)
48+
rubocop (0.93.1)
4749
parallel (~> 1.10)
48-
parser (>= 2.6)
50+
parser (>= 2.7.1.5)
4951
rainbow (>= 2.2.2, < 4.0)
52+
regexp_parser (>= 1.8)
53+
rexml
54+
rubocop-ast (>= 0.6.0)
5055
ruby-progressbar (~> 1.7)
51-
unicode-display_width (>= 1.4.0, < 1.7)
52-
ruby-progressbar (1.10.1)
56+
unicode-display_width (>= 1.4.0, < 2.0)
57+
rubocop-ast (1.31.2)
58+
parser (>= 3.3.0.4)
59+
ruby-progressbar (1.13.0)
5360
simplecov (0.16.1)
5461
docile (~> 1.1)
5562
json (>= 1.8, < 3)
5663
simplecov-html (~> 0.10.0)
5764
simplecov-html (0.10.2)
58-
term-ansicolor (1.7.1)
65+
sync (0.5.0)
66+
term-ansicolor (1.7.2)
5967
tins (~> 1.0)
60-
thor (0.20.3)
61-
tins (1.20.3)
62-
unicode-display_width (1.6.0)
68+
thor (1.3.1)
69+
tins (1.32.1)
70+
sync
71+
unicode-display_width (1.8.0)
6372
yard (0.9.36)
6473

6574
PLATFORMS
75+
arm64-darwin-23
6676
ruby
6777

6878
DEPENDENCIES
@@ -77,4 +87,4 @@ DEPENDENCIES
7787
yard (~> 0.9)
7888

7989
BUNDLED WITH
80-
1.17.2
90+
2.5.6

lib/mysql2/aurora.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,12 @@ def self.method_missing(name, *args, &block) # rubocop:disable Style/MethodMissi
8888
def self.const_missing(name)
8989
Mysql2::Aurora::ORIGINAL_CLIENT_CLASS.const_get(name)
9090
end
91+
92+
# Delegate const definition to class.
93+
# @param [Symbol] name Const name
94+
def self.const_defined?(name)
95+
Mysql2::Aurora::ORIGINAL_CLIENT_CLASS.const_defined?(name)
96+
end
9197
end
9298

9399
# Swap Mysql2::Client

lib/mysql2/aurora/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ module Aurora
33
# Major Version: Support `mysql2` major version.
44
# Minor Version: Support `mysql2` minor version.
55
# Tiny Version: Mysql2::Aurora version.
6-
VERSION = '0.5.2.1'.freeze
6+
VERSION = '0.5.6'.freeze
77
end
88
end

mysql2-aurora.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
2020

2121
spec.required_ruby_version = '>= 2.4.6'
2222

23-
spec.add_dependency 'mysql2', '~> 0.5.2'
23+
spec.add_dependency 'mysql2', '~> 0.5.6'
2424

2525
spec.add_development_dependency 'bundler', '>= 1.16'
2626
spec.add_development_dependency 'coveralls', '~> 0.8'

spec/mysql2/aurora_spec.rb

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,27 @@
186186
end
187187
end
188188

189+
describe 'connection flags' do
190+
let :multi_client do
191+
Mysql2::Client.new(
192+
host: ENV['TEST_DB_HOST'],
193+
username: ENV['TEST_DB_USER'],
194+
password: ENV['TEST_DB_PASS'],
195+
aurora_max_retry: 10,
196+
aurora_disconnect_on_readonly: aurora_disconnect_on_readonly,
197+
flags: ["MULTI_STATEMENTS"]
198+
)
199+
end
200+
201+
subject do
202+
multi_client.query('SELECT CURRENT_USER() AS user; SELECT CURRENT_USER() AS user;')
203+
end
204+
205+
it 'supports multi statements after reconnect' do
206+
expect { subject }.to_not raise_error
207+
end
208+
end
209+
189210
describe '#method_missing' do
190211
subject do
191212
client.ping

0 commit comments

Comments
 (0)