MCPcopy Create free account
hub / github.com/bytebase/bytebase / NewTrickyCompleter

Function NewTrickyCompleter

backend/plugin/parser/pg/completion.go:120–145  ·  view source on GitHub ↗
(ctx context.Context, cCtx base.CompletionContext, statement string, caretLine int, caretOffset int)

Source from the content-addressed store, hash-verified

118}
119
120func NewTrickyCompleter(ctx context.Context, cCtx base.CompletionContext, statement string, caretLine int, caretOffset int) *Completer {
121 sql, byteOffset := computeSQLAndByteOffset(statement, caretLine, caretOffset, true /* tricky */)
122 tokens := pgparser.Tokenize(sql)
123 caretTokenIndex := findCaretTokenIndex(tokens, byteOffset)
124 defaultSchema := cCtx.DefaultSchema
125 schemaNotSelected := defaultSchema == ""
126 if defaultSchema == "" {
127 defaultSchema = "public"
128 }
129 return &Completer{
130 ctx: ctx,
131 scene: cCtx.Scene,
132 sql: sql,
133 cursorByteOffset: byteOffset,
134 tokens: tokens,
135 caretTokenIndex: caretTokenIndex,
136 instanceID: cCtx.InstanceID,
137 defaultDatabase: cCtx.DefaultDatabase,
138 defaultSchema: defaultSchema,
139 schemaNotSelected: schemaNotSelected,
140 getMetadata: cCtx.Metadata,
141 listDatabaseNames: cCtx.ListDatabaseNames,
142 metadataCache: make(map[string]*model.DatabaseMetadata),
143 cteCache: make(map[int][]*base.VirtualTableReference),
144 }
145}
146
147func NewStandardCompleter(ctx context.Context, cCtx base.CompletionContext, statement string, caretLine int, caretOffset int) *Completer {
148 sql, byteOffset := computeSQLAndByteOffset(statement, caretLine, caretOffset, false /* tricky */)

Callers 1

CompletionFunction · 0.70

Calls 2

computeSQLAndByteOffsetFunction · 0.70
findCaretTokenIndexFunction · 0.70

Tested by

no test coverage detected