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

Function parseSQLWithDialect

pkg/sql/parser/select_helpers_test.go:44–68  ·  view source on GitHub ↗

----------------------------------------------------------------------------- helpers ----------------------------------------------------------------------------- parseSQLWithDialect tokenizes and parses sql using the given dialect, returning the first SelectStatement from the resulting AST.

(t *testing.T, sql string, dialect keywords.SQLDialect)

Source from the content-addressed store, hash-verified

42// parseSQLWithDialect tokenizes and parses sql using the given dialect,
43// returning the first SelectStatement from the resulting AST.
44func parseSQLWithDialect(t *testing.T, sql string, dialect keywords.SQLDialect) *ast.SelectStatement {
45 t.Helper()
46 tkz, err := tokenizer.NewWithDialect(dialect)
47 if err != nil {
48 t.Fatalf("tokenizer.NewWithDialect(%s): %v", dialect, err)
49 }
50 tokens, err := tkz.Tokenize([]byte(sql))
51 if err != nil {
52 t.Fatalf("tokenize(%q): %v", sql, err)
53 }
54 p := NewParser(WithDialect(string(dialect)))
55 defer p.Release()
56 result, err := p.ParseFromModelTokens(tokens)
57 if err != nil {
58 t.Fatalf("parse(%q): %v", sql, err)
59 }
60 if len(result.Statements) == 0 {
61 t.Fatalf("expected at least one statement, got none")
62 }
63 stmt, ok := result.Statements[0].(*ast.SelectStatement)
64 if !ok {
65 t.Fatalf("expected *ast.SelectStatement, got %T", result.Statements[0])
66 }
67 return stmt
68}
69
70// -----------------------------------------------------------------------------
71// parseDistinctModifier

Calls 8

ReleaseMethod · 0.95
ParseFromModelTokensMethod · 0.95
NewWithDialectFunction · 0.92
WithDialectFunction · 0.85
TokenizeMethod · 0.80
NewParserFunction · 0.70
HelperMethod · 0.65
FatalfMethod · 0.65

Tested by

no test coverage detected