Files
genai-toolbox/docs/en/resources/tools/postgres/postgres-list-indexes.md
Srividya Reddy 489117d747 feat(tools/postgres)!: Add additional filter params for existing postgres tools (#2033)
## Description

Add additional filter parameters for existing PostgreSQL tools:

1.  `list_views`:
- Add a new optional `"schema_name"` filter parameter to return results
based on a specific schema name pattern.
- Add an additional column `"definition"` to return the view definition.
2.  `list_schemas`:
- Add a new optional `"owner"` filter parameter to return results based
on a specific owner name pattern.
- Add a new optional `"limit"` parameter to return a specific number of
rows.
3.  `list_indexes`:
- Add a new optional `"only_unused"` filter parameter to return only
unused indexes.

> Should include a concise description of the changes (bug or feature),
it's
> impact, along with a summary of the solution

list_views
<img width="1531" height="763" alt="Screenshot 2025-11-25 at 1 36 39 PM"
src="https://github.com/user-attachments/assets/bd6805b3-43d2-46c7-adc8-62d3a4521d36"
/>

list_schemas
<img width="1519" height="755" alt="Screenshot 2025-11-25 at 1 35 54 PM"
src="https://github.com/user-attachments/assets/62d3e987-b64e-442b-ba1a-84def1df7a58"
/>


list_indexes
<img width="1523" height="774" alt="Screenshot 2025-11-25 at 1 35 32 PM"
src="https://github.com/user-attachments/assets/c6f73b3f-f8a2-4b76-9218-64d7011a2241"
/>


## PR Checklist

> Thank you for opening a Pull Request! Before submitting your PR, there
are a
> few things you can do to make sure it goes smoothly:

- [x] Make sure you reviewed

[CONTRIBUTING.md](https://github.com/googleapis/genai-toolbox/blob/main/CONTRIBUTING.md)
- [x] Make sure to open an issue as a

[bug/issue](https://github.com/googleapis/genai-toolbox/issues/new/choose)
  before writing your code! That way we can discuss the change, evaluate
  designs, and agree on the general idea
- [x] Ensure the tests and linter pass
- [x] Code coverage does not decrease (if any source code was changed)
- [x] Appropriate docs were updated (if necessary)
- [x] Make sure to add `!` if this involve a breaking change

🛠️ Fixes #<1738>

Co-authored-by: Averi Kitsch <akitsch@google.com>
2025-12-09 20:16:45 +00:00

3.0 KiB

title, type, weight, description, aliases
title type weight description aliases
postgres-list-indexes docs 1 The "postgres-list-indexes" tool lists indexes in a Postgres database.
/resources/tools/postgres-list-indexes

About

The postgres-list-indexes tool lists available user indexes in the database excluding those in pg_catalog and information_schema. It's compatible with any of the following sources:

postgres-list-indexes lists detailed information as JSON for indexes. The tool takes the following input parameters:

  • table_name (optional): A text to filter results by table name. Default: ""
  • index_name (optional): A text to filter results by index name. Default: ""
  • schema_name (optional): A text to filter results by schema name. Default: ""
  • only_unused (optional): If true, returns indexes that have never been used.
  • limit (optional): The maximum number of rows to return. Default: 50.

Example

tools:
  list_indexes:
    kind: postgres-list-indexes
    source: postgres-source
    description: |
      Lists available user indexes in the database, excluding system schemas (pg_catalog, 
      information_schema). For each index, the following properties are returned: 
      schema name, table name, index name, index type (access method), a boolean 
      indicating if it's a unique index, a boolean indicating if it's for a primary key,
      the index definition, index size in bytes, the number of index scans, the number of 
      index tuples read, the number of table tuples fetched via index scans, and a boolean 
      indicating if the index has been used at least once. 

The response is a json array with the following elements:

{
 "schema_name": "schema name", 
 "table_name": "table name",
 "index_name": "index name",
 "index_type": "index access method (e.g btree, hash, gin)",
 "is_unique": "boolean indicating if the index is unique",
 "is_primary": "boolean indicating if the index is for a primary key",
 "index_definition": "index definition statement",
 "index_size_bytes": "index size in bytes",
 "index_scans": "Number of index scans initiated on this index",
 "tuples_read": "Number of index entries returned by scans on this index",
 "tuples_fetched": "Number of live table rows fetched by simple index scans using this index", 
 "is_used": "boolean indicating if the index has been scanned at least once"
}

Reference

field type required description
kind string true Must be "postgres-list-indexes".
source string true Name of the source the SQL should execute on.
description string false Description of the tool that is passed to the agent.