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

Function SplitSQLForCompletion

backend/plugin/parser/plsql/split.go:91–119  ·  view source on GitHub ↗
(statement string)

Source from the content-addressed store, hash-verified

89}
90
91func SplitSQLForCompletion(statement string) ([]base.Statement, error) {
92 segments := oracleparser.Split(statement)
93
94 result := make([]base.Statement, 0, len(segments))
95 positionMapper := base.NewByteOffsetPositionMapper(statement)
96 for i := 0; i < len(segments); i++ {
97 seg := segments[i]
98 if seg.Kind == oracleparser.SegmentSQLPlusCommand {
99 continue
100 }
101 byteStart := seg.ByteStart
102 byteEnd := seg.ByteEnd
103 if end, ok := matchRecognizeDefineMergeEnd(statement, segments, i); ok {
104 byteEnd = end
105 i += 2
106 }
107 result = append(result, base.Statement{
108 Text: statement[byteStart:byteEnd],
109 Start: positionMapper.Position(byteStart),
110 End: positionMapper.Position(byteEnd),
111 Empty: seg.Empty(),
112 Range: &storepb.Range{
113 Start: int32(byteStart),
114 End: int32(byteEnd),
115 },
116 })
117 }
118 return result, nil
119}

Callers 1

skipHeadingSQLsFunction · 0.85

Calls 3

PositionMethod · 0.95

Tested by

no test coverage detected