MCPcopy Index your code
hub / github.com/bytebase/bytebase / GetQuerySpan

Function GetQuerySpan

backend/plugin/parser/pg/query_span.go:18–37  ·  view source on GitHub ↗

GetQuerySpan returns the query span for the given statement.

(ctx context.Context, gCtx base.GetQuerySpanContext, stmt base.Statement, database, schema string, _ bool)

Source from the content-addressed store, hash-verified

16
17// GetQuerySpan returns the query span for the given statement.
18func 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}

Callers 7

mustGetQuerySpanFunction · 0.70
extractCTETablesMethod · 0.70
extractFromItemMethod · 0.70
TestGetQuerySpanFunction · 0.70

Calls 4

GetSearchPathMethod · 0.45
getQuerySpanMethod · 0.45

Tested by 2

mustGetQuerySpanFunction · 0.56
TestGetQuerySpanFunction · 0.56