Skip to content

Commit 961c268

Browse files
Vasily RodionovVasily Rodionov
Vasily Rodionov
authored and
Vasily Rodionov
committed
test: Added test cases for empty strings in where clause
1 parent acb75ac commit 961c268

File tree

4 files changed

+60
-3
lines changed

4 files changed

+60
-3
lines changed

delete.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ func (db *DeleteBuilder) DeleteFrom(table string) *DeleteBuilder {
8080

8181
// Where sets expressions of WHERE in DELETE.
8282
func (db *DeleteBuilder) Where(andExpr ...string) *DeleteBuilder {
83-
if len(andExpr) == 0 {
83+
if len(andExpr) == 0 || estimateStringsBytes(andExpr) == 0 {
8484
return db
8585
}
8686

select.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ func (sb *SelectBuilder) JoinWithOption(option JoinOption, table string, onExpr
189189

190190
// Where sets expressions of WHERE in SELECT.
191191
func (sb *SelectBuilder) Where(andExpr ...string) *SelectBuilder {
192-
if len(andExpr) == 0 {
192+
if len(andExpr) == 0 || estimateStringsBytes(andExpr) == 0 {
193193
return sb
194194
}
195195

update.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ func (ub *UpdateBuilder) SetMore(assignment ...string) *UpdateBuilder {
9797

9898
// Where sets expressions of WHERE in UPDATE.
9999
func (ub *UpdateBuilder) Where(andExpr ...string) *UpdateBuilder {
100-
if len(andExpr) == 0 {
100+
if len(andExpr) == 0 || estimateStringsBytes(andExpr) == 0 {
101101
return ub
102102
}
103103

whereclause_test.go

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,3 +254,60 @@ func TestEmptyWhereExpr(t *testing.T) {
254254
a.Equal(ub.String(), "UPDATE t SET foo = 1")
255255
a.Equal(db.String(), "DELETE FROM t")
256256
}
257+
258+
func TestEmptyStringsWhere(t *testing.T) {
259+
a := assert.New(t)
260+
emptyExpr := []string{"", "", ""}
261+
262+
sb := Select("*").From("t").Where(emptyExpr...)
263+
ub := Update("t").Set("foo = 1").Where(emptyExpr...)
264+
db := DeleteFrom("t").Where(emptyExpr...)
265+
266+
a.Equal(sb.String(), "SELECT * FROM t")
267+
a.Equal(ub.String(), "UPDATE t SET foo = 1")
268+
a.Equal(db.String(), "DELETE FROM t")
269+
}
270+
271+
func TestEmptyAddWhereExpr(t *testing.T) {
272+
a := assert.New(t)
273+
var emptyExpr []string
274+
sb := Select("*").From("t")
275+
ub := Update("t").Set("foo = 1")
276+
db := DeleteFrom("t")
277+
278+
cond := NewCond()
279+
whereClause := NewWhereClause().AddWhereExpr(
280+
cond.Args,
281+
emptyExpr...,
282+
)
283+
284+
sb.AddWhereClause(whereClause)
285+
ub.AddWhereClause(whereClause)
286+
db.AddWhereClause(whereClause)
287+
288+
a.Equal(sb.String(), "SELECT * FROM t ")
289+
a.Equal(ub.String(), "UPDATE t SET foo = 1 ")
290+
a.Equal(db.String(), "DELETE FROM t ")
291+
}
292+
293+
func TestEmptyStringsWhereAddWhereExpr(t *testing.T) {
294+
a := assert.New(t)
295+
emptyExpr := []string{"", "", ""}
296+
sb := Select("*").From("t")
297+
ub := Update("t").Set("foo = 1")
298+
db := DeleteFrom("t")
299+
300+
cond := NewCond()
301+
whereClause := NewWhereClause().AddWhereExpr(
302+
cond.Args,
303+
emptyExpr...,
304+
)
305+
306+
sb.AddWhereClause(whereClause)
307+
ub.AddWhereClause(whereClause)
308+
db.AddWhereClause(whereClause)
309+
310+
a.Equal(sb.String(), "SELECT * FROM t ")
311+
a.Equal(ub.String(), "UPDATE t SET foo = 1 ")
312+
a.Equal(db.String(), "DELETE FROM t ")
313+
}

0 commit comments

Comments
 (0)