activerecord-cockroachdb-adapter 5.2.2 → 5.2.3
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a28ccd96cddcfaf334a3a854f8312a754e11b3a610ce338e53465abc567dcd71
|
4
|
+
data.tar.gz: 37ea9e0cb5d202128a46fbeb97fce75a9ef6aa8ae8043fc2c1f11fc38ae01ff1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a3a26fe9bbd9043bbbcd50b1c262cdc88bfded513b8f4d1fb2488d0a76cc9943c8201c082f6a6a5c65123801ad3fa10851ff708e771f3be9b07b53464ed4ae5
|
7
|
+
data.tar.gz: f5e123cce6d782b4427b4e97066cd874b9539a4a7de78d122ed46672326864bf4640aa3a9810b506f3bd307e6a1ff2fdf9447f2e215a391022350e023c41278d
|
data/README.md
CHANGED
@@ -7,7 +7,7 @@ CockroachDB adapter for ActiveRecord 4 and 5. This is a lightweight extension of
|
|
7
7
|
Add this line to your project's Gemfile:
|
8
8
|
|
9
9
|
```ruby
|
10
|
-
gem 'activerecord-cockroachdb-adapter', '~> 5.2
|
10
|
+
gem 'activerecord-cockroachdb-adapter', '~> 5.2'
|
11
11
|
```
|
12
12
|
|
13
13
|
If you're using Rails 4.x, use the `0.1.x` versions of this gem.
|
@@ -21,6 +21,11 @@ development:
|
|
21
21
|
host: <hostname>
|
22
22
|
user: <username>
|
23
23
|
```
|
24
|
+
## Configuration
|
25
|
+
|
26
|
+
In addition to the standard adapter settings, CockroachDB also supports the following:
|
27
|
+
|
28
|
+
- `disable_cockroachdb_telemetry`: Determines if a telemetry call is made to the database when the connection pool is initialized. Setting this to `true` will prevent the call from being made.
|
24
29
|
|
25
30
|
## Working with Spatial Data
|
26
31
|
|
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "activerecord-cockroachdb-adapter"
|
7
|
-
spec.version = "5.2.
|
7
|
+
spec.version = "5.2.3"
|
8
8
|
spec.licenses = ["Apache-2.0"]
|
9
9
|
spec.authors = ["Cockroach Labs"]
|
10
10
|
spec.email = ["cockroach-db@googlegroups.com"]
|
data/build/config.teamcity.yml
CHANGED
@@ -11,6 +11,7 @@ connections:
|
|
11
11
|
user: root
|
12
12
|
requiressl: disable
|
13
13
|
min_messages: warning
|
14
|
+
disable_cockroachdb_telemetry: true
|
14
15
|
arunit_without_prepared_statements:
|
15
16
|
database: activerecord_unittest
|
16
17
|
host: localhost
|
@@ -19,6 +20,7 @@ connections:
|
|
19
20
|
requiressl: disable
|
20
21
|
min_messages: warning
|
21
22
|
prepared_statements: false
|
23
|
+
disable_cockroachdb_telemetry: true
|
22
24
|
arunit2:
|
23
25
|
database: activerecord_unittest2
|
24
26
|
host: localhost
|
@@ -26,3 +28,4 @@ connections:
|
|
26
28
|
user: root
|
27
29
|
requiressl: disable
|
28
30
|
min_messages: warning
|
31
|
+
disable_cockroachdb_telemetry: true
|
@@ -40,12 +40,49 @@ module ActiveRecord
|
|
40
40
|
# PG::Connection object, so just pass a nil connection object for the
|
41
41
|
# time being.
|
42
42
|
ConnectionAdapters::CockroachDBAdapter.new(nil, logger, conn_params, config)
|
43
|
+
# This rescue flow appears in new_client, but it is needed here as well
|
44
|
+
# since Cockroach will sometimes not raise until a query is made.
|
45
|
+
rescue ActiveRecord::StatementInvalid => error
|
46
|
+
if conn_params && conn_params[:dbname] && error.cause.message.include?(conn_params[:dbname])
|
47
|
+
raise ActiveRecord::NoDatabaseError, error.cause.message
|
48
|
+
else
|
49
|
+
raise ActiveRecord::ConnectionNotEstablished, error.message
|
50
|
+
end
|
43
51
|
end
|
44
52
|
end
|
45
53
|
end
|
46
54
|
|
47
55
|
module ActiveRecord
|
48
56
|
module ConnectionAdapters
|
57
|
+
module CockroachDBConnectionPool
|
58
|
+
def initialize(pool_config)
|
59
|
+
super(pool_config)
|
60
|
+
disable_telemetry = pool_config.config[:disable_cockroachdb_telemetry]
|
61
|
+
adapter = pool_config.config[:adapter]
|
62
|
+
return if disable_telemetry || adapter != "cockroachdb"
|
63
|
+
|
64
|
+
|
65
|
+
begin
|
66
|
+
with_connection do |conn|
|
67
|
+
if conn.active?
|
68
|
+
begin
|
69
|
+
query = "SELECT crdb_internal.increment_feature_counter('ActiveRecord %d.%d')"
|
70
|
+
conn.execute(query % [ActiveRecord::VERSION::MAJOR, ActiveRecord::VERSION::MINOR])
|
71
|
+
rescue ActiveRecord::StatementInvalid
|
72
|
+
# The increment_feature_counter built-in is not supported on this
|
73
|
+
# CockroachDB version. Ignore.
|
74
|
+
rescue StandardError => e
|
75
|
+
conn.logger.warn "Unexpected error when incrementing feature counter: #{e}"
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
rescue StandardError
|
80
|
+
# Prevent failures on db creation and parallel testing.
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
ConnectionPool.prepend(CockroachDBConnectionPool)
|
85
|
+
|
49
86
|
class CockroachDBAdapter < PostgreSQLAdapter
|
50
87
|
ADAPTER_NAME = "CockroachDB".freeze
|
51
88
|
DEFAULT_PRIMARY_KEY = "rowid"
|
@@ -216,6 +253,10 @@ module ActiveRecord
|
|
216
253
|
@crdb_version >= 202
|
217
254
|
end
|
218
255
|
|
256
|
+
def supports_partitioned_indexes?
|
257
|
+
false
|
258
|
+
end
|
259
|
+
|
219
260
|
# This is hardcoded to 63 (as previously was in ActiveRecord 5.0) to aid in
|
220
261
|
# migration from PostgreSQL to CockroachDB. In practice, this limitation
|
221
262
|
# is arbitrary since CockroachDB supports index name lengths and table alias
|
@@ -233,6 +274,7 @@ module ActiveRecord
|
|
233
274
|
|
234
275
|
def initialize(connection, logger, conn_params, config)
|
235
276
|
super(connection, logger, conn_params, config)
|
277
|
+
|
236
278
|
crdb_version_string = query_value("SHOW crdb_version")
|
237
279
|
if crdb_version_string.include? "v1."
|
238
280
|
version_num = 1
|
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: 5.2.
|
4
|
+
version: 5.2.3
|
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: 2021-
|
11
|
+
date: 2021-06-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -97,7 +97,7 @@ licenses:
|
|
97
97
|
- Apache-2.0
|
98
98
|
metadata:
|
99
99
|
allowed_push_host: https://rubygems.org
|
100
|
-
post_install_message:
|
100
|
+
post_install_message:
|
101
101
|
rdoc_options: []
|
102
102
|
require_paths:
|
103
103
|
- lib
|
@@ -112,8 +112,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
112
112
|
- !ruby/object:Gem::Version
|
113
113
|
version: '0'
|
114
114
|
requirements: []
|
115
|
-
rubygems_version: 3.
|
116
|
-
signing_key:
|
115
|
+
rubygems_version: 3.2.15
|
116
|
+
signing_key:
|
117
117
|
specification_version: 4
|
118
118
|
summary: CockroachDB adapter for ActiveRecord.
|
119
119
|
test_files: []
|