MCPcopy Create free account
hub / github.com/ajitpratap0/GoSQLX / ParseBytesWithDialect

Function ParseBytesWithDialect

pkg/sql/parser/validate.go:193–216  ·  view source on GitHub ↗

ParseBytesWithDialect is like ParseWithDialect but accepts []byte.

(input []byte, dialect keywords.SQLDialect)

Source from the content-addressed store, hash-verified

191
192// ParseBytesWithDialect is like ParseWithDialect but accepts []byte.
193func ParseBytesWithDialect(input []byte, dialect keywords.SQLDialect) (*ast.AST, error) {
194 if !keywords.IsValidDialect(string(dialect)) {
195 return nil, fmt.Errorf("unknown SQL dialect %q; valid dialects: %s",
196 dialect, validDialectList())
197 }
198
199 tkz, err := tokenizer.NewWithDialect(dialect)
200 if err != nil {
201 return nil, fmt.Errorf("tokenizer initialization: %w", err)
202 }
203
204 tokens, err := tkz.Tokenize(input)
205 if err != nil {
206 return nil, fmt.Errorf("tokenization error: %w", err)
207 }
208
209 if len(tokens) == 0 {
210 return nil, goerrors.IncompleteStatementError(models.Location{}, "")
211 }
212
213 p := NewParser(WithDialect(string(dialect)))
214
215 return p.ParseFromModelTokens(tokens)
216}

Callers 1

ParseWithDialectFunction · 0.85

Calls 8

ParseFromModelTokensMethod · 0.95
IsValidDialectFunction · 0.92
NewWithDialectFunction · 0.92
validDialectListFunction · 0.85
WithDialectFunction · 0.85
TokenizeMethod · 0.80
NewParserFunction · 0.70
ErrorfMethod · 0.65

Tested by

no test coverage detected