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

Function TestTrinoQueryType

backend/plugin/parser/trino/parser_test.go:39–94  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

37}
38
39func TestTrinoQueryType(t *testing.T) {
40 testCases := []struct {
41 sql string
42 expected base.QueryType
43 }{
44 {
45 sql: "SELECT * FROM system.runtime.nodes;",
46 expected: base.SelectInfoSchema,
47 },
48 {
49 sql: "SELECT * FROM users;",
50 expected: base.Select,
51 },
52 {
53 sql: "INSERT INTO users (id, name) VALUES (1, 'John');",
54 expected: base.DML,
55 },
56 {
57 sql: "UPDATE users SET name = 'Jane' WHERE id = 1;",
58 expected: base.DML,
59 },
60 {
61 sql: "DELETE FROM users WHERE id = 1;",
62 expected: base.DML,
63 },
64 {
65 sql: "CREATE TABLE users (id INT, name VARCHAR);",
66 expected: base.DDL,
67 },
68 {
69 sql: "DROP TABLE users;",
70 expected: base.DDL,
71 },
72 {
73 sql: "EXPLAIN SELECT * FROM users;",
74 expected: base.Explain,
75 },
76 {
77 sql: "EXPLAIN ANALYZE SELECT * FROM users;",
78 expected: base.Select, // EXPLAIN ANALYZE executes the query, so it is classified as Select.
79 },
80 {
81 sql: "SHOW TABLES;",
82 expected: base.SelectInfoSchema,
83 },
84 }
85
86 for _, tc := range testCases {
87 t.Run(tc.sql, func(t *testing.T) {
88 // queryTypeFromText applies the same system-schema promotion the
89 // query-span path uses, so a SELECT over system.* is SelectInfoSchema.
90 queryType := queryTypeFromText(tc.sql)
91 assert.Equal(t, tc.expected, queryType)
92 })
93 }
94}
95
96func TestMain(m *testing.M) {

Callers

nothing calls this directly

Calls 3

queryTypeFromTextFunction · 0.85
EqualMethod · 0.65
RunMethod · 0.45

Tested by

no test coverage detected