replica_pools 2.6.5 → 2.6.6
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/lib/replica_pools/query_cache.rb +9 -18
- data/lib/replica_pools/version.rb +1 -1
- data/spec/query_cache_spec.rb +12 -0
- metadata +10 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d922bbdd8ecbc6f8738bad680376d89886018b681fbfc7df10cc082ae3f475e4
|
4
|
+
data.tar.gz: 7d89312f16e3e172b10b7b08c63c8a11c546782d790ef3d7492992926a8cca3f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2dbcdf906d0dae7171c64e250b11805817595316ad6ce877214856c4b5be71594d218c16f1df99ed8c362db07a7b9981950e3f90d45e4d9238383c33cdec445f
|
7
|
+
data.tar.gz: ba7f78a5e3f0e4ca562232f914c161544aa51a1a873ab74eb37af4badf905e3000c7e4bd33f984bb9bfcf66879b94c763e165e33026c07bde2ddbdda94a07c50
|
@@ -18,29 +18,20 @@ module ReplicaPools
|
|
18
18
|
# select_all is trickier. it needs to use the leader
|
19
19
|
# connection for cache logic, but ultimately pass its query
|
20
20
|
# through to whatever connection is current.
|
21
|
-
def select_all(*args, **kwargs)
|
22
|
-
|
23
|
-
|
24
|
-
if !query_cache_enabled || locked?(relation)
|
25
|
-
return route_to(current, :select_all, *args, **kwargs)
|
21
|
+
def select_all(arel, name = nil, binds = [], *args, preparable: nil, **kwargs)
|
22
|
+
if !query_cache_enabled || locked?(arel)
|
23
|
+
return route_to(current, :select_all, arel, name, binds, *args, preparable: preparable, **kwargs)
|
26
24
|
end
|
27
25
|
|
28
|
-
# duplicate
|
29
|
-
if
|
30
|
-
arel
|
31
|
-
else
|
32
|
-
arel, binds = relation, Array(raw_binds)
|
26
|
+
# duplicate arel_from_relation behavior introduced in 5.2.
|
27
|
+
if arel.is_a?(ActiveRecord::Relation)
|
28
|
+
arel = arel.arel
|
33
29
|
end
|
34
30
|
|
35
|
-
sql =
|
36
|
-
|
37
|
-
args[0] = sql
|
38
|
-
args[2] = binds
|
31
|
+
sql, binds, preparable = to_sql_and_binds(arel, binds, preparable)
|
39
32
|
|
40
|
-
|
41
|
-
|
42
|
-
else
|
43
|
-
cache_sql(sql, name, binds) { route_to(current, :select_all, *args, **kwargs) }
|
33
|
+
cache_sql(sql, name, binds) do
|
34
|
+
route_to(current, :select_all, arel, name, binds, *args, preparable: preparable, **kwargs)
|
44
35
|
end
|
45
36
|
end
|
46
37
|
|
data/spec/query_cache_spec.rb
CHANGED
@@ -116,4 +116,16 @@ describe ReplicaPools::QueryCache do
|
|
116
116
|
expect(TestModel.pluck(:id).count).to eql TestModel.all.count
|
117
117
|
end
|
118
118
|
end
|
119
|
+
|
120
|
+
describe '.ids regression test' do
|
121
|
+
it 'should work with query caching' do
|
122
|
+
TestModel.connection.enable_query_cache!
|
123
|
+
expect(TestModel.ids.count).to eql TestModel.all.count
|
124
|
+
end
|
125
|
+
|
126
|
+
it 'should work if query cache is not enabled' do
|
127
|
+
TestModel.connection.disable_query_cache!
|
128
|
+
expect(TestModel.ids.count).to eql TestModel.all.count
|
129
|
+
end
|
130
|
+
end
|
119
131
|
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: replica_pools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.6.
|
4
|
+
version: 2.6.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Drabik
|
8
8
|
- Lance Ivy
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2024-01-
|
12
|
+
date: 2024-01-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
@@ -143,7 +143,7 @@ homepage: https://github.com/kickstarter/replica_pools
|
|
143
143
|
licenses:
|
144
144
|
- MIT
|
145
145
|
metadata: {}
|
146
|
-
post_install_message:
|
146
|
+
post_install_message:
|
147
147
|
rdoc_options: []
|
148
148
|
require_paths:
|
149
149
|
- lib
|
@@ -158,14 +158,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
158
158
|
- !ruby/object:Gem::Version
|
159
159
|
version: '1.2'
|
160
160
|
requirements: []
|
161
|
-
rubygems_version: 3.
|
162
|
-
signing_key:
|
161
|
+
rubygems_version: 3.4.10
|
162
|
+
signing_key:
|
163
163
|
specification_version: 4
|
164
164
|
summary: Connection proxy for ActiveRecord for leader / replica setups.
|
165
165
|
test_files:
|
166
|
-
- spec/spec_helper.rb
|
167
|
-
- spec/pool_spec.rb
|
168
|
-
- spec/slave_pools_spec.rb
|
169
166
|
- spec/config/test_model.rb
|
170
|
-
- spec/query_cache_spec.rb
|
171
167
|
- spec/connection_proxy_spec.rb
|
168
|
+
- spec/pool_spec.rb
|
169
|
+
- spec/query_cache_spec.rb
|
170
|
+
- spec/slave_pools_spec.rb
|
171
|
+
- spec/spec_helper.rb
|