Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: enclose table names in backquote #43

Merged
merged 1 commit into from
Apr 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions _benchmark/vssquirrel_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ func TestSelect__Squirrel(t *testing.T) {
if err != nil {
t.Fatal("unexpected error:", err)
}
if query != "SELECT id, name FROM user WHERE name = ?" {
if query != "SELECT id, name FROM `user` WHERE name = ?" {
t.Fatal("unexpected query:", query)
}
if !reflect.DeepEqual(args, []interface{}{"hogehoge"}) {
Expand All @@ -41,7 +41,7 @@ func TestSelect__Sqlla(t *testing.T) {
if err != nil {
t.Fatal("unexpected error:", err)
}
if query != "SELECT id, name FROM user WHERE name = ?;" {
if query != "SELECT id, name FROM `user` WHERE name = ?;" {
t.Fatal("unexpected query:", query)
}
if !reflect.DeepEqual(args, []interface{}{"hogehoge"}) {
Expand Down
8 changes: 4 additions & 4 deletions _example/user.gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions _example/user_external.gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions _example/user_item.gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions _example/user_sns.gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion _example/user_sns_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ func TestSelectUserSNS(t *testing.T) {
if err != nil {
t.Error("unexpected error:", err)
}
if query != "SELECT `id`, `sns_type`, `created_at`, `updated_at` FROM user_sns WHERE `sns_type` = ?;" {
if query != "SELECT `id`, `sns_type`, `created_at`, `updated_at` FROM `user_sns` WHERE `sns_type` = ?;" {
t.Error("unexpected query:", query)
}
if !reflect.DeepEqual(args, []interface{}{"GITHUB"}) {
Expand Down
40 changes: 20 additions & 20 deletions _example/user_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ func TestSelect(t *testing.T) {
if err != nil {
t.Error("unexpected error:", err)
}
if query != "SELECT "+columns+" FROM user WHERE `name` = ?;" {
if query != "SELECT "+columns+" FROM `user` WHERE `name` = ?;" {
t.Error("unexpected query:", query)
}
if !reflect.DeepEqual(args, []interface{}{"hoge"}) {
Expand All @@ -39,7 +39,7 @@ func TestSelect__OrderByAndLimit(t *testing.T) {
if err != nil {
t.Error("unexpected error:", err)
}
if query != "SELECT "+columns+" FROM user WHERE `name` = ? ORDER BY `id` ASC LIMIT 100;" {
if query != "SELECT "+columns+" FROM `user` WHERE `name` = ? ORDER BY `id` ASC LIMIT 100;" {
t.Error("unexpected query:", query)
}
if !reflect.DeepEqual(args, []interface{}{"hoge"}) {
Expand All @@ -53,7 +53,7 @@ func TestSelect__InOperator(t *testing.T) {
if err != nil {
t.Error("unexpected error:", err)
}
if query != "SELECT "+columns+" FROM user WHERE `id` IN(?,?,?,?,?);" {
if query != "SELECT "+columns+" FROM `user` WHERE `id` IN(?,?,?,?,?);" {
t.Error("unexpected query:", query)
}
if !reflect.DeepEqual(args, []interface{}{uint64(1), uint64(2), uint64(3), uint64(4), uint64(5)}) {
Expand All @@ -67,7 +67,7 @@ func TestSelect__NullInt64(t *testing.T) {
if err != nil {
t.Error("unexpected error:", err)
}
if query != "SELECT "+columns+" FROM user WHERE `age` IS NULL;" {
if query != "SELECT "+columns+" FROM `user` WHERE `age` IS NULL;" {
t.Error("unexpected query:", query)
}
if !reflect.DeepEqual(args, []interface{}{}) {
Expand All @@ -81,7 +81,7 @@ func TestSelect__NullInt64__IsNotNull(t *testing.T) {
if err != nil {
t.Error("unexpected error:", err)
}
if query != "SELECT "+columns+" FROM user WHERE `age` IS NOT NULL;" {
if query != "SELECT "+columns+" FROM `user` WHERE `age` IS NOT NULL;" {
t.Error("unexpected query:", query)
}
if !reflect.DeepEqual(args, []interface{}{}) {
Expand All @@ -95,7 +95,7 @@ func TestSelect__ForUpdate(t *testing.T) {
if err != nil {
t.Error("unexpected error:", err)
}
if query != "SELECT "+columns+" FROM user WHERE `id` = ? FOR UPDATE;" {
if query != "SELECT "+columns+" FROM `user` WHERE `id` = ? FOR UPDATE;" {
t.Error("unexpected query:", query)
}
if !reflect.DeepEqual(args, []interface{}{"1"}) {
Expand All @@ -112,7 +112,7 @@ func TestSelect__Or(t *testing.T) {
if err != nil {
t.Error("unexpected error:", err)
}
expectedQuery := "SELECT " + columns + " FROM user WHERE (( `id` = ? ) OR ( `id` = ? ));"
expectedQuery := "SELECT " + columns + " FROM `user` WHERE (( `id` = ? ) OR ( `id` = ? ));"
if query != expectedQuery {
t.Error("unexpected query:", query, expectedQuery)
}
Expand All @@ -134,7 +134,7 @@ func TestSelect__OrNull(t *testing.T) {
if err != nil {
t.Error("unexpected error:", err)
}
expectedQuery := "SELECT `id`, `user_id`, `item_id`, `is_used`, `has_extension`, `used_at` FROM user_item WHERE `id` IN(?,?) AND (( `used_at` IS NULL ) OR ( `used_at` < ? ));"
expectedQuery := "SELECT `id`, `user_id`, `item_id`, `is_used`, `has_extension`, `used_at` FROM `user_item` WHERE `id` IN(?,?) AND (( `used_at` IS NULL ) OR ( `used_at` < ? ));"
if query != expectedQuery {
t.Error("unexpected query:", query, expectedQuery)
}
Expand All @@ -155,7 +155,7 @@ func TestSelect__JoinClausesAndTableAlias(t *testing.T) {
if err != nil {
t.Error("unexpected error:", err)
}
expectedQuery := "SELECT `u`.`id`, `u`.`name`, `u`.`age`, `u`.`rate`, `u`.`icon_image`, `u`.`created_at`, `u`.`updated_at`, ui.item_id, ui.is_used FROM user AS `u` INNER JOIN user_item AS ui ON u.id = ui.user_id WHERE `u`.`name` = ? AND ui.item_id IN (?,?,?) ORDER BY `u`.`id` DESC;"
expectedQuery := "SELECT `u`.`id`, `u`.`name`, `u`.`age`, `u`.`rate`, `u`.`icon_image`, `u`.`created_at`, `u`.`updated_at`, ui.item_id, ui.is_used FROM `user` AS `u` INNER JOIN user_item AS ui ON u.id = ui.user_id WHERE `u`.`name` = ? AND ui.item_id IN (?,?,?) ORDER BY `u`.`id` DESC;"
if query != expectedQuery {
t.Error("unexpected query:", query, expectedQuery)
}
Expand All @@ -174,7 +174,7 @@ func TestSelect__SetColumn(t *testing.T) {
if err != nil {
t.Error("unexpected error:", err)
}
expectedQuery := "SELECT `u`.`rate`, COUNT(u.id) FROM user AS `u` GROUP BY `u`.`rate` ORDER BY `u`.`rate` DESC;"
expectedQuery := "SELECT `u`.`rate`, COUNT(u.id) FROM `user` AS `u` GROUP BY `u`.`rate` ORDER BY `u`.`rate` DESC;"
if query != expectedQuery {
t.Error("unexpected query:", query, expectedQuery)
}
Expand All @@ -193,7 +193,7 @@ func TestSelect__GroupByDottedColumn(t *testing.T) {
if err != nil {
t.Error("unexpected error:", err)
}
expectedQuery := "SELECT `u`.`rate`, COUNT(u.id) FROM user AS `u` GROUP BY u.rate ORDER BY `u`.`rate` DESC;"
expectedQuery := "SELECT `u`.`rate`, COUNT(u.id) FROM `user` AS `u` GROUP BY u.rate ORDER BY `u`.`rate` DESC;"
if query != expectedQuery {
t.Error("unexpected query:", query, expectedQuery)
}
Expand All @@ -209,7 +209,7 @@ func TestSelect__LikeOperator(t *testing.T) {
if err != nil {
t.Error("unexpected error:", err)
}
expectedQuery := "SELECT " + columns + " FROM user WHERE `name` LIKE ?;"
expectedQuery := "SELECT " + columns + " FROM `user` WHERE `name` LIKE ?;"
if query != expectedQuery {
t.Error("unexpected query:", query, expectedQuery)
}
Expand All @@ -225,14 +225,14 @@ func TestUpdate(t *testing.T) {
t.Error("unexpected error:", err)
}
switch query {
case "UPDATE user SET `name` = ?, `updated_at` = ? WHERE `id` = ?;":
case "UPDATE `user` SET `name` = ?, `updated_at` = ? WHERE `id` = ?;":
if !reflect.DeepEqual(args[0], "barbar") {
t.Error("unexpected args:", args)
}
if !reflect.DeepEqual(args[2], "1") {
t.Error("unexpected args:", args)
}
case "UPDATE user SET `updated_at` = ?, `name` = ? WHERE `id` = ?;":
case "UPDATE `user` SET `updated_at` = ?, `name` = ? WHERE `id` = ?;":
if !reflect.DeepEqual(args[2], "1") {
t.Error("unexpected args:", args)
}
Expand All @@ -251,7 +251,7 @@ func TestUpdate__InOperator(t *testing.T) {
t.Error("unexpected error:", err)
}
switch query {
case "UPDATE user SET `rate` = ?, `updated_at` = ? WHERE `id` IN(?,?,?);":
case "UPDATE `user` SET `rate` = ?, `updated_at` = ? WHERE `id` IN(?,?,?);":
if !reflect.DeepEqual(args[0], float64(42)) {
t.Errorf("unexpected args: %+v", args[0])
}
Expand All @@ -260,7 +260,7 @@ func TestUpdate__InOperator(t *testing.T) {
t.Errorf("unexpected args: i=%d, %+v", i, args[2:])
}
}
case "UPDATE user SET `updated_at` = ?, `rate` = ? WHERE `id` IN(?,?,?);":
case "UPDATE `user` SET `updated_at` = ?, `rate` = ? WHERE `id` IN(?,?,?);":
if !reflect.DeepEqual(args[1], float64(42)) {
t.Errorf("unexpected args: %+v", args[1])
}
Expand All @@ -281,7 +281,7 @@ func TestInsert(t *testing.T) {
if err != nil {
t.Error("unexpected error:", err)
}
expected := "INSERT INTO user (`created_at`,`name`) VALUES(?,?);"
expected := "INSERT INTO `user` (`created_at`,`name`) VALUES(?,?);"
if query != expected {
t.Error("unexpected query:", query)
}
Expand All @@ -308,7 +308,7 @@ func TestInsertOnDuplicateKeyUpdate(t *testing.T) {
if err != nil {
t.Error("unexpected error:", err)
}
expr := regexp.MustCompile(`^INSERT INTO user \(.*\) VALUES\(\?,\?,\?,\?\) `)
expr := regexp.MustCompile("^INSERT INTO `user` \\(.*\\) VALUES\\(\\?,\\?,\\?,\\?\\) ")
gotSuffix := expr.ReplaceAllString(query, "")
expectedSuffix1 := "ON DUPLICATE KEY UPDATE `age` = ?, `updated_at` = VALUES(`updated_at`);"
expectedSuffix2 := "ON DUPLICATE KEY UPDATE `updated_at` = VALUES(`updated_at`), `age` = ?;"
Expand Down Expand Up @@ -378,7 +378,7 @@ func TestDelete(t *testing.T) {
if err != nil {
t.Error("unexpected error:", err)
}
if query != "DELETE FROM user WHERE `name` = ?;" {
if query != "DELETE FROM `user` WHERE `name` = ?;" {
t.Error("unexpected query:", query)
}
if !reflect.DeepEqual(args, []interface{}{"hogehoge"}) {
Expand All @@ -392,7 +392,7 @@ func TestDelete__In(t *testing.T) {
if err != nil {
t.Error("unexpected error:", err)
}
if query != "DELETE FROM user WHERE `name` IN(?,?);" {
if query != "DELETE FROM `user` WHERE `name` IN(?,?);" {
t.Error("unexpected query:", query)
}
if !reflect.DeepEqual(args, []interface{}{"hogehoge", "fugafuga"}) {
Expand Down
2 changes: 1 addition & 1 deletion template/delete.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ func (q {{ $camelName }}DeleteSQL) ToSql() (string, []interface{}, error) {
return "", nil, err
}

query := "DELETE FROM {{ .TableName }}"
query := "DELETE FROM `{{ .TableName }}`"
if wheres != "" {
query += " WHERE" + wheres
}
Expand Down
2 changes: 1 addition & 1 deletion template/insert.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ func (q {{ $camelName }}InsertSQL) {{ $camelName }}InsertSQLToSql() (string, []i
return "", []interface{}{}, err
}

query := "INSERT INTO {{ .TableName }} " + qs
query := "INSERT INTO `{{ .TableName }}` " + qs

return query, vs, nil
}
Expand Down
2 changes: 1 addition & 1 deletion template/select.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ func (q {{ $camelName }}SelectSQL) ToSql() (string, []interface{}, error) {
return "", nil, err
}

tableName := "{{ .TableName }}"
tableName := "`{{ .TableName }}`"
if q.tableAlias != "" {
tableName = tableName + " AS " + q.tableAlias
pcs := make([]string, 0, len(q.Columns))
Expand Down
2 changes: 1 addition & 1 deletion template/update.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ func (q {{ $camelName }}UpdateSQL) ToSql() (string, []interface{}, error) {
return "", []interface{}{}, err
}

query := "UPDATE {{ .TableName }} SET" + setColumns
query := "UPDATE `{{ .TableName }}` SET" + setColumns
if wheres != "" {
query += " WHERE" + wheres
}
Expand Down