Files
orbit/internal/storage/mysql/sqlsplit_test.go

20 lines
571 B
Go

package mysql
import "testing"
func TestSQLSplitterPreservesQuotedSemicolons(t *testing.T) {
sql := "-- comment;\nCREATE TABLE `x;y` (v VARCHAR(10)); INSERT INTO `x;y` VALUES ('a;''b'); /* ignore ; */"
s, err := splitSQL(sql)
if err != nil || len(s) != 2 {
t.Fatalf("split=%v err=%v", s, err)
}
if s[1] != "INSERT INTO `x;y` VALUES ('a;''b')" {
t.Fatal(s[1])
}
for _, bad := range []string{"SELECT 'broken;", "/*broken", "/*! DROP TABLE x */", "DELIMITER $$", "-- empty"} {
if _, err := splitSQL(bad); err == nil {
t.Fatalf("accepted %q", bad)
}
}
}