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