pgtk 0.28.1 → 0.28.2

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: 15ef00bc464354f5067a8346303914924549a69127dd7d089511b432ceb61cb5
4
- data.tar.gz: f0714a56d3d31bdc90f6a8b24bd871b4ac2256dabe32be94191afb92e2034f74
3
+ metadata.gz: 383ebf58dcd3f2deefe3f56384a1144f0de2aadd81b01f814cc2aa1610b4e1f1
4
+ data.tar.gz: 3421b3a30ec731028021b7206ed9d35d271d325d311a9c50feca0c7cd909d256
5
5
  SHA512:
6
- metadata.gz: 186a1581c002df615bef9ddecf615140ee0cfe4abd328f7ea841b891d09ffbb3f08ae058eb534abcb4c7002fd2b903d082e4b1d5a577b4f9d615a3b8ee8bd35d
7
- data.tar.gz: efa556d86eea1b11834d8c19f3620abcc17d3567d3db0d9452d20c4cdd56ad59db13b38ecded753f86ca14f2d36fc95e7e2f67d43386246071ff3d65675bede0
6
+ metadata.gz: 9d6be631578aa3ad6d31f563365b8c5094bb26f959ea5bf601d8e474bb018af35557190744719ea9392385b22ab5a036355fb84bc141ba6715678caaf6e09a8c
7
+ data.tar.gz: 6fa8e5aedf00a6da89de5dc770695aaa488c1364752909d0c783c658ac6d85708a5004aaf41126a1286c033c1f2f40d223cfcd4a1698f7f80c16774987462d55
data/lib/pgtk/stash.rb CHANGED
@@ -212,7 +212,7 @@ class Pgtk::Stash
212
212
  if ret.nil? || @stash.dig(:queries, pure, key, :stale)
213
213
  ret = @pool.exec(pure, params, result)
214
214
  unless pure.include?(' NOW() ')
215
- tables = pure.scan(/(?<=^|\s)(?:FROM|JOIN) ([a-z_]+)(?=\s|$)/).map(&:first).uniq
215
+ tables = pure.scan(/(?<=^|\s)(?:FROM|JOIN) ([a-z_]+)(?=\s|;|$)/).map(&:first).uniq
216
216
  raise "No tables at #{pure.inspect}" if tables.empty?
217
217
  @entrance.with_write_lock do
218
218
  tables.each do |t|
@@ -303,13 +303,16 @@ class Pgtk::Stash
303
303
  return unless @refill_interval
304
304
  Concurrent::TimerTask.execute(execution_interval: @refill_interval, executor: @tpool) do
305
305
  qq =
306
- @stash[:queries]
307
- .map { |k, v| [k, v.values.sum { |vv| vv[:popularity] }, v.values.any? { |vv| vv[:stale] }] }
308
- .select { _1[2] }
309
- .sort_by { -_1[1] }
310
- .map { |a| a[0] }
306
+ @entrance.with_write_lock do
307
+ @stash[:queries]
308
+ .map { |k, v| [k, v.values.sum { |vv| vv[:popularity] }, v.values.any? { |vv| vv[:stale] }] }
309
+ end
310
+ qq =
311
+ qq.select { _1[2] }
312
+ .sort_by { -_1[1] }
313
+ .map { _1[0] }
311
314
  qq.each do |q|
312
- @stash[:queries][q].each_key do |k|
315
+ @entrance.with_write_lock { @stash[:queries][q].keys }.each do |k|
313
316
  next unless @stash[:queries][q][k][:stale]
314
317
  next if @stash[:queries][q][k][:stale] > Time.now - @refill_delay
315
318
  next if @tpool.queue_length >= @max_queue_length
data/lib/pgtk/version.rb CHANGED
@@ -11,5 +11,5 @@ require_relative '../pgtk'
11
11
  # License:: MIT
12
12
  module Pgtk
13
13
  # Current version of the library.
14
- VERSION = '0.28.1'
14
+ VERSION = '0.28.2'
15
15
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pgtk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.28.1
4
+ version: 0.28.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko