diff --git a/internal/tools/bigquery/bigqueryexecutesql/bigqueryexecutesql.go b/internal/tools/bigquery/bigqueryexecutesql/bigqueryexecutesql.go index 16d704d7dda1..c4e284544a39 100644 --- a/internal/tools/bigquery/bigqueryexecutesql/bigqueryexecutesql.go +++ b/internal/tools/bigquery/bigqueryexecutesql/bigqueryexecutesql.go @@ -23,6 +23,7 @@ import ( "github.com/googleapis/genai-toolbox/internal/sources" bigqueryds "github.com/googleapis/genai-toolbox/internal/sources/bigquery" "github.com/googleapis/genai-toolbox/internal/tools" + "github.com/googleapis/genai-toolbox/internal/util" bigqueryrestapi "google.golang.org/api/bigquery/v2" "google.golang.org/api/iterator" ) @@ -135,6 +136,13 @@ func (t Tool) Invoke(ctx context.Context, params tools.ParamValues) (any, error) query := t.Client.Query(sql) query.Location = t.Client.Location + // Log the query executed for debugging. + logger, err := util.LoggerFromContext(ctx) + if err != nil { + return nil, fmt.Errorf("error getting logger: %s", err) + } + logger.DebugContext(ctx, "executing `%s` tool query: %s", kind, sql) + // This block handles SELECT statements, which return a row set. // We iterate through the results, convert each row into a map of // column names to values, and return the collection of rows. diff --git a/internal/tools/mssql/mssqlexecutesql/mssqlexecutesql.go b/internal/tools/mssql/mssqlexecutesql/mssqlexecutesql.go index 017f0398846c..1bcece560fb8 100644 --- a/internal/tools/mssql/mssqlexecutesql/mssqlexecutesql.go +++ b/internal/tools/mssql/mssqlexecutesql/mssqlexecutesql.go @@ -24,6 +24,7 @@ import ( "github.com/googleapis/genai-toolbox/internal/sources/cloudsqlmssql" "github.com/googleapis/genai-toolbox/internal/sources/mssql" "github.com/googleapis/genai-toolbox/internal/tools" + "github.com/googleapis/genai-toolbox/internal/util" ) const kind string = "mssql-execute-sql" @@ -122,6 +123,14 @@ func (t Tool) Invoke(ctx context.Context, params tools.ParamValues) (any, error) if !ok { return nil, fmt.Errorf("unable to get cast %s", sliceParams[0]) } + + // Log the query executed for debugging. + logger, err := util.LoggerFromContext(ctx) + if err != nil { + return nil, fmt.Errorf("error getting logger: %s", err) + } + logger.DebugContext(ctx, "executing `%s` tool query: %s", kind, sql) + results, err := t.Pool.QueryContext(ctx, sql) if err != nil { return nil, fmt.Errorf("unable to execute query: %w", err) diff --git a/internal/tools/mysql/mysqlexecutesql/mysqlexecutesql.go b/internal/tools/mysql/mysqlexecutesql/mysqlexecutesql.go index c5ee6a2bcb05..065822f3e2e1 100644 --- a/internal/tools/mysql/mysqlexecutesql/mysqlexecutesql.go +++ b/internal/tools/mysql/mysqlexecutesql/mysqlexecutesql.go @@ -24,6 +24,7 @@ import ( "github.com/googleapis/genai-toolbox/internal/sources/cloudsqlmysql" "github.com/googleapis/genai-toolbox/internal/sources/mysql" "github.com/googleapis/genai-toolbox/internal/tools" + "github.com/googleapis/genai-toolbox/internal/util" ) const kind string = "mysql-execute-sql" @@ -123,6 +124,13 @@ func (t Tool) Invoke(ctx context.Context, params tools.ParamValues) (any, error) return nil, fmt.Errorf("unable to get cast %s", sliceParams[0]) } + // Log the query executed for debugging. + logger, err := util.LoggerFromContext(ctx) + if err != nil { + return nil, fmt.Errorf("error getting logger: %s", err) + } + logger.DebugContext(ctx, "executing `%s` tool query: %s", kind, sql) + results, err := t.Pool.QueryContext(ctx, sql) if err != nil { return nil, fmt.Errorf("unable to execute query: %w", err) diff --git a/internal/tools/postgres/postgresexecutesql/postgresexecutesql.go b/internal/tools/postgres/postgresexecutesql/postgresexecutesql.go index 91696055b042..0cd4222b1141 100644 --- a/internal/tools/postgres/postgresexecutesql/postgresexecutesql.go +++ b/internal/tools/postgres/postgresexecutesql/postgresexecutesql.go @@ -24,6 +24,7 @@ import ( "github.com/googleapis/genai-toolbox/internal/sources/cloudsqlpg" "github.com/googleapis/genai-toolbox/internal/sources/postgres" "github.com/googleapis/genai-toolbox/internal/tools" + "github.com/googleapis/genai-toolbox/internal/util" "github.com/jackc/pgx/v5/pgxpool" ) @@ -124,6 +125,12 @@ func (t Tool) Invoke(ctx context.Context, params tools.ParamValues) (any, error) if !ok { return nil, fmt.Errorf("unable to get cast %s", sliceParams[0]) } + // Log the query executed for debugging. + logger, err := util.LoggerFromContext(ctx) + if err != nil { + return nil, fmt.Errorf("error getting logger: %s", err) + } + logger.DebugContext(ctx, "executing `%s` tool query: %s", kind, sql) results, err := t.Pool.Query(ctx, sql) if err != nil { diff --git a/internal/tools/spanner/spannerexecutesql/spannerexecutesql.go b/internal/tools/spanner/spannerexecutesql/spannerexecutesql.go index a634affeef3e..1974aa98fe1c 100644 --- a/internal/tools/spanner/spannerexecutesql/spannerexecutesql.go +++ b/internal/tools/spanner/spannerexecutesql/spannerexecutesql.go @@ -23,6 +23,7 @@ import ( "github.com/googleapis/genai-toolbox/internal/sources" spannerdb "github.com/googleapis/genai-toolbox/internal/sources/spanner" "github.com/googleapis/genai-toolbox/internal/tools" + "github.com/googleapis/genai-toolbox/internal/util" "google.golang.org/api/iterator" ) @@ -151,6 +152,13 @@ func (t Tool) Invoke(ctx context.Context, params tools.ParamValues) (any, error) return nil, fmt.Errorf("unable to get cast %s", sliceParams[0]) } + // Log the query executed for debugging. + logger, err := util.LoggerFromContext(ctx) + if err != nil { + return nil, fmt.Errorf("error getting logger: %s", err) + } + logger.DebugContext(ctx, "executing `%s` tool query: %s", kind, sql) + var results []any var opErr error stmt := spanner.Statement{SQL: sql} diff --git a/internal/tools/tidb/tidbexecutesql/tidbexecutesql.go b/internal/tools/tidb/tidbexecutesql/tidbexecutesql.go index 86b37a1ac270..937190b402ee 100644 --- a/internal/tools/tidb/tidbexecutesql/tidbexecutesql.go +++ b/internal/tools/tidb/tidbexecutesql/tidbexecutesql.go @@ -23,6 +23,7 @@ import ( "github.com/googleapis/genai-toolbox/internal/sources" "github.com/googleapis/genai-toolbox/internal/sources/tidb" "github.com/googleapis/genai-toolbox/internal/tools" + "github.com/googleapis/genai-toolbox/internal/util" ) const kind string = "tidb-execute-sql" @@ -121,6 +122,13 @@ func (t Tool) Invoke(ctx context.Context, params tools.ParamValues) (any, error) return nil, fmt.Errorf("unable to get cast %s", sliceParams[0]) } + // Log the query executed for debugging. + logger, err := util.LoggerFromContext(ctx) + if err != nil { + return nil, fmt.Errorf("error getting logger: %s", err) + } + logger.DebugContext(ctx, "executing `%s` tool query: %s", kind, sql) + results, err := t.Pool.QueryContext(ctx, sql) if err != nil { return nil, fmt.Errorf("unable to execute query: %w", err)