fix(tools): check for query execution error for pgxpool.Pool (#1969)

## Description

Return error if there's error during query execution. AlloyDB AI NL tool
was failing query silently. When this happened, the user was just
receiving `nil` response and not informed of what the error was.

## 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 #1949
This commit is contained in:
Yuan Teoh
2025-11-18 10:24:03 -08:00
committed by GitHub
parent e1c4700428
commit 2bff1384a3
12 changed files with 59 additions and 0 deletions

View File

@@ -179,6 +179,10 @@ func (t Tool) Invoke(ctx context.Context, params parameters.ParamValues, accessT
}
out = append(out, vMap)
}
// this will catch actual query execution errors
if err := results.Err(); err != nil {
return nil, fmt.Errorf("unable to execute query: %w", err)
}
return out, nil
}

View File

@@ -157,6 +157,11 @@ func (t Tool) Invoke(ctx context.Context, params parameters.ParamValues, accessT
out = append(out, rowMap)
}
// this will catch actual query execution errors
if err := results.Err(); err != nil {
return nil, fmt.Errorf("unable to execute query: %w", err)
}
return out, nil
}

View File

@@ -170,6 +170,11 @@ func (t Tool) Invoke(ctx context.Context, params parameters.ParamValues, accessT
out = append(out, rowMap)
}
// this will catch actual query execution errors
if err := results.Err(); err != nil {
return nil, fmt.Errorf("unable to execute query: %w", err)
}
return out, nil
}

View File

@@ -141,6 +141,11 @@ func (t Tool) Invoke(ctx context.Context, params parameters.ParamValues, accessT
out = append(out, vMap)
}
// this will catch actual query execution errors
if err := results.Err(); err != nil {
return nil, fmt.Errorf("unable to execute query: %w", err)
}
return out, nil
}

View File

@@ -192,6 +192,11 @@ func (t Tool) Invoke(ctx context.Context, params parameters.ParamValues, accessT
out = append(out, rowMap)
}
// this will catch actual query execution errors
if err := results.Err(); err != nil {
return nil, fmt.Errorf("unable to execute query: %w", err)
}
return out, nil
}

View File

@@ -152,6 +152,11 @@ func (t Tool) Invoke(ctx context.Context, params parameters.ParamValues, accessT
out = append(out, vMap)
}
// this will catch actual query execution errors
if err := results.Err(); err != nil {
return nil, fmt.Errorf("unable to execute query: %w", err)
}
return out, nil
}

View File

@@ -192,6 +192,11 @@ func (t Tool) Invoke(ctx context.Context, params parameters.ParamValues, accessT
out = append(out, rowMap)
}
// this will catch actual query execution errors
if err := results.Err(); err != nil {
return nil, fmt.Errorf("unable to execute query: %w", err)
}
return out, nil
}

View File

@@ -167,6 +167,11 @@ func (t Tool) Invoke(ctx context.Context, params parameters.ParamValues, accessT
out = append(out, rowMap)
}
// this will catch actual query execution errors
if err := results.Err(); err != nil {
return nil, fmt.Errorf("unable to execute query: %w", err)
}
return out, nil
}

View File

@@ -194,6 +194,11 @@ func (t Tool) Invoke(ctx context.Context, params parameters.ParamValues, accessT
out = append(out, rowMap)
}
// this will catch actual query execution errors
if err := results.Err(); err != nil {
return nil, fmt.Errorf("unable to execute query: %w", err)
}
return out, nil
}

View File

@@ -159,6 +159,11 @@ func (t Tool) Invoke(ctx context.Context, params parameters.ParamValues, accessT
out = append(out, rowMap)
}
// this will catch actual query execution errors
if err := results.Err(); err != nil {
return nil, fmt.Errorf("unable to execute query: %w", err)
}
return out, nil
}

View File

@@ -148,6 +148,11 @@ func (t Tool) Invoke(ctx context.Context, params parameters.ParamValues, accessT
out = append(out, vMap)
}
// this will catch actual query execution errors
if err := results.Err(); err != nil {
return nil, fmt.Errorf("unable to execute query: %w", err)
}
return out, nil
}

View File

@@ -141,6 +141,11 @@ func (t Tool) Invoke(ctx context.Context, params parameters.ParamValues, accessT
out = append(out, vMap)
}
// this will catch actual query execution errors
if err := results.Err(); err != nil {
return nil, fmt.Errorf("unable to execute query: %w", err)
}
return out, nil
}