GetQuerySpan returns the query span for the given statement.
(ctx context.Context, gCtx base.GetQuerySpanContext, stmt base.Statement, database, schema string, _ bool)
| 16 | |
| 17 | // GetQuerySpan returns the query span for the given statement. |
| 18 | func GetQuerySpan(ctx context.Context, gCtx base.GetQuerySpanContext, stmt base.Statement, database, schema string, _ bool) (*base.QuerySpan, error) { |
| 19 | if gCtx.GetDatabaseMetadataFunc == nil { |
| 20 | return nil, errors.New("GetDatabaseMetadataFunc is not set in GetQuerySpanContext") |
| 21 | } |
| 22 | _, meta, err := gCtx.GetDatabaseMetadataFunc(ctx, gCtx.InstanceID, database) |
| 23 | if err != nil { |
| 24 | return nil, errors.Wrapf(err, "failed to get database metadata for instance %q and database %q", gCtx.InstanceID, database) |
| 25 | } |
| 26 | searchPath := meta.GetSearchPath() |
| 27 | if schema != "" { |
| 28 | searchPath = []string{schema} |
| 29 | } |
| 30 | extractor := newOmniQuerySpanExtractor(database, searchPath, gCtx) |
| 31 | |
| 32 | querySpan, err := extractor.getQuerySpan(ctx, stmt.Text) |
| 33 | if err != nil { |
| 34 | return nil, errors.Wrapf(err, "failed to get query span from statement: %s", stmt.Text) |
| 35 | } |
| 36 | return querySpan, nil |
| 37 | } |