From 07b1b0944b91e75d20366c98c95fd3ad2667e74a Mon Sep 17 00:00:00 2001 From: Styler Date: Thu, 19 Jan 2023 13:01:34 +0100 Subject: [PATCH 1/2] Added new NotDeleted helper --- select.go | 7 ++++++- select_test.go | 9 +++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/select.go b/select.go index 817f33a8..60a7191d 100644 --- a/select.go +++ b/select.go @@ -282,7 +282,8 @@ func (b SelectBuilder) RemoveColumns() SelectBuilder { // Column adds a result column to the query. // Unlike Columns, Column accepts args which will be bound to placeholders in // the columns string, for example: -// Column("IF(col IN ("+squirrel.Placeholders(3)+"), 1, 0) as col", 1, 2, 3) +// +// Column("IF(col IN ("+squirrel.Placeholders(3)+"), 1, 0) as col", 1, 2, 3) func (b SelectBuilder) Column(column interface{}, args ...interface{}) SelectBuilder { return builder.Append(b, "Columns", newPart(column, args...)).(SelectBuilder) } @@ -362,6 +363,10 @@ func (b SelectBuilder) Where(pred interface{}, args ...interface{}) SelectBuilde return builder.Append(b, "WhereParts", newWherePart(pred, args...)).(SelectBuilder) } +func (b SelectBuilder) NotDeleted() SelectBuilder { + return b.Where("deleted_at IS NULL") +} + // GroupBy adds GROUP BY expressions to the query. func (b SelectBuilder) GroupBy(groupBys ...string) SelectBuilder { return builder.Extend(b, "GroupBys", groupBys).(SelectBuilder) diff --git a/select_test.go b/select_test.go index 4e08b172..ac8f360e 100644 --- a/select_test.go +++ b/select_test.go @@ -68,6 +68,15 @@ func TestAsOfSystemTime(t *testing.T) { assert.Equal(t, expectedArgs, args) } +func TestNotDeleted(t *testing.T) { + b := Select("test").Where(Eq{"f4": true}).NotDeleted() + query, args, _ := b.ToSql() + expectedSql := `SELECT test WHERE f4 = ? AND deleted_at IS NULL` + expectedArgs := []interface{}{true} + assert.Equal(t, expectedSql, query) + assert.Equal(t, expectedArgs, args) +} + func TestSelectBuilderFromSelect(t *testing.T) { subQ := Select("c").From("d").Where(Eq{"i": 0}) b := Select("a", "b").FromSelect(subQ, "subq") From 273dea18797f96f3e4ca602a04dbae31192cff3a Mon Sep 17 00:00:00 2001 From: Styler Date: Thu, 19 Jan 2023 13:03:04 +0100 Subject: [PATCH 2/2] fixed bad spacing --- select.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/select.go b/select.go index 60a7191d..d6354f76 100644 --- a/select.go +++ b/select.go @@ -283,7 +283,7 @@ func (b SelectBuilder) RemoveColumns() SelectBuilder { // Unlike Columns, Column accepts args which will be bound to placeholders in // the columns string, for example: // -// Column("IF(col IN ("+squirrel.Placeholders(3)+"), 1, 0) as col", 1, 2, 3) +// Column("IF(col IN ("+squirrel.Placeholders(3)+"), 1, 0) as col", 1, 2, 3) func (b SelectBuilder) Column(column interface{}, args ...interface{}) SelectBuilder { return builder.Append(b, "Columns", newPart(column, args...)).(SelectBuilder) }