From 8bc478430f2260dc1260abf809b83bf9f729ada3 Mon Sep 17 00:00:00 2001 From: Andrew Hare Date: Tue, 28 Feb 2017 12:44:11 -0700 Subject: [PATCH] Add SetColumns --- select.go | 5 +++++ select_test.go | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/select.go b/select.go index 7dc09bc5..56c46744 100644 --- a/select.go +++ b/select.go @@ -218,6 +218,11 @@ func (b SelectBuilder) Columns(columns ...string) SelectBuilder { return builder.Extend(b, "Columns", parts).(SelectBuilder) } +// SetColumns sets the columns in the query. +func (b SelectBuilder) SetColumns(columns ...string) SelectBuilder { + return builder.Delete(b, "Columns").(SelectBuilder).Columns(columns...) +} + // 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: diff --git a/select_test.go b/select_test.go index 6db70003..03d92990 100644 --- a/select_test.go +++ b/select_test.go @@ -162,3 +162,14 @@ func TestSelectWithOptions(t *testing.T) { assert.NoError(t, err) assert.Equal(t, "SELECT DISTINCT SQL_NO_CACHE * FROM foo", sql) } + +func TestSetColumns(t *testing.T) { + builder := Select("blarg").From("foo") + sql, _, err := builder.ToSql() + assert.NoError(t, err) + assert.Equal(t, "SELECT blarg FROM foo", sql) + + sql, _, err = builder.SetColumns("biz", "baz").ToSql() + assert.NoError(t, err) + assert.Equal(t, "SELECT biz, baz FROM foo", sql) +}