Skip to content

fix: list tables tools null fix#2107

Merged
averikitsch merged 9 commits into
mainfrom
list-table-null-fix
Dec 11, 2025
Merged

fix: list tables tools null fix#2107
averikitsch merged 9 commits into
mainfrom
list-table-null-fix

Conversation

@gRedHeadphone

Copy link
Copy Markdown
Contributor

Description

Return empty list instead of null in list tables tools when no tables found

PR Checklist

  • Make sure you reviewed
    CONTRIBUTING.md
  • Make sure to open an issue as a
    bug/issue
    before writing your code! That way we can discuss the change, evaluate
    designs, and agree on the general idea
  • Ensure the tests and linter pass
  • Code coverage does not decrease (if any source code was changed)
  • Appropriate docs were updated (if necessary)
  • Make sure to add ! if this involve a breaking change

🛠️ Fixes #2027

@gRedHeadphone gRedHeadphone requested a review from a team December 4, 2025 05:58
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @gRedHeadphone, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses an inconsistency in the behavior of database table listing tools. Previously, these tools would return a null value when no tables were found, which could lead to unexpected behavior or require additional null checks in consuming code. The change standardizes the output to an empty list ([]) in such scenarios, improving the robustness and predictability of the API across different database integrations.

Highlights

  • Null Return Fix: Modified various database listing tools (ClickHouse, MSSQL, MySQL, PostgreSQL, Spanner) to return an empty list ([]) instead of null when no tables are found. This ensures consistent API behavior and prevents potential null pointer exceptions.
  • Test Updates: Updated existing tests for PostgreSQL, MySQL, and MSSQL list table functionalities to reflect the new expected behavior of returning an empty array instead of null when no tables match the criteria.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request addresses an issue where various list-tables tools would return null instead of an empty list [] when no tables were found. The changes correctly modify slice initializations in Go from var s []T (which creates a nil slice) to s := []T{} (which creates an empty, non-nil slice). This ensures that the JSON response is consistently an array, improving API usability for clients. The corresponding tests have been updated to reflect this change in behavior. The fix is applied consistently across tools for ClickHouse, MSSQL, MySQL, PostgreSQL, and Spanner. The implementation is correct and follows Go best practices.

@averikitsch averikitsch enabled auto-merge (squash) December 9, 2025 22:14
@averikitsch averikitsch added the release candidate Use label to signal PR should be included in the next release. label Dec 9, 2025
@averikitsch

Copy link
Copy Markdown
Contributor

Can you look to see if MariaDB list tables needs to be updated?

@gRedHeadphone

Copy link
Copy Markdown
Contributor Author

Can you look to see if MariaDB list tables needs to be updated?

@averikitsch It seems MariaDB uses MySQL source and tools, and I have updated MySQL list tables https://github.com/googleapis/genai-toolbox/pull/2107/files#diff-3a1dc16d3164a7f1344ee3ea73ab4505f57f15b9baf49ba095f4b3be6f08f84d so it should be fine

@duwenxin99

Copy link
Copy Markdown
Contributor

/gcbrun

@duwenxin99 duwenxin99 added the tests: run Label to trigger Github Action tests. label Dec 11, 2025
@github-actions github-actions Bot removed the tests: run Label to trigger Github Action tests. label Dec 11, 2025
@averikitsch averikitsch merged commit 2b45266 into main Dec 11, 2025
11 checks passed
@averikitsch averikitsch deleted the list-table-null-fix branch December 11, 2025 20:58
duwenxin99 added a commit that referenced this pull request Dec 11, 2025
🤖 I have created a release *beep* *boop*
---


##
[0.23.0](v0.22.0...v0.23.0)
(2025-12-11)


### ⚠ BREAKING CHANGES

* **serverless-spark:** add URLs to create batch tool outputs
* **serverless-spark:** add URLs to list_batches output
* **serverless-spark:** add Cloud Console and Logging URLs to get_batch
* **tools/postgres:** Add additional filter params for existing postgres
tools ([#2033](#2033))

### Features

* **tools/postgres:** Add list-table-stats-tool to list table
statistics.
([#2055](#2055))
([78b02f0](78b02f0))
* **looker/tools:** Enhance dashboard creation with dashboard filters
([#2133](#2133))
([285aa46](285aa46))
* **serverless-spark:** Add Cloud Console and Logging URLs to get_batch
([e29c061](e29c061))
* **serverless-spark:** Add URLs to create batch tool outputs
([c6ccf4b](c6ccf4b))
* **serverless-spark:** Add URLs to list_batches output
([5605eab](5605eab))
* **sources/mariadb:** Add MariaDB source and MySQL tools integration
([#1908](#1908))
([3b40fea](3b40fea))
* **tools/postgres:** Add additional filter params for existing postgres
tools ([#2033](#2033))
([489117d](489117d))
* **tools/postgres:** Add list_pg_settings, list_database_stats tools
for postgres
([#2030](#2030))
([32367a4](32367a4))
* **tools/postgres:** Add new postgres-list-roles tool
([#2038](#2038))
([bea9705](bea9705))


### Bug Fixes

* List tables tools null fix
([#2107](#2107))
([2b45266](2b45266))
* **tools/mongodb:** Removed sortPayload and sortParams
([#1238](#1238))
([c5a6daa](c5a6daa))


### Miscellaneous Chores
* **looker:** Upgrade to latest go sdk
([#2159](#2159))
([78e015d](78e015d))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com>
github-actions Bot pushed a commit that referenced this pull request Dec 11, 2025
🤖 I have created a release *beep* *boop*
---

##
[0.23.0](v0.22.0...v0.23.0)
(2025-12-11)

### ⚠ BREAKING CHANGES

* **serverless-spark:** add URLs to create batch tool outputs
* **serverless-spark:** add URLs to list_batches output
* **serverless-spark:** add Cloud Console and Logging URLs to get_batch
* **tools/postgres:** Add additional filter params for existing postgres
tools ([#2033](#2033))

### Features

* **tools/postgres:** Add list-table-stats-tool to list table
statistics.
([#2055](#2055))
([78b02f0](78b02f0))
* **looker/tools:** Enhance dashboard creation with dashboard filters
([#2133](#2133))
([285aa46](285aa46))
* **serverless-spark:** Add Cloud Console and Logging URLs to get_batch
([e29c061](e29c061))
* **serverless-spark:** Add URLs to create batch tool outputs
([c6ccf4b](c6ccf4b))
* **serverless-spark:** Add URLs to list_batches output
([5605eab](5605eab))
* **sources/mariadb:** Add MariaDB source and MySQL tools integration
([#1908](#1908))
([3b40fea](3b40fea))
* **tools/postgres:** Add additional filter params for existing postgres
tools ([#2033](#2033))
([489117d](489117d))
* **tools/postgres:** Add list_pg_settings, list_database_stats tools
for postgres
([#2030](#2030))
([32367a4](32367a4))
* **tools/postgres:** Add new postgres-list-roles tool
([#2038](#2038))
([bea9705](bea9705))

### Bug Fixes

* List tables tools null fix
([#2107](#2107))
([2b45266](2b45266))
* **tools/mongodb:** Removed sortPayload and sortParams
([#1238](#1238))
([c5a6daa](c5a6daa))

### Miscellaneous Chores
* **looker:** Upgrade to latest go sdk
([#2159](#2159))
([78e015d](78e015d))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com> 466aef0
github-actions Bot pushed a commit to renovate-bot/googleapis-_-genai-toolbox that referenced this pull request Dec 11, 2025
🤖 I have created a release *beep* *boop*
---

##
[0.23.0](googleapis/mcp-toolbox@v0.22.0...v0.23.0)
(2025-12-11)

### ⚠ BREAKING CHANGES

* **serverless-spark:** add URLs to create batch tool outputs
* **serverless-spark:** add URLs to list_batches output
* **serverless-spark:** add Cloud Console and Logging URLs to get_batch
* **tools/postgres:** Add additional filter params for existing postgres
tools ([googleapis#2033](googleapis#2033))

### Features

* **tools/postgres:** Add list-table-stats-tool to list table
statistics.
([googleapis#2055](googleapis#2055))
([78b02f0](googleapis@78b02f0))
* **looker/tools:** Enhance dashboard creation with dashboard filters
([googleapis#2133](googleapis#2133))
([285aa46](googleapis@285aa46))
* **serverless-spark:** Add Cloud Console and Logging URLs to get_batch
([e29c061](googleapis@e29c061))
* **serverless-spark:** Add URLs to create batch tool outputs
([c6ccf4b](googleapis@c6ccf4b))
* **serverless-spark:** Add URLs to list_batches output
([5605eab](googleapis@5605eab))
* **sources/mariadb:** Add MariaDB source and MySQL tools integration
([googleapis#1908](googleapis#1908))
([3b40fea](googleapis@3b40fea))
* **tools/postgres:** Add additional filter params for existing postgres
tools ([googleapis#2033](googleapis#2033))
([489117d](googleapis@489117d))
* **tools/postgres:** Add list_pg_settings, list_database_stats tools
for postgres
([googleapis#2030](googleapis#2030))
([32367a4](googleapis@32367a4))
* **tools/postgres:** Add new postgres-list-roles tool
([googleapis#2038](googleapis#2038))
([bea9705](googleapis@bea9705))

### Bug Fixes

* List tables tools null fix
([googleapis#2107](googleapis#2107))
([2b45266](googleapis@2b45266))
* **tools/mongodb:** Removed sortPayload and sortParams
([googleapis#1238](googleapis#1238))
([c5a6daa](googleapis@c5a6daa))

### Miscellaneous Chores
* **looker:** Upgrade to latest go sdk
([googleapis#2159](googleapis#2159))
([78e015d](googleapis@78e015d))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com> 466aef0
rahulpinto19 pushed a commit that referenced this pull request Dec 17, 2025
## Description

Return empty list instead of null in list tables tools when no tables
found

## PR Checklist

- [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 #2027

---------

Co-authored-by: Averi Kitsch <akitsch@google.com>
rahulpinto19 pushed a commit that referenced this pull request Dec 17, 2025
🤖 I have created a release *beep* *boop*
---


##
[0.23.0](v0.22.0...v0.23.0)
(2025-12-11)


### ⚠ BREAKING CHANGES

* **serverless-spark:** add URLs to create batch tool outputs
* **serverless-spark:** add URLs to list_batches output
* **serverless-spark:** add Cloud Console and Logging URLs to get_batch
* **tools/postgres:** Add additional filter params for existing postgres
tools ([#2033](#2033))

### Features

* **tools/postgres:** Add list-table-stats-tool to list table
statistics.
([#2055](#2055))
([78b02f0](78b02f0))
* **looker/tools:** Enhance dashboard creation with dashboard filters
([#2133](#2133))
([285aa46](285aa46))
* **serverless-spark:** Add Cloud Console and Logging URLs to get_batch
([e29c061](e29c061))
* **serverless-spark:** Add URLs to create batch tool outputs
([c6ccf4b](c6ccf4b))
* **serverless-spark:** Add URLs to list_batches output
([5605eab](5605eab))
* **sources/mariadb:** Add MariaDB source and MySQL tools integration
([#1908](#1908))
([3b40fea](3b40fea))
* **tools/postgres:** Add additional filter params for existing postgres
tools ([#2033](#2033))
([489117d](489117d))
* **tools/postgres:** Add list_pg_settings, list_database_stats tools
for postgres
([#2030](#2030))
([32367a4](32367a4))
* **tools/postgres:** Add new postgres-list-roles tool
([#2038](#2038))
([bea9705](bea9705))


### Bug Fixes

* List tables tools null fix
([#2107](#2107))
([2b45266](2b45266))
* **tools/mongodb:** Removed sortPayload and sortParams
([#1238](#1238))
([c5a6daa](c5a6daa))


### Miscellaneous Chores
* **looker:** Upgrade to latest go sdk
([#2159](#2159))
([78e015d](78e015d))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com>
vinodhinic pushed a commit to vinodhinic/genai-toolbox that referenced this pull request Jan 14, 2026
## Description

Return empty list instead of null in list tables tools when no tables
found

## PR Checklist

- [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 googleapis#2027

---------

Co-authored-by: Averi Kitsch <akitsch@google.com>
vinodhinic pushed a commit to vinodhinic/genai-toolbox that referenced this pull request Jan 14, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.23.0](googleapis/mcp-toolbox@v0.22.0...v0.23.0)
(2025-12-11)


### ⚠ BREAKING CHANGES

* **serverless-spark:** add URLs to create batch tool outputs
* **serverless-spark:** add URLs to list_batches output
* **serverless-spark:** add Cloud Console and Logging URLs to get_batch
* **tools/postgres:** Add additional filter params for existing postgres
tools ([googleapis#2033](googleapis#2033))

### Features

* **tools/postgres:** Add list-table-stats-tool to list table
statistics.
([googleapis#2055](googleapis#2055))
([78b02f0](googleapis@78b02f0))
* **looker/tools:** Enhance dashboard creation with dashboard filters
([googleapis#2133](googleapis#2133))
([285aa46](googleapis@285aa46))
* **serverless-spark:** Add Cloud Console and Logging URLs to get_batch
([e29c061](googleapis@e29c061))
* **serverless-spark:** Add URLs to create batch tool outputs
([c6ccf4b](googleapis@c6ccf4b))
* **serverless-spark:** Add URLs to list_batches output
([5605eab](googleapis@5605eab))
* **sources/mariadb:** Add MariaDB source and MySQL tools integration
([googleapis#1908](googleapis#1908))
([3b40fea](googleapis@3b40fea))
* **tools/postgres:** Add additional filter params for existing postgres
tools ([googleapis#2033](googleapis#2033))
([489117d](googleapis@489117d))
* **tools/postgres:** Add list_pg_settings, list_database_stats tools
for postgres
([googleapis#2030](googleapis#2030))
([32367a4](googleapis@32367a4))
* **tools/postgres:** Add new postgres-list-roles tool
([googleapis#2038](googleapis#2038))
([bea9705](googleapis@bea9705))


### Bug Fixes

* List tables tools null fix
([googleapis#2107](googleapis#2107))
([2b45266](googleapis@2b45266))
* **tools/mongodb:** Removed sortPayload and sortParams
([googleapis#1238](googleapis#1238))
([c5a6daa](googleapis@c5a6daa))


### Miscellaneous Chores
* **looker:** Upgrade to latest go sdk
([googleapis#2159](googleapis#2159))
([78e015d](googleapis@78e015d))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com>
NightStack15 added a commit to NightStack15/googleapis-_-genai-toolbox that referenced this pull request Mar 20, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.23.0](googleapis/mcp-toolbox@v0.22.0...v0.23.0)
(2025-12-11)


### ⚠ BREAKING CHANGES

* **serverless-spark:** add URLs to create batch tool outputs
* **serverless-spark:** add URLs to list_batches output
* **serverless-spark:** add Cloud Console and Logging URLs to get_batch
* **tools/postgres:** Add additional filter params for existing postgres
tools ([#2033](googleapis/mcp-toolbox#2033))

### Features

* **tools/postgres:** Add list-table-stats-tool to list table
statistics.
([#2055](googleapis/mcp-toolbox#2055))
([78b02f0](googleapis/mcp-toolbox@78b02f0))
* **looker/tools:** Enhance dashboard creation with dashboard filters
([#2133](googleapis/mcp-toolbox#2133))
([285aa46](googleapis/mcp-toolbox@285aa46))
* **serverless-spark:** Add Cloud Console and Logging URLs to get_batch
([e29c061](googleapis/mcp-toolbox@e29c061))
* **serverless-spark:** Add URLs to create batch tool outputs
([c6ccf4b](googleapis/mcp-toolbox@c6ccf4b))
* **serverless-spark:** Add URLs to list_batches output
([5605eab](googleapis/mcp-toolbox@5605eab))
* **sources/mariadb:** Add MariaDB source and MySQL tools integration
([#1908](googleapis/mcp-toolbox#1908))
([3b40fea](googleapis/mcp-toolbox@3b40fea))
* **tools/postgres:** Add additional filter params for existing postgres
tools ([#2033](googleapis/mcp-toolbox#2033))
([489117d](googleapis/mcp-toolbox@489117d))
* **tools/postgres:** Add list_pg_settings, list_database_stats tools
for postgres
([#2030](googleapis/mcp-toolbox#2030))
([32367a4](googleapis/mcp-toolbox@32367a4))
* **tools/postgres:** Add new postgres-list-roles tool
([#2038](googleapis/mcp-toolbox#2038))
([bea9705](googleapis/mcp-toolbox@bea9705))


### Bug Fixes

* List tables tools null fix
([#2107](googleapis/mcp-toolbox#2107))
([2b45266](googleapis/mcp-toolbox@2b45266))
* **tools/mongodb:** Removed sortPayload and sortParams
([#1238](googleapis/mcp-toolbox#1238))
([c5a6daa](googleapis/mcp-toolbox@c5a6daa))


### Miscellaneous Chores
* **looker:** Upgrade to latest go sdk
([#2159](googleapis/mcp-toolbox#2159))
([78e015d](googleapis/mcp-toolbox@78e015d))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release candidate Use label to signal PR should be included in the next release.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

list_tables Returns Null Instead of Empty List for Empty Responses

3 participants