From 0b9fedc38f58ae613750aec91720e2ad83463916 Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Sat, 6 Jan 2024 15:24:10 -0800 Subject: [PATCH] Fixed error with auto_explain - fixes #48 --- CHANGELOG.md | 1 + lib/dexter/indexer.rb | 2 +- lib/dexter/query.rb | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c818c9a7..be7d661c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## 0.5.2 (unreleased) - Switched to `GENERIC_PLAN` for Postgres 16 +- Fixed error with `auto_explain` - Fixed warning with Ruby 3.3 ## 0.5.1 (2023-05-27) diff --git a/lib/dexter/indexer.rb b/lib/dexter/indexer.rb index 119aee22..dded3e0d 100644 --- a/lib/dexter/indexer.rb +++ b/lib/dexter/indexer.rb @@ -185,7 +185,7 @@ def create_hypothetical_indexes(queries) # get initial costs for queries calculate_plan(queries) - explainable_queries = queries.select { |q| q.explainable? && q.high_cost? } + explainable_queries = queries.select { |q| q.plans.any? && q.high_cost? } # filter tables for performance tables = Set.new(explainable_queries.flat_map(&:tables)) diff --git a/lib/dexter/query.rb b/lib/dexter/query.rb index 6585603e..fea4a123 100644 --- a/lib/dexter/query.rb +++ b/lib/dexter/query.rb @@ -31,7 +31,7 @@ def tree end def explainable? - plans.any? + plans.size >= 3 end def costs