benedictus 0.2.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 +7 -0
- data/CHANGELOG.md +118 -0
- data/LICENSE +21 -0
- data/README.md +221 -0
- data/exe/bemdito +6 -0
- data/exe/benedictus +6 -0
- data/exe/bnd +6 -0
- data/lib/benedictus/cli.rb +79 -0
- data/lib/benedictus/color.rb +52 -0
- data/lib/benedictus/errors.rb +31 -0
- data/lib/benedictus/expression_evaluator.rb +24 -0
- data/lib/benedictus/heuristics/base.rb +21 -0
- data/lib/benedictus/heuristics/expensive_per_row_scan.rb +71 -0
- data/lib/benedictus/heuristics/external_sort.rb +31 -0
- data/lib/benedictus/heuristics/nested_loop_blowup.rb +34 -0
- data/lib/benedictus/heuristics/registry.rb +45 -0
- data/lib/benedictus/heuristics/row_estimate_drift.rb +41 -0
- data/lib/benedictus/heuristics/seq_scan_on_large_table.rb +34 -0
- data/lib/benedictus/heuristics/warning.rb +16 -0
- data/lib/benedictus/plan/node.rb +75 -0
- data/lib/benedictus/plan/parser.rb +40 -0
- data/lib/benedictus/plan/tree.rb +52 -0
- data/lib/benedictus/plan_runner.rb +71 -0
- data/lib/benedictus/rails_loader.rb +41 -0
- data/lib/benedictus/relation_resolver.rb +46 -0
- data/lib/benedictus/renderers/json_renderer.rb +15 -0
- data/lib/benedictus/renderers/raw_renderer.rb +16 -0
- data/lib/benedictus/renderers/tree_renderer.rb +196 -0
- data/lib/benedictus/runner.rb +122 -0
- data/lib/benedictus/safety_guard.rb +144 -0
- data/lib/benedictus/sql_formatter.rb +161 -0
- data/lib/benedictus/version.rb +5 -0
- data/lib/benedictus.rb +32 -0
- metadata +99 -0
metadata
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: benedictus
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.2.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Antonio Paulino
|
|
8
|
+
bindir: exe
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: thor
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '1.0'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - "~>"
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '1.0'
|
|
26
|
+
description: |
|
|
27
|
+
Benedictus is a Rails developer's CLI for inspecting the execution plan
|
|
28
|
+
of any ActiveRecord relation, scope, or query object. It boots the host
|
|
29
|
+
Rails app, evaluates the expression you pass in, runs EXPLAIN (or EXPLAIN
|
|
30
|
+
ANALYZE inside a rolled-back transaction), parses the JSON plan, and
|
|
31
|
+
renders it as a colored, annotated tree with inline performance warnings.
|
|
32
|
+
email:
|
|
33
|
+
- tonnyarauujo@gmail.com
|
|
34
|
+
executables:
|
|
35
|
+
- bemdito
|
|
36
|
+
- benedictus
|
|
37
|
+
- bnd
|
|
38
|
+
extensions: []
|
|
39
|
+
extra_rdoc_files: []
|
|
40
|
+
files:
|
|
41
|
+
- CHANGELOG.md
|
|
42
|
+
- LICENSE
|
|
43
|
+
- README.md
|
|
44
|
+
- exe/bemdito
|
|
45
|
+
- exe/benedictus
|
|
46
|
+
- exe/bnd
|
|
47
|
+
- lib/benedictus.rb
|
|
48
|
+
- lib/benedictus/cli.rb
|
|
49
|
+
- lib/benedictus/color.rb
|
|
50
|
+
- lib/benedictus/errors.rb
|
|
51
|
+
- lib/benedictus/expression_evaluator.rb
|
|
52
|
+
- lib/benedictus/heuristics/base.rb
|
|
53
|
+
- lib/benedictus/heuristics/expensive_per_row_scan.rb
|
|
54
|
+
- lib/benedictus/heuristics/external_sort.rb
|
|
55
|
+
- lib/benedictus/heuristics/nested_loop_blowup.rb
|
|
56
|
+
- lib/benedictus/heuristics/registry.rb
|
|
57
|
+
- lib/benedictus/heuristics/row_estimate_drift.rb
|
|
58
|
+
- lib/benedictus/heuristics/seq_scan_on_large_table.rb
|
|
59
|
+
- lib/benedictus/heuristics/warning.rb
|
|
60
|
+
- lib/benedictus/plan/node.rb
|
|
61
|
+
- lib/benedictus/plan/parser.rb
|
|
62
|
+
- lib/benedictus/plan/tree.rb
|
|
63
|
+
- lib/benedictus/plan_runner.rb
|
|
64
|
+
- lib/benedictus/rails_loader.rb
|
|
65
|
+
- lib/benedictus/relation_resolver.rb
|
|
66
|
+
- lib/benedictus/renderers/json_renderer.rb
|
|
67
|
+
- lib/benedictus/renderers/raw_renderer.rb
|
|
68
|
+
- lib/benedictus/renderers/tree_renderer.rb
|
|
69
|
+
- lib/benedictus/runner.rb
|
|
70
|
+
- lib/benedictus/safety_guard.rb
|
|
71
|
+
- lib/benedictus/sql_formatter.rb
|
|
72
|
+
- lib/benedictus/version.rb
|
|
73
|
+
homepage: https://github.com/tonyaraujop/benedictus
|
|
74
|
+
licenses:
|
|
75
|
+
- MIT
|
|
76
|
+
metadata:
|
|
77
|
+
homepage_uri: https://github.com/tonyaraujop/benedictus
|
|
78
|
+
source_code_uri: https://github.com/tonyaraujop/benedictus/tree/main
|
|
79
|
+
changelog_uri: https://github.com/tonyaraujop/benedictus/blob/main/CHANGELOG.md
|
|
80
|
+
rubygems_mfa_required: 'true'
|
|
81
|
+
rdoc_options: []
|
|
82
|
+
require_paths:
|
|
83
|
+
- lib
|
|
84
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - ">="
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: '3.1'
|
|
89
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
90
|
+
requirements:
|
|
91
|
+
- - ">="
|
|
92
|
+
- !ruby/object:Gem::Version
|
|
93
|
+
version: '0'
|
|
94
|
+
requirements: []
|
|
95
|
+
rubygems_version: 3.6.9
|
|
96
|
+
specification_version: 4
|
|
97
|
+
summary: A query bem-dita — render PostgreSQL EXPLAIN as a colored tree from any Ruby/Rails
|
|
98
|
+
expression.
|
|
99
|
+
test_files: []
|