From 326f075fd7c12e5a893f0ec41dc3ef515010c8e7 Mon Sep 17 00:00:00 2001 From: Sergey Kurt Date: Tue, 8 Nov 2016 12:32:08 +0300 Subject: [PATCH] Fixed generation in case of skipping last column --- statement.go | 11 +++++------ statement_test.go | 2 ++ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/statement.go b/statement.go index 532eab73..dc426946 100644 --- a/statement.go +++ b/statement.go @@ -989,9 +989,8 @@ func (statement *Statement) genColumnStr() string { var buf bytes.Buffer columns := statement.RefTable.Columns() - columnsCount := len(columns) - for ndx, col := range columns { + for _, col := range columns { if statement.OmitStr != "" { if _, ok := statement.columnMap[strings.ToLower(col.Name)]; ok { @@ -1003,6 +1002,10 @@ func (statement *Statement) genColumnStr() string { continue } + if buf.Len() != 0 { + buf.WriteString(", ") + } + if col.IsPrimaryKey && statement.Engine.Dialect().DBType() == "ql" { buf.WriteString("id() AS ") } @@ -1018,10 +1021,6 @@ func (statement *Statement) genColumnStr() string { } statement.Engine.QuoteTo(&buf, col.Name) - - if ndx < columnsCount-1 { - buf.WriteString(", ") - } } return buf.String() diff --git a/statement_test.go b/statement_test.go index 9cd7f371..3929a76e 100644 --- a/statement_test.go +++ b/statement_test.go @@ -18,6 +18,8 @@ var colStrTests = []struct { {"Code2", -1, "`ID`, `IsDeleted`, `Caption`, `Code1`, `Code3`, `ParentID`, `Latitude`, `Longitude`"}, {"", 1, "`ID`, `Caption`, `Code1`, `Code2`, `Code3`, `ParentID`, `Latitude`, `Longitude`"}, {"Code3", 1, "`ID`, `Caption`, `Code1`, `Code2`, `ParentID`, `Latitude`, `Longitude`"}, + {"Longitude", 1, "`ID`, `Caption`, `Code1`, `Code2`, `Code3`, `ParentID`, `Latitude`"}, + {"", 8, "`ID`, `IsDeleted`, `Caption`, `Code1`, `Code2`, `Code3`, `ParentID`, `Latitude`"}, } // !nemec784! Only for Statement object creation