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

Function matchRecognizeDefineMergeEnd

backend/plugin/parser/plsql/split.go:52–73  ·  view source on GitHub ↗
(statement string, segments []oracleparser.Segment, index int)

Source from the content-addressed store, hash-verified

50}
51
52func matchRecognizeDefineMergeEnd(statement string, segments []oracleparser.Segment, index int) (int, bool) {
53 if index+2 >= len(segments) {
54 return 0, false
55 }
56 current := segments[index]
57 define := segments[index+1]
58 suffix := segments[index+2]
59 if current.Kind != oracleparser.SegmentSQL || define.Kind != oracleparser.SegmentSQLPlusCommand || suffix.Kind != oracleparser.SegmentSQL {
60 return 0, false
61 }
62 if !strings.Contains(strings.ToUpper(current.Text), "MATCH_RECOGNIZE") {
63 return 0, false
64 }
65 if !strings.HasPrefix(strings.ToUpper(strings.TrimSpace(define.Text)), "DEFINE ") {
66 return 0, false
67 }
68 merged := statement[current.ByteStart:suffix.ByteEnd]
69 if _, err := oracleparser.Parse(merged); err != nil {
70 return 0, false
71 }
72 return suffix.ByteEnd, true
73}
74
75func trimOracleSegmentTrailingHidden(text string) int {
76 lexer := oracleparser.NewLexer(text)

Callers 2

SplitSQLFunction · 0.85
SplitSQLForCompletionFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected