ruby-pg-extras 4.10.0 → 4.11.0

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: c4b41078ac90e9598de6184dd02b7d351cafd32456e4f398f2d7902e233f053d
4
- data.tar.gz: a8f19f5324b1c94a8f2516cf44087afec4d58b9a93537602175d225aeccb51e7
3
+ metadata.gz: 6fa76a798c41ebe051c5df9fcabc34e271b9d045c42220fae3968f5de88328e8
4
+ data.tar.gz: b3aa49df175c069ad6ec077db5315806e71b2bce9a1690cf9b4062fae37169b3
5
5
  SHA512:
6
- metadata.gz: 48bbea030d77d6b27ff9000d3b7b7cf66a75386321559db2ba925edcc4c6dac9893ff5ce2bea54676b250a0e0e5219a9faf874b02e10d96236a249c84c2d9352
7
- data.tar.gz: efb3cff55c6f5421813f3ac6d88cdbbd96ed08d1b8246099bf17416691ed480ae96459b2e2ce9c3dbc95eed418a85e4011097235f9407d0a9e359ec154260537
6
+ metadata.gz: 5b5518dc8bb7739708768ab0ebb19ed885c30aa1a61083228bf2bfa2e8668d1e29b61e0ed09618980dfacef8daf8d8514ff9862ed9c0f3babac0aa67a1a5ff19
7
+ data.tar.gz: cf4a2bce35f343245b0a594f480249597bfe69b82e421923d73619cdfac5dad5199770e7038a1e5561701cfc2a644bb931b7ecf0a6b3215c509665e4ea7e6d30
data/README.md CHANGED
@@ -591,6 +591,16 @@ RubyPgExtras.kill_all
591
591
 
592
592
  This commands kills all the currently active connections to the database. It can be useful as a last resort when your database is stuck in a deadlock.
593
593
 
594
+ ### `kill_by_pid`
595
+
596
+ ```ruby
597
+
598
+ RubyPgExtras.kill_by_pid(args: { pid: 4657 })
599
+
600
+ ```
601
+
602
+ This commands kills currently active database connection by its `pid` number. You can use `connections` method to find the correct `pid` values.
603
+
594
604
  ### `pg_stat_statements_reset`
595
605
 
596
606
  ```ruby
@@ -625,16 +635,6 @@ RubyPgExtras.extensions
625
635
 
626
636
  This command lists all the currently installed and available PostgreSQL extensions.
627
637
 
628
- ### `mandelbrot`
629
-
630
- ```ruby
631
-
632
- RubyPgExtras.mandelbrot
633
-
634
- ```
635
-
636
- This command outputs the Mandelbrot set, calculated through SQL.
637
-
638
638
  ### `connections`
639
639
 
640
640
  ```ruby
@@ -653,6 +653,16 @@ RubyPgExtras.connections
653
653
 
654
654
  This command returns the list of all active database connections.
655
655
 
656
+ ### `mandelbrot`
657
+
658
+ ```ruby
659
+
660
+ RubyPgExtras.mandelbrot
661
+
662
+ ```
663
+
664
+ This command outputs the Mandelbrot set, calculated through SQL.
665
+
656
666
  ## Testing
657
667
 
658
668
  ```bash
@@ -22,7 +22,7 @@ module RubyPgExtras
22
22
  long_running_queries mandelbrot outliers
23
23
  records_rank seq_scans table_index_scans table_indexes_size
24
24
  table_size total_index_size total_table_size
25
- unused_indexes duplicate_indexes vacuum_stats kill_all
25
+ unused_indexes duplicate_indexes vacuum_stats kill_all kill_by_pid
26
26
  pg_stat_statements_reset buffercache_stats
27
27
  buffercache_usage ssl_used connections
28
28
  )
@@ -45,7 +45,8 @@ module RubyPgExtras
45
45
  seq_scans: { schema: "public" },
46
46
  table_index_scans: { schema: "public" },
47
47
  records_rank: { schema: "public" },
48
- tables: { schema: "public" }
48
+ tables: { schema: "public" },
49
+ kill_by_pid: { pid: 0 }
49
50
  })
50
51
 
51
52
  QUERIES.each do |query_name|
@@ -1,4 +1,3 @@
1
1
  /* Returns the list of all active database connections */
2
2
 
3
- SELECT usename as username, client_addr::text as client_address, application_name FROM pg_stat_activity
4
- WHERE datname = current_database();
3
+ SELECT usename as username, pid, client_addr::text as client_address, application_name FROM pg_stat_activity WHERE datname = current_database();
@@ -0,0 +1,6 @@
1
+ /* Kill database connection by its pid */
2
+
3
+ SELECT pg_terminate_backend(pid) FROM pg_stat_activity
4
+ WHERE pid = %{pid}
5
+ AND query <> '<insufficient privilege>'
6
+ AND datname = current_database();
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RubyPgExtras
4
- VERSION = "4.10.0"
4
+ VERSION = "4.11.0"
5
5
  end
data/spec/smoke_spec.rb CHANGED
@@ -13,7 +13,7 @@ describe RubyPgExtras do
13
13
  end
14
14
  end
15
15
 
16
- RubyPgExtras::QUERIES.each do |query_name|
16
+ RubyPgExtras::QUERIES.reject { |q| q == :kill_all }.each do |query_name|
17
17
  it "#{query_name} query can be executed" do
18
18
  expect do
19
19
  RubyPgExtras.run_query(
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-pg-extras
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.10.0
4
+ version: 4.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - pawurb
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-23 00:00:00.000000000 Z
11
+ date: 2022-11-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg
@@ -106,6 +106,7 @@ files:
106
106
  - lib/ruby_pg_extras/queries/index_usage.sql
107
107
  - lib/ruby_pg_extras/queries/indexes.sql
108
108
  - lib/ruby_pg_extras/queries/kill_all.sql
109
+ - lib/ruby_pg_extras/queries/kill_by_pid.sql
109
110
  - lib/ruby_pg_extras/queries/locks.sql
110
111
  - lib/ruby_pg_extras/queries/long_running_queries.sql
111
112
  - lib/ruby_pg_extras/queries/mandelbrot.sql