From 42cf4fab13f2e6b9720c1675b9a07249b5ee80b3 Mon Sep 17 00:00:00 2001 From: jiangyanfeng Date: Sat, 13 Oct 2018 19:00:26 +0800 Subject: [PATCH 1/4] RawCols generate raw "col1, col2, group_concat(col3)" statement --- session_cols.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/session_cols.go b/session_cols.go index 47d109c6..9531a13c 100644 --- a/session_cols.go +++ b/session_cols.go @@ -149,6 +149,12 @@ func (session *Session) Cols(columns ...string) *Session { return session } +// RawCols generate raw "col1, col2" statement +func (session *Session) RawCols(columns ...string) *Session { + session.statement.ColumnStr = strings.Join(columns, ", ") + return session +} + // AllCols ask all columns func (session *Session) AllCols() *Session { session.statement.AllCols() From 9b50e3bbcc3a321a653022c4237b8ab9a8278f89 Mon Sep 17 00:00:00 2001 From: jiangyanfeng Date: Sat, 8 Dec 2018 17:09:30 +0800 Subject: [PATCH 2/4] fix Count error when have Select statement --- session_stats.go | 4 ++++ session_stats_test.go | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/session_stats.go b/session_stats.go index c2cac830..88286e50 100644 --- a/session_stats.go +++ b/session_stats.go @@ -30,6 +30,10 @@ func (session *Session) Count(bean ...interface{}) (int64, error) { args = session.statement.RawParams } + if len(session.statement.selectStr) > 0 { + sqlStr = "SELECT COUNT(*) FROM ("+sqlStr+") _TEMP_" + } + var total int64 err = session.queryRow(sqlStr, args...).Scan(&total) if err == sql.ErrNoRows || err == nil { diff --git a/session_stats_test.go b/session_stats_test.go index b66a84b4..38f8346f 100644 --- a/session_stats_test.go +++ b/session_stats_test.go @@ -124,6 +124,10 @@ func TestCount(t *testing.T) { assert.NoError(t, err) assert.EqualValues(t, 1, cnt) + total, err = testEngine.Select(colName).Where(cond).Count(new(UserinfoCount)) + assert.NoError(t, err) + assert.EqualValues(t, 1, total) + total, err = testEngine.Where(cond).Count(new(UserinfoCount)) assert.NoError(t, err) assert.EqualValues(t, 1, total) From f5e33928600200c0763307baa17d8bdfabe07dc2 Mon Sep 17 00:00:00 2001 From: jiangyanfeng Date: Sat, 8 Dec 2018 17:20:18 +0800 Subject: [PATCH 3/4] remove RawCols, use Select instead --- session_cols.go | 6 ------ 1 file changed, 6 deletions(-) diff --git a/session_cols.go b/session_cols.go index 9531a13c..47d109c6 100644 --- a/session_cols.go +++ b/session_cols.go @@ -149,12 +149,6 @@ func (session *Session) Cols(columns ...string) *Session { return session } -// RawCols generate raw "col1, col2" statement -func (session *Session) RawCols(columns ...string) *Session { - session.statement.ColumnStr = strings.Join(columns, ", ") - return session -} - // AllCols ask all columns func (session *Session) AllCols() *Session { session.statement.AllCols() From bd36dab342de98a0b4fbf15a3b98813f73d9e5f0 Mon Sep 17 00:00:00 2001 From: jiangyanfeng Date: Sat, 8 Dec 2018 18:45:02 +0800 Subject: [PATCH 4/4] try to fix testEngine.Select undefined error --- session_stats_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/session_stats_test.go b/session_stats_test.go index 38f8346f..3d4159c4 100644 --- a/session_stats_test.go +++ b/session_stats_test.go @@ -124,7 +124,7 @@ func TestCount(t *testing.T) { assert.NoError(t, err) assert.EqualValues(t, 1, cnt) - total, err = testEngine.Select(colName).Where(cond).Count(new(UserinfoCount)) + total, err = testEngine.Where(cond).Select(colName).Count(new(UserinfoCount)) assert.NoError(t, err) assert.EqualValues(t, 1, total)