pg_query_optimizer 0.1.0 → 0.1.1

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: 1ce5a4026e2bb5739220739b2e273dfc78661657e2ed9ae4ede358b508c8282a
4
- data.tar.gz: 218f3542fa3912a8e002c642733d867f1c6385dd82db497e32c941ff5d187255
3
+ metadata.gz: a2eb568ee518b6808213a0d6f9afe43a4dc457b24c5177377334c42c1c4b6097
4
+ data.tar.gz: 7858520cdbc2f3caddc158874d0d1dd4aedba5fd2df100c2c460906af2e71f20
5
5
  SHA512:
6
- metadata.gz: 03f381c2b3c74fe83c395c2c788265af67e41ed67ea07b7666157d298018eaab6b433d5f5e077f117dfe030903bcd10d2ef64243e6358ed566a161fbbe4ebfea
7
- data.tar.gz: 8852fcaacd8bb317d1a20fa8518a0d3c75b8473d20e6725946369e8f0490de4c44cc28e168ea05c9e384950c01834a0615bce38623bcf3e8aa1bafebfcd796c4
6
+ metadata.gz: 7a7440c9013c7189fa0b3888f94ac7012405f091e4a75ff0a53c3197f68f4e5aa0fd80a9a96ea83c0395b0f852f21c78802b807884ec61c8fa5979bc1319b170
7
+ data.tar.gz: 12b0b8136993f2fff634083359442867814c1357de6c4b3dceb13118b86309f36bd6b1624aaa1e2d616599617243e2afb203ce81ef12d018f9a4edaeb210ac95
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PgQueryOptimizer
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
@@ -20,18 +20,22 @@ module PgQueryOptimizer
20
20
  }.freeze
21
21
 
22
22
  def store_current_values
23
- @previous_values = {
24
- max_parallel_workers_per_gather: ActiveRecord::Base.connection.execute("SHOW max_parallel_workers_per_gather").first["max_parallel_workers_per_gather"],
25
- parallel_setup_cost: ActiveRecord::Base.connection.execute("SHOW parallel_setup_cost").first["parallel_setup_cost"],
26
- parallel_tuple_cost: ActiveRecord::Base.connection.execute("SHOW parallel_tuple_cost").first["parallel_tuple_cost"],
27
- min_parallel_table_scan_size: ActiveRecord::Base.connection.execute("SHOW min_parallel_table_scan_size").first["min_parallel_table_scan_size"],
28
- min_parallel_index_scan_size: ActiveRecord::Base.connection.execute("SHOW min_parallel_index_scan_size").first["min_parallel_index_scan_size"]
29
- }
23
+ with_suppressed_logs do
24
+ @previous_values = {
25
+ max_parallel_workers_per_gather: ActiveRecord::Base.connection.execute("SHOW max_parallel_workers_per_gather").first["max_parallel_workers_per_gather"],
26
+ parallel_setup_cost: ActiveRecord::Base.connection.execute("SHOW parallel_setup_cost").first["parallel_setup_cost"],
27
+ parallel_tuple_cost: ActiveRecord::Base.connection.execute("SHOW parallel_tuple_cost").first["parallel_tuple_cost"],
28
+ min_parallel_table_scan_size: ActiveRecord::Base.connection.execute("SHOW min_parallel_table_scan_size").first["min_parallel_table_scan_size"],
29
+ min_parallel_index_scan_size: ActiveRecord::Base.connection.execute("SHOW min_parallel_index_scan_size").first["min_parallel_index_scan_size"]
30
+ }
31
+ end
30
32
  end
31
33
 
32
- def estore_previous_values
33
- @previous_values.each do |key, value|
34
- ActiveRecord::Base.connection.execute("SET #{key} = '#{value}'")
34
+ def restore_previous_values
35
+ with_suppressed_logs do
36
+ @previous_values.each do |key, value|
37
+ ActiveRecord::Base.connection.execute("SET #{key} = '#{value}'")
38
+ end
35
39
  end
36
40
  end
37
41
 
@@ -45,8 +49,10 @@ module PgQueryOptimizer
45
49
 
46
50
  def enable_parallel_execution
47
51
  store_current_values
48
- DEFAULT_SETTINGS.each do |key, value|
49
- ActiveRecord::Base.connection.execute("SET #{key} = '#{value}'")
52
+ with_suppressed_logs do
53
+ DEFAULT_SETTINGS.each do |key, value|
54
+ ActiveRecord::Base.connection.execute("SET #{key} = '#{value}'")
55
+ end
50
56
  end
51
57
  end
52
58
 
@@ -72,6 +78,16 @@ module PgQueryOptimizer
72
78
  raise UnsupportedDatabaseError, "PgQueryOptimizer only supports PostgreSQL"
73
79
  end
74
80
  end
81
+
82
+ def with_suppressed_logs
83
+ original_logger = ActiveRecord::Base.logger
84
+ begin
85
+ ActiveRecord::Base.logger = Logger.new(nil) # Suppress logs
86
+ yield
87
+ ensure
88
+ ActiveRecord::Base.logger = original_logger # Restore original logger
89
+ end
90
+ end
75
91
  end
76
92
  end
77
93
 
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_query_optimizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
- - jana
7
+ - jana AKA JanSha
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
@@ -38,8 +38,9 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '5.0'
41
- description: pg_query_optimizer is a gem that provides a method to enable and manage
42
- parallel execution of PostgreSQL queries, improving the performance of complex queries.
41
+ description: pg_query_optimizer is a gem that improving the performance of complex
42
+ queries specifically desingned for postgress database. This query significantly
43
+ improves query execution times for large datasets.
43
44
  email:
44
45
  - shanmugamjanarthan24@gmail.com
45
46
  executables: []