@@ -31,6 +31,33 @@ func TestFlavor(t *testing.T) {
3131 }
3232}
3333
34+ func TestFlavorQuoteEscapesDelimiters (t * testing.T ) {
35+ cases := []struct {
36+ flavor Flavor
37+ input string
38+ want string
39+ }{
40+ {MySQL , "name` DESC" , "`name`` DESC`" },
41+ {ClickHouse , "name` DESC" , "`name`` DESC`" },
42+ {Doris , "name` DESC" , "`name`` DESC`" },
43+ {PostgreSQL , `name" DESC` , `"name"" DESC"` },
44+ {SQLServer , `name" DESC` , `"name"" DESC"` },
45+ {SQLite , `name" DESC` , `"name"" DESC"` },
46+ {Presto , `name" DESC` , `"name"" DESC"` },
47+ {Oracle , `name" DESC` , `"name"" DESC"` },
48+ {Informix , `name" DESC` , `"name"" DESC"` },
49+ {CQL , "name' DESC" , "'name'' DESC'" },
50+ }
51+
52+ for _ , tc := range cases {
53+ t .Run (tc .flavor .String (), func (t * testing.T ) {
54+ if got := tc .flavor .Quote (tc .input ); got != tc .want {
55+ t .Fatalf ("Quote(%q) = %q, want %q" , tc .input , got , tc .want )
56+ }
57+ })
58+ }
59+ }
60+
3461func ExampleFlavor () {
3562 // Create a flavored builder.
3663 sb := PostgreSQL .NewSelectBuilder ()
0 commit comments