activerecord-cockroachdb-adapter 6.1.6 → 6.1.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 55fcba0c750ea29dde5f7a7efcabd35c1c81d1cbabee65ad1aeca9e16ab3e9d6
4
- data.tar.gz: 1f3b6c480c3430c53f632d11647afc4d76b8d5a05990e3a7b7f21191f093c746
3
+ metadata.gz: 95b9157a969cd938c7500ed5a755120ec9f9bdce6e5e11316d32e2e434e8d7b2
4
+ data.tar.gz: 96f79790d7f0fbbb95b32e3e07425fe8df2d10830165e31302f0d9fa8f27405a
5
5
  SHA512:
6
- metadata.gz: c29d9e502572a94a2a34ddf43f9cf09aac0aca3c63b6e489844a256cbbce7728ce90280acc8153ab4114dc9721eac37f26752936d5b3418c731fee17a2c1bd98
7
- data.tar.gz: 68943312caf4a756081d806e7e6bb29a563d396f435226f2dadf595f2068649d1877f8bd79a88f2b65df9cc57ee998b4e2f7f6a81a7589f1ef03198cd3dc3a1d
6
+ metadata.gz: ed654032304e706dcab7ab22514b5e1e93facfa946686a9455676fa220c5aff0859044645b778d0ef63f8482809a21440846d733f263ec007c548a4bba18c891
7
+ data.tar.gz: 8a1d4ae16ac33747a80b2a1af1d04095358265d7949e43b66ba3e77aa02d310c9ebc32891d315ce9351197223e6f04e238cb1bd1eb57c8ffef2ecf94a120ed31
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 6.1.7 - 2022-03-01
4
+
5
+ - Fix query to get the CockroachDB version so it does not require any privileges.
6
+
3
7
  ## 6.1.6 - 2022-02-25
4
8
 
5
9
  - Fix mixed versions of CockroachDB v21.1 and v21.2 not working.
@@ -228,27 +228,42 @@ module ActiveRecord
228
228
  def initialize(connection, logger, conn_params, config)
229
229
  super(connection, logger, conn_params, config)
230
230
 
231
- crdb_version_string = query_value("SHOW CLUSTER SETTING version")
232
- if crdb_version_string.start_with? "1."
233
- version_num = 1
234
- elsif crdb_version_string.start_with? "2."
235
- version_num = 2
236
- elsif crdb_version_string.start_with? "19.1"
237
- version_num = 1910
238
- elsif crdb_version_string.start_with? "19.2"
239
- version_num = 1920
240
- elsif crdb_version_string.start_with? "20.1"
241
- version_num = 2010
242
- elsif crdb_version_string.start_with? "20.2"
243
- version_num = 2020
244
- elsif crdb_version_string.start_with? "21.1"
245
- version_num = 2110
246
- elsif crdb_version_string.start_with? "21.2"
247
- version_num = 2120
231
+ # crdb_version is the version of the binary running on the node. We
232
+ # really want to use `SHOW CLUSTER SETTING version` to get the cluster
233
+ # version, but that is only available to admins. Instead, we can use
234
+ # crdb_internal.is_at_least_version, but that's only available in 22.1.
235
+ crdb_version_string = query_value("SHOW crdb_version")
236
+ if crdb_version_string.include? "v22.1"
237
+ version_num = query_value(<<~SQL, "VERSION")
238
+ SELECT
239
+ CASE
240
+ WHEN crdb_internal.is_at_least_version('22.2') THEN 2220
241
+ WHEN crdb_internal.is_at_least_version('22.1') THEN 2210
242
+ ELSE 2120
243
+ END;
244
+ SQL
248
245
  else
249
- version_num = 2210
246
+ # This branch can be removed once the dialect stops supporting v21.2
247
+ # and earlier.
248
+ if crdb_version_string.include? "v1."
249
+ version_num = 1
250
+ elsif crdb_version_string.include? "v2."
251
+ version_num 2
252
+ elsif crdb_version_string.include? "v19.1."
253
+ version_num = 1910
254
+ elsif crdb_version_string.include? "v19.2."
255
+ version_num = 1920
256
+ elsif crdb_version_string.include? "v20.1."
257
+ version_num = 2010
258
+ elsif crdb_version_string.include? "v20.2."
259
+ version_num = 2020
260
+ elsif crdb_version_string.include? "v21.1."
261
+ version_num = 2110
262
+ else
263
+ version_num = 2120
264
+ end
250
265
  end
251
- @crdb_version = version_num
266
+ @crdb_version = version_num.to_i
252
267
 
253
268
  # NOTE: this is normally in configure_connection, but that is run
254
269
  # before crdb_version is determined. Once all supported versions
@@ -256,8 +271,14 @@ module ActiveRecord
256
271
  # back.
257
272
  # Set interval output format to ISO 8601 for ease of parsing by ActiveSupport::Duration.parse
258
273
  if @crdb_version >= 2120
259
- execute("SET intervalstyle_enabled = true", "SCHEMA")
260
- execute("SET intervalstyle = iso_8601", "SCHEMA")
274
+ begin
275
+ execute("SET intervalstyle_enabled = true", "SCHEMA")
276
+ execute("SET intervalstyle = iso_8601", "SCHEMA")
277
+ rescue
278
+ # Ignore any error. This can happen with a cluster that has
279
+ # not yet finalized the v21.2 upgrade. v21.2 does not have
280
+ # a way to tell if the upgrade was finalized (see comment above).
281
+ end
261
282
  end
262
283
  end
263
284
 
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveRecord
4
- COCKROACH_DB_ADAPTER_VERSION = "6.1.6"
4
+ COCKROACH_DB_ADAPTER_VERSION = "6.1.7"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-cockroachdb-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.1.6
4
+ version: 6.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cockroach Labs
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-02-25 00:00:00.000000000 Z
11
+ date: 2022-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -101,7 +101,7 @@ licenses:
101
101
  - Apache-2.0
102
102
  metadata:
103
103
  allowed_push_host: https://rubygems.org
104
- post_install_message:
104
+ post_install_message:
105
105
  rdoc_options: []
106
106
  require_paths:
107
107
  - lib
@@ -116,8 +116,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  requirements: []
119
- rubygems_version: 3.0.3.1
120
- signing_key:
119
+ rubygems_version: 3.1.6
120
+ signing_key:
121
121
  specification_version: 4
122
122
  summary: CockroachDB adapter for ActiveRecord.
123
123
  test_files: []