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

Function TestSplitMySQLStatements

backend/plugin/parser/mysql/split_test.go:74–122  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

72}
73
74func TestSplitMySQLStatements(t *testing.T) {
75 tests := []struct {
76 statement string
77 expected []string
78 }{
79 {
80 statement: "SELECT * FROM t1 WHERE c1 = 1; SELECT * FROM t2;",
81 expected: []string{
82 "SELECT * FROM t1 WHERE c1 = 1;",
83 " SELECT * FROM t2;",
84 },
85 },
86 {
87 statement: `CREATE PROCEDURE my_procedure (IN id INT, OUT name VARCHAR(255))
88 BEGIN
89 SELECT name INTO name FROM users WHERE id = id;
90 END; SELECT * FROM t2;`,
91 expected: []string{
92 `CREATE PROCEDURE my_procedure (IN id INT, OUT name VARCHAR(255))
93 BEGIN
94 SELECT name INTO name FROM users WHERE id = id;
95 END;`,
96 " SELECT * FROM t2;",
97 },
98 },
99 {
100 statement: `CREATE PROCEDURE my_procedure (IN id INT, OUT name VARCHAR(255))
101 BEGIN
102 SELECT IF(id = 1, 'one', 'other') INTO name FROM users;
103 END; SELECT REPEAT('123', a) FROM t2;`,
104 expected: []string{
105 `CREATE PROCEDURE my_procedure (IN id INT, OUT name VARCHAR(255))
106 BEGIN
107 SELECT IF(id = 1, 'one', 'other') INTO name FROM users;
108 END;`,
109 " SELECT REPEAT('123', a) FROM t2;",
110 },
111 },
112 }
113
114 for _, test := range tests {
115 list, err := SplitSQL(test.statement)
116 require.NoError(t, err)
117 require.Equal(t, len(test.expected), len(list))
118 for i, statement := range list {
119 require.Equal(t, test.expected[i], statement.Text)
120 }
121 }
122}

Callers

nothing calls this directly

Calls 2

SplitSQLFunction · 0.70
EqualMethod · 0.65

Tested by

no test coverage detected