github.com/turbot/steampipe@v1.7.0-rc.0.0.20240517123944-7cef272d4458/pkg/db/db_common/execute.go (about) 1 package db_common 2 3 import ( 4 "context" 5 6 "github.com/turbot/steampipe/pkg/query/queryresult" 7 "github.com/turbot/steampipe/pkg/utils" 8 ) 9 10 // ExecuteQuery executes a single query. If shutdownAfterCompletion is true, shutdown the client after completion 11 func ExecuteQuery(ctx context.Context, client Client, queryString string, args ...any) (*queryresult.ResultStreamer, error) { 12 utils.LogTime("db.ExecuteQuery start") 13 defer utils.LogTime("db.ExecuteQuery end") 14 15 resultsStreamer := queryresult.NewResultStreamer() 16 result, err := client.Execute(ctx, queryString, args...) 17 if err != nil { 18 return nil, err 19 } 20 go func() { 21 resultsStreamer.StreamResult(result) 22 resultsStreamer.Close() 23 }() 24 return resultsStreamer, nil 25 }