From a21da5465904bff0a1f7a47dd41534f51dd883ad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Carlos=20Nieto?= <jose.carlos@menteslibres.net>
Date: Sat, 23 May 2015 09:11:48 -0500
Subject: [PATCH] ColumnValues requires fragment.

---
 util/sqlgen/column_value.go      |  4 +-
 util/sqlgen/column_value_test.go | 70 ++++++++++++++++----------------
 util/sqlgen/statement_test.go    |  6 +--
 3 files changed, 40 insertions(+), 40 deletions(-)

diff --git a/util/sqlgen/column_value.go b/util/sqlgen/column_value.go
index 41122710..485a46f3 100644
--- a/util/sqlgen/column_value.go
+++ b/util/sqlgen/column_value.go
@@ -49,12 +49,12 @@ func (c *ColumnValue) Compile(layout *Template) (compiled string) {
 
 // ColumnValues represents an array of ColumnValue
 type ColumnValues struct {
-	ColumnValues []ColumnValue
+	ColumnValues []Fragment
 	hash         string
 }
 
 // JoinColumnValues returns an array of ColumnValue
-func JoinColumnValues(values ...ColumnValue) *ColumnValues {
+func JoinColumnValues(values ...Fragment) *ColumnValues {
 	return &ColumnValues{ColumnValues: values}
 }
 
diff --git a/util/sqlgen/column_value_test.go b/util/sqlgen/column_value_test.go
index b9b80779..9a954697 100644
--- a/util/sqlgen/column_value_test.go
+++ b/util/sqlgen/column_value_test.go
@@ -8,7 +8,7 @@ import (
 func TestColumnValueHash(t *testing.T) {
 	var s, e string
 
-	c := ColumnValue{Column: ColumnWithName("id"), Operator: "=", Value: NewValue(1)}
+	c := &ColumnValue{Column: ColumnWithName("id"), Operator: "=", Value: NewValue(1)}
 
 	s = c.Hash()
 	e = fmt.Sprintf(`ColumnValue{Name:%q, Operator:%q, Value:%q}`, c.Column.Hash(), c.Operator, c.Value.Hash())
@@ -22,8 +22,8 @@ func TestColumnValuesHash(t *testing.T) {
 	var s, e string
 
 	c := JoinColumnValues(
-		ColumnValue{Column: ColumnWithName("id"), Operator: "=", Value: NewValue(1)},
-		ColumnValue{Column: ColumnWithName("id"), Operator: "=", Value: NewValue(2)},
+		&ColumnValue{Column: ColumnWithName("id"), Operator: "=", Value: NewValue(1)},
+		&ColumnValue{Column: ColumnWithName("id"), Operator: "=", Value: NewValue(2)},
 	)
 
 	s = c.Hash()
@@ -37,9 +37,9 @@ func TestColumnValuesHash(t *testing.T) {
 
 func TestColumnValue(t *testing.T) {
 	var s, e string
-	var cv ColumnValue
+	var cv *ColumnValue
 
-	cv = ColumnValue{Column: ColumnWithName("id"), Operator: "=", Value: NewValue(1)}
+	cv = &ColumnValue{Column: ColumnWithName("id"), Operator: "=", Value: NewValue(1)}
 
 	s = cv.Compile(defaultTemplate)
 	e = `"id" = '1'`
@@ -48,7 +48,7 @@ func TestColumnValue(t *testing.T) {
 		t.Fatalf("Got: %s, Expecting: %s", s, e)
 	}
 
-	cv = ColumnValue{Column: ColumnWithName("date"), Operator: "=", Value: NewValue(RawValue("NOW()"))}
+	cv = &ColumnValue{Column: ColumnWithName("date"), Operator: "=", Value: NewValue(RawValue("NOW()"))}
 
 	s = cv.Compile(defaultTemplate)
 	e = `"date" = NOW()`
@@ -62,11 +62,11 @@ func TestColumnValues(t *testing.T) {
 	var s, e string
 
 	cvs := JoinColumnValues(
-		ColumnValue{Column: ColumnWithName("id"), Operator: ">", Value: NewValue(8)},
-		ColumnValue{Column: ColumnWithName("other.id"), Operator: "<", Value: NewValue(&Raw{Value: "100"})},
-		ColumnValue{Column: ColumnWithName("name"), Operator: "=", Value: NewValue("Haruki Murakami")},
-		ColumnValue{Column: ColumnWithName("created"), Operator: ">=", Value: NewValue(&Raw{Value: "NOW()"})},
-		ColumnValue{Column: ColumnWithName("modified"), Operator: "<=", Value: NewValue(&Raw{Value: "NOW()"})},
+		&ColumnValue{Column: ColumnWithName("id"), Operator: ">", Value: NewValue(8)},
+		&ColumnValue{Column: ColumnWithName("other.id"), Operator: "<", Value: NewValue(&Raw{Value: "100"})},
+		&ColumnValue{Column: ColumnWithName("name"), Operator: "=", Value: NewValue("Haruki Murakami")},
+		&ColumnValue{Column: ColumnWithName("created"), Operator: ">=", Value: NewValue(&Raw{Value: "NOW()"})},
+		&ColumnValue{Column: ColumnWithName("modified"), Operator: "<=", Value: NewValue(&Raw{Value: "NOW()"})},
 	)
 
 	s = cvs.Compile(defaultTemplate)
@@ -79,19 +79,19 @@ func TestColumnValues(t *testing.T) {
 
 func BenchmarkNewColumnValue(b *testing.B) {
 	for i := 0; i < b.N; i++ {
-		_ = ColumnValue{Column: ColumnWithName("a"), Operator: "=", Value: NewValue(Raw{Value: "7"})}
+		_ = &ColumnValue{Column: ColumnWithName("a"), Operator: "=", Value: NewValue(Raw{Value: "7"})}
 	}
 }
 
 func BenchmarkColumnValueHash(b *testing.B) {
-	cv := ColumnValue{Column: ColumnWithName("id"), Operator: "=", Value: NewValue(1)}
+	cv := &ColumnValue{Column: ColumnWithName("id"), Operator: "=", Value: NewValue(1)}
 	for i := 0; i < b.N; i++ {
 		cv.Hash()
 	}
 }
 
 func BenchmarkColumnValueCompile(b *testing.B) {
-	cv := ColumnValue{Column: ColumnWithName("id"), Operator: "=", Value: NewValue(1)}
+	cv := &ColumnValue{Column: ColumnWithName("id"), Operator: "=", Value: NewValue(1)}
 	for i := 0; i < b.N; i++ {
 		cv.Compile(defaultTemplate)
 	}
@@ -99,7 +99,7 @@ func BenchmarkColumnValueCompile(b *testing.B) {
 
 func BenchmarkColumnValueCompileNoCache(b *testing.B) {
 	for i := 0; i < b.N; i++ {
-		cv := ColumnValue{Column: ColumnWithName("id"), Operator: "=", Value: NewValue(1)}
+		cv := &ColumnValue{Column: ColumnWithName("id"), Operator: "=", Value: NewValue(1)}
 		cv.Compile(defaultTemplate)
 	}
 }
@@ -107,22 +107,22 @@ func BenchmarkColumnValueCompileNoCache(b *testing.B) {
 func BenchmarkJoinColumnValues(b *testing.B) {
 	for i := 0; i < b.N; i++ {
 		_ = JoinColumnValues(
-			ColumnValue{Column: ColumnWithName("id"), Operator: ">", Value: NewValue(8)},
-			ColumnValue{Column: ColumnWithName("other.id"), Operator: "<", Value: NewValue(Raw{Value: "100"})},
-			ColumnValue{Column: ColumnWithName("name"), Operator: "=", Value: NewValue("Haruki Murakami")},
-			ColumnValue{Column: ColumnWithName("created"), Operator: ">=", Value: NewValue(Raw{Value: "NOW()"})},
-			ColumnValue{Column: ColumnWithName("modified"), Operator: "<=", Value: NewValue(Raw{Value: "NOW()"})},
+			&ColumnValue{Column: ColumnWithName("id"), Operator: ">", Value: NewValue(8)},
+			&ColumnValue{Column: ColumnWithName("other.id"), Operator: "<", Value: NewValue(Raw{Value: "100"})},
+			&ColumnValue{Column: ColumnWithName("name"), Operator: "=", Value: NewValue("Haruki Murakami")},
+			&ColumnValue{Column: ColumnWithName("created"), Operator: ">=", Value: NewValue(Raw{Value: "NOW()"})},
+			&ColumnValue{Column: ColumnWithName("modified"), Operator: "<=", Value: NewValue(Raw{Value: "NOW()"})},
 		)
 	}
 }
 
 func BenchmarkColumnValuesHash(b *testing.B) {
 	cvs := JoinColumnValues(
-		ColumnValue{Column: ColumnWithName("id"), Operator: ">", Value: NewValue(8)},
-		ColumnValue{Column: ColumnWithName("other.id"), Operator: "<", Value: NewValue(Raw{Value: "100"})},
-		ColumnValue{Column: ColumnWithName("name"), Operator: "=", Value: NewValue("Haruki Murakami")},
-		ColumnValue{Column: ColumnWithName("created"), Operator: ">=", Value: NewValue(Raw{Value: "NOW()"})},
-		ColumnValue{Column: ColumnWithName("modified"), Operator: "<=", Value: NewValue(Raw{Value: "NOW()"})},
+		&ColumnValue{Column: ColumnWithName("id"), Operator: ">", Value: NewValue(8)},
+		&ColumnValue{Column: ColumnWithName("other.id"), Operator: "<", Value: NewValue(Raw{Value: "100"})},
+		&ColumnValue{Column: ColumnWithName("name"), Operator: "=", Value: NewValue("Haruki Murakami")},
+		&ColumnValue{Column: ColumnWithName("created"), Operator: ">=", Value: NewValue(Raw{Value: "NOW()"})},
+		&ColumnValue{Column: ColumnWithName("modified"), Operator: "<=", Value: NewValue(Raw{Value: "NOW()"})},
 	)
 	for i := 0; i < b.N; i++ {
 		cvs.Hash()
@@ -131,11 +131,11 @@ func BenchmarkColumnValuesHash(b *testing.B) {
 
 func BenchmarkColumnValuesCompile(b *testing.B) {
 	cvs := JoinColumnValues(
-		ColumnValue{Column: ColumnWithName("id"), Operator: ">", Value: NewValue(8)},
-		ColumnValue{Column: ColumnWithName("other.id"), Operator: "<", Value: NewValue(Raw{Value: "100"})},
-		ColumnValue{Column: ColumnWithName("name"), Operator: "=", Value: NewValue("Haruki Murakami")},
-		ColumnValue{Column: ColumnWithName("created"), Operator: ">=", Value: NewValue(Raw{Value: "NOW()"})},
-		ColumnValue{Column: ColumnWithName("modified"), Operator: "<=", Value: NewValue(Raw{Value: "NOW()"})},
+		&ColumnValue{Column: ColumnWithName("id"), Operator: ">", Value: NewValue(8)},
+		&ColumnValue{Column: ColumnWithName("other.id"), Operator: "<", Value: NewValue(Raw{Value: "100"})},
+		&ColumnValue{Column: ColumnWithName("name"), Operator: "=", Value: NewValue("Haruki Murakami")},
+		&ColumnValue{Column: ColumnWithName("created"), Operator: ">=", Value: NewValue(Raw{Value: "NOW()"})},
+		&ColumnValue{Column: ColumnWithName("modified"), Operator: "<=", Value: NewValue(Raw{Value: "NOW()"})},
 	)
 	for i := 0; i < b.N; i++ {
 		cvs.Compile(defaultTemplate)
@@ -145,11 +145,11 @@ func BenchmarkColumnValuesCompile(b *testing.B) {
 func BenchmarkColumnValuesCompileNoCache(b *testing.B) {
 	for i := 0; i < b.N; i++ {
 		cvs := JoinColumnValues(
-			ColumnValue{Column: ColumnWithName("id"), Operator: ">", Value: NewValue(8)},
-			ColumnValue{Column: ColumnWithName("other.id"), Operator: "<", Value: NewValue(Raw{Value: "100"})},
-			ColumnValue{Column: ColumnWithName("name"), Operator: "=", Value: NewValue("Haruki Murakami")},
-			ColumnValue{Column: ColumnWithName("created"), Operator: ">=", Value: NewValue(Raw{Value: "NOW()"})},
-			ColumnValue{Column: ColumnWithName("modified"), Operator: "<=", Value: NewValue(Raw{Value: "NOW()"})},
+			&ColumnValue{Column: ColumnWithName("id"), Operator: ">", Value: NewValue(8)},
+			&ColumnValue{Column: ColumnWithName("other.id"), Operator: "<", Value: NewValue(Raw{Value: "100"})},
+			&ColumnValue{Column: ColumnWithName("name"), Operator: "=", Value: NewValue("Haruki Murakami")},
+			&ColumnValue{Column: ColumnWithName("created"), Operator: ">=", Value: NewValue(Raw{Value: "NOW()"})},
+			&ColumnValue{Column: ColumnWithName("modified"), Operator: "<=", Value: NewValue(Raw{Value: "NOW()"})},
 		)
 		cvs.Compile(defaultTemplate)
 	}
diff --git a/util/sqlgen/statement_test.go b/util/sqlgen/statement_test.go
index 7ec293a0..34859a2d 100644
--- a/util/sqlgen/statement_test.go
+++ b/util/sqlgen/statement_test.go
@@ -585,7 +585,7 @@ func TestUpdate(t *testing.T) {
 		Type:  Update,
 		Table: TableWithName("table_name"),
 		ColumnValues: JoinColumnValues(
-			ColumnValue{Column: &Column{Name: "foo"}, Operator: "=", Value: NewValue(76)},
+			&ColumnValue{Column: &Column{Name: "foo"}, Operator: "=", Value: NewValue(76)},
 		),
 		Where: WhereConditions(
 			&ColumnValue{Column: &Column{Name: "baz"}, Operator: "=", Value: NewValue(99)},
@@ -603,8 +603,8 @@ func TestUpdate(t *testing.T) {
 		Type:  Update,
 		Table: TableWithName("table_name"),
 		ColumnValues: JoinColumnValues(
-			ColumnValue{Column: &Column{Name: "foo"}, Operator: "=", Value: NewValue(76)},
-			ColumnValue{Column: &Column{Name: "bar"}, Operator: "=", Value: NewValue(Raw{Value: "88"})},
+			&ColumnValue{Column: &Column{Name: "foo"}, Operator: "=", Value: NewValue(76)},
+			&ColumnValue{Column: &Column{Name: "bar"}, Operator: "=", Value: NewValue(Raw{Value: "88"})},
 		),
 		Where: WhereConditions(
 			&ColumnValue{Column: &Column{Name: "baz"}, Operator: "=", Value: NewValue(99)},
-- 
GitLab