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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b62c1fdfa43f03f4975da35af83d63cb2360d8bc03002b2bdf5cc5b43aa58464
4
- data.tar.gz: 5f766b1de70aa92fd797205f4cc88957c124ad932bd9624baf9d32cd706d95ed
3
+ metadata.gz: d922bbdd8ecbc6f8738bad680376d89886018b681fbfc7df10cc082ae3f475e4
4
+ data.tar.gz: 7d89312f16e3e172b10b7b08c63c8a11c546782d790ef3d7492992926a8cca3f
5
5
  SHA512:
6
- metadata.gz: 2a9e40f9f6ef48d1b9aa8a9886ceb1c04e9e64a655d8c97ee4ca471236211c9a741200e0ac32a3e63dbc73c7851a1441469d3f1f33a447aa2ebdda9dcac1f5af
7
- data.tar.gz: 845206307c7ab96d873e4ff191092d1d7f3841d5332008a0c13177abf23bf24bf568e78b71b36e652c6cb2a0d1849a6b469fc42bb4e2c1ac5ba9377f8c03ecb6
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
- relation, name, raw_binds = args
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 binds_from_relation behavior introduced in 4.2.
29
- if raw_binds.blank? && relation.is_a?(ActiveRecord::Relation)
30
- arel, binds = relation.arel, relation.bind_values
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 = to_sql(arel, binds)
36
-
37
- args[0] = sql
38
- args[2] = binds
31
+ sql, binds, preparable = to_sql_and_binds(arel, binds, preparable)
39
32
 
40
- if Gem::Version.new(ActiveRecord.version) < Gem::Version.new('5.1')
41
- cache_sql(sql, binds) { route_to(current, :select_all, *args, **kwargs) }
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
 
@@ -1,3 +1,3 @@
1
1
  module ReplicaPools
2
- VERSION = "2.6.5"
2
+ VERSION = "2.6.6"
3
3
  end
@@ -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.5
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-08 00:00:00.000000000 Z
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.1.6
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