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 +4 -4
- data/lib/pg_query_optimizer/version.rb +1 -1
- data/lib/pg_query_optimizer.rb +28 -12
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a2eb568ee518b6808213a0d6f9afe43a4dc457b24c5177377334c42c1c4b6097
|
4
|
+
data.tar.gz: 7858520cdbc2f3caddc158874d0d1dd4aedba5fd2df100c2c460906af2e71f20
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a7440c9013c7189fa0b3888f94ac7012405f091e4a75ff0a53c3197f68f4e5aa0fd80a9a96ea83c0395b0f852f21c78802b807884ec61c8fa5979bc1319b170
|
7
|
+
data.tar.gz: 12b0b8136993f2fff634083359442867814c1357de6c4b3dceb13118b86309f36bd6b1624aaa1e2d616599617243e2afb203ce81ef12d018f9a4edaeb210ac95
|
data/lib/pg_query_optimizer.rb
CHANGED
@@ -20,18 +20,22 @@ module PgQueryOptimizer
|
|
20
20
|
}.freeze
|
21
21
|
|
22
22
|
def store_current_values
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
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
|
33
|
-
|
34
|
-
|
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
|
-
|
49
|
-
|
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.
|
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
|
42
|
-
|
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: []
|