Claude-skill-registry hypopg-help
used for preparing hypothetical indexes to be run in higher environments
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/hypopg-help" ~/.claude/skills/majiayu000-claude-skill-registry-hypopg-help && rm -rf "$T"
manifest:
skills/data/hypopg-help/SKILL.mdsource content
Building hypothetical indexes
Useful when a database includes the hypopg extension (for Postgres) to create and test hypothetical indexes. The goal is to create a copy and pasteable set of commands that a user can run to create a hypothetical index for testing in a higher environment.
The final deliverable is a set of Ruby commands to copy/paste. Wrap them in code blocks.
Instructions
- Work with the user to determine the index design. Ask them about contents, which table, and any ordering or conditional concerns.
- Use
to find an available connectionconnection = ::ActiveRecord::Base.lease_connection - Create a temporary variable called
using acreate_index_sql
heredoc for the index creation.<<~SQL.squish - Next, use string interpolation to create a new SQL string to create the hypopg index using
. Set this tohypopg_create_index()
. Usehypopg_sql
to properly handle nested quotes and SQL escaping when interpolating the SQL string into the hypopg function callconnection.quote(create_index_sql) - Provide the snippet for the end user to use
. The result should be saved toconnection.execute hypopg_sql
and we should instruct the user to outputresults
.results.to_a - To verify the hypothetical index is being used, instruct the user to use the same
to callconnection
with string interpolation to add "EXPLAIN " at the beginning of a.execute
call on a chain of model code. For example:#to_sql
.connection.execute("EXPLAIN #{Model.where(...).to_sql}") - Provide follow-up instructions to the user on how to verify the new hypothetical index is being used. Provide context on how to clean up new hypothetical indexes if they need to try an alternative.