activerecord-trilogy-adapter 2.0.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c82a7b7939a81514e90b6c5da24ab8e310a34629cce1c33bd300c1ffa1ca3176
4
- data.tar.gz: 245b8be7fb7fa5672ce6db5598730120c7b401be3e2ec0b3b74fc3ad25592526
3
+ metadata.gz: f6012f06cd5bd29a7bd180354fd0e65c3fd11784a6a7483fac9599d87baa1b68
4
+ data.tar.gz: bde2129ca1f647d6b7308c131d00ae012d614ad4aba36450f16fd3551bc303ce
5
5
  SHA512:
6
- metadata.gz: aa5f9afa69163d02a8d11c75c33c17a0a22a112b7f5ec33671c92b4900b185340665ddc01036a59227ad4e9d8199f86d745ce983dd84c74a54f8e6f3eb6d7538
7
- data.tar.gz: 50496283df9b2dd9f7c23b0131951393696512bc2bb904bfd5b708401c7d8c8e875cec5a9ef1a8beae8869d3533c070a24f9b2b577acc8ad7ec04b1b8e9c67e2
6
+ metadata.gz: 0ae12198df3991bccc1a17a983050457b2483d33f40078d5bd4c99a2d475d5fbdb84a2510c0beb0db65c9ebb4e431e12115ab2830c0cd5901a75cea3dfd7f75a
7
+ data.tar.gz: 0aed27beca07c98b513a092345b125129999f5ec0180ee9df0c78b39348c73be71ef0ad78448a644733f8966636f8059ec43aa248b247e66fa7cfda2cb3bdae8
@@ -70,13 +70,32 @@ module ActiveRecord
70
70
 
71
71
  include DatabaseStatements
72
72
 
73
+ SSL_MODES = {
74
+ SSL_MODE_DISABLED: Trilogy::SSL_DISABLED,
75
+ SSL_MODE_PREFERRED: Trilogy::SSL_PREFERRED_NOVERIFY,
76
+ SSL_MODE_REQUIRED: Trilogy::SSL_REQUIRED_NOVERIFY,
77
+ SSL_MODE_VERIFY_CA: Trilogy::SSL_VERIFY_CA,
78
+ SSL_MODE_VERIFY_IDENTITY: Trilogy::SSL_VERIFY_IDENTITY
79
+ }.freeze
80
+
73
81
  class << self
74
82
  def new_client(config)
83
+ config[:ssl_mode] = parse_ssl_mode(config[:ssl_mode]) if config[:ssl_mode]
75
84
  ::Trilogy.new(config)
76
85
  rescue Trilogy::DatabaseError => error
77
86
  raise translate_connect_error(config, error)
78
87
  end
79
88
 
89
+ def parse_ssl_mode(mode)
90
+ return mode if mode.is_a? Integer
91
+
92
+ m = mode.to_s.upcase
93
+ # enable Mysql2 client compatibility
94
+ m = "SSL_MODE_#{m}" unless m.start_with? "SSL_MODE_"
95
+
96
+ SSL_MODES.fetch(m.to_sym, mode)
97
+ end
98
+
80
99
  def translate_connect_error(config, error)
81
100
  case error.error_code
82
101
  when ER_BAD_DB_ERROR
@@ -116,7 +135,9 @@ module ActiveRecord
116
135
  end
117
136
 
118
137
  def quote_string(string)
119
- any_raw_connection.escape string
138
+ with_raw_connection(allow_retry: true, uses_transaction: false) do |conn|
139
+ conn.escape(string)
140
+ end
120
141
  end
121
142
 
122
143
  def active?
@@ -199,7 +220,9 @@ module ActiveRecord
199
220
  end
200
221
 
201
222
  def get_full_version
202
- any_raw_connection.server_info[:version]
223
+ with_raw_connection(allow_retry: true, uses_transaction: false) do |conn|
224
+ conn.server_info[:version]
225
+ end
203
226
  end
204
227
 
205
228
  def translate_exception(exception, message:, sql:, binds:)
@@ -208,6 +231,10 @@ module ActiveRecord
208
231
  ::TrilogyAdapter::LostConnectionExceptionTranslator.
209
232
  new(exception, message, error_code).translate || super
210
233
  end
234
+
235
+ def default_prepared_statements
236
+ false
237
+ end
211
238
  end
212
239
  end
213
240
  end
@@ -35,7 +35,7 @@ module TrilogyAdapter
35
35
  case exception
36
36
  when Errno::EPIPE
37
37
  Errors::BrokenPipe.new(message)
38
- when SocketError
38
+ when SocketError, IOError
39
39
  Errors::SocketError.new(message)
40
40
  when Errno::ECONNRESET
41
41
  Errors::ConnectionResetByPeer.new(message)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TrilogyAdapter
4
- VERSION = "2.0.0"
4
+ VERSION = "2.1.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-trilogy-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub Engineering
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-10 00:00:00.000000000 Z
11
+ date: 2022-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: trilogy
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: activerecord
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 7.1.0.alpha
33
+ version: 7.1.a
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 7.1.0.alpha
40
+ version: 7.1.a
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: minitest
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -136,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
136
  - !ruby/object:Gem::Version
137
137
  version: '0'
138
138
  requirements: []
139
- rubygems_version: 3.3.3
139
+ rubygems_version: 3.2.33
140
140
  signing_key:
141
141
  specification_version: 4
142
142
  summary: Active Record adapter for https://github.com/github/trilogy.