diff --git a/util/sqlgen/column_test.go b/util/sqlgen/column_test.go index a34de6701f31b18dbdc49833f4c6e44020edfb6c..1b47873d6adaf1e0936434151f5c7a2971385e69 100644 --- a/util/sqlgen/column_test.go +++ b/util/sqlgen/column_test.go @@ -16,25 +16,3 @@ func TestColumnString(t *testing.T) { t.Fatalf("Got: %s, Expecting: %s", s, e) } } - -func TestColumns(t *testing.T) { - var s, e string - - columns := Columns{ - []Column{ - {"id"}, - {"customer"}, - {"service_id"}, - {"role.name"}, - {"role.id"}, - }, - } - - s = columns.String() - e = `"id", "customer", "service_id", "role"."name", "role"."id"` - - if s != e { - t.Fatalf("Got: %s, Expecting: %s", s, e) - } - -} diff --git a/util/sqlgen/column_value.go b/util/sqlgen/column_value.go index 63db9679012a5870d684ec69fa8e1a1bebebdce6..8cbdc6d27f3fe20fddfdea64dba820730b768f1d 100644 --- a/util/sqlgen/column_value.go +++ b/util/sqlgen/column_value.go @@ -14,15 +14,15 @@ func (self ColumnValue) String() string { return mustParse(sqlColumnValue, self) } -type ColumnValues struct { - v []ColumnValue -} +type ColumnValues []ColumnValue func (self ColumnValues) String() string { - out := make([]string, len(self.v)) + l := len(self) + + out := make([]string, l) - for i := range self.v { - out[i] = self.v[i].String() + for i := 0; i < l; i++ { + out[i] = self[i].String() } return strings.Join(out, sqlColumnComma) diff --git a/util/sqlgen/column_value_test.go b/util/sqlgen/column_value_test.go index 39fdc30bca65002ffffa49fc93439198a6a33724..538c9ac29ea145b002e26d81bccd86957d8309bc 100644 --- a/util/sqlgen/column_value_test.go +++ b/util/sqlgen/column_value_test.go @@ -32,13 +32,11 @@ func TestColumnValues(t *testing.T) { var cvs ColumnValues cvs = ColumnValues{ - []ColumnValue{ - {Column{"id"}, ">", Value{8}}, - {Column{"other.id"}, "<", Value{Raw{"100"}}}, - {Column{"name"}, "=", Value{"Haruki Murakami"}}, - {Column{"created"}, ">=", Value{Raw{"NOW()"}}}, - {Column{"modified"}, "<=", Value{Raw{"NOW()"}}}, - }, + {Column{"id"}, ">", Value{8}}, + {Column{"other.id"}, "<", Value{Raw{"100"}}}, + {Column{"name"}, "=", Value{"Haruki Murakami"}}, + {Column{"created"}, ">=", Value{Raw{"NOW()"}}}, + {Column{"modified"}, "<=", Value{Raw{"NOW()"}}}, } s = cvs.String() diff --git a/util/sqlgen/columns.go b/util/sqlgen/columns.go index 90c66717727f568852f3f369609a6d85cfc22fa2..4177996830105e23ad8b289593e6a2559d75cc10 100644 --- a/util/sqlgen/columns.go +++ b/util/sqlgen/columns.go @@ -4,16 +4,16 @@ import ( "strings" ) -type Columns struct { - v []Column -} +type Columns []Column func (self Columns) String() string { - if len(self.v) > 0 { - out := make([]string, len(self.v)) + l := len(self) + + if l > 0 { + out := make([]string, l) - for i := range self.v { - out[i] = self.v[i].String() + for i := 0; i < l; i++ { + out[i] = self[i].String() } return strings.Join(out, sqlColumnComma) @@ -22,5 +22,5 @@ func (self Columns) String() string { } func (self Columns) Len() int { - return len(self.v) + return len(self) } diff --git a/util/sqlgen/columns_test.go b/util/sqlgen/columns_test.go new file mode 100644 index 0000000000000000000000000000000000000000..f2decd3dd14f9b3d24450eb5fa7f36f49502aa9f --- /dev/null +++ b/util/sqlgen/columns_test.go @@ -0,0 +1,25 @@ +package sqlgen + +import ( + "testing" +) + +func TestColumns(t *testing.T) { + var s, e string + + columns := Columns{ + {"id"}, + {"customer"}, + {"service_id"}, + {"role.name"}, + {"role.id"}, + } + + s = columns.String() + e = `"id", "customer", "service_id", "role"."name", "role"."id"` + + if s != e { + t.Fatalf("Got: %s, Expecting: %s", s, e) + } + +} diff --git a/util/sqlgen/main_test.go b/util/sqlgen/main_test.go index acfc058b70e922afd3d69d9fd0ae076cb4e76246..97956d132fc5b482c97071c343e8e88fe5b42a53 100644 --- a/util/sqlgen/main_test.go +++ b/util/sqlgen/main_test.go @@ -1,20 +1,10 @@ package sqlgen import ( - "regexp" "strings" "testing" ) -var reInvisible = regexp.MustCompile(`[\t\n\r]`) -var reSpace = regexp.MustCompile(`\s+`) - -func trim(a string) string { - a = reInvisible.ReplaceAllString(strings.TrimSpace(a), " ") - a = reSpace.ReplaceAllString(strings.TrimSpace(a), " ") - return a -} - func TestTruncateTable(t *testing.T) { var s, e string var stmt Statement @@ -127,11 +117,9 @@ func TestSelectFieldsFrom(t *testing.T) { stmt = Statement{ Type: SqlSelect, Columns: Columns{ - []Column{ - {"foo"}, - {"bar"}, - {"baz"}, - }, + {"foo"}, + {"bar"}, + {"baz"}, }, Source: Source{"source name"}, } @@ -152,11 +140,9 @@ func TestSelectFieldsFromWithLimitOffset(t *testing.T) { stmt = Statement{ Type: SqlSelect, Columns: Columns{ - []Column{ - {"foo"}, - {"bar"}, - {"baz"}, - }, + {"foo"}, + {"bar"}, + {"baz"}, }, Limit: 42, Source: Source{"source name"}, @@ -173,11 +159,9 @@ func TestSelectFieldsFromWithLimitOffset(t *testing.T) { stmt = Statement{ Type: SqlSelect, Columns: Columns{ - []Column{ - {"foo"}, - {"bar"}, - {"baz"}, - }, + {"foo"}, + {"bar"}, + {"baz"}, }, Offset: 17, Source: Source{"source name"}, @@ -194,11 +178,9 @@ func TestSelectFieldsFromWithLimitOffset(t *testing.T) { stmt = Statement{ Type: SqlSelect, Columns: Columns{ - []Column{ - {"foo"}, - {"bar"}, - {"baz"}, - }, + {"foo"}, + {"bar"}, + {"baz"}, }, Limit: 42, Offset: 17, @@ -221,17 +203,13 @@ func TestSelectFieldsFromWithOrderBy(t *testing.T) { stmt = Statement{ Type: SqlSelect, Columns: Columns{ - []Column{ - {"foo"}, - {"bar"}, - {"baz"}, - }, + {"foo"}, + {"bar"}, + {"baz"}, }, OrderBy: OrderBy{ Columns: Columns{ - []Column{ - {"foo"}, - }, + {"foo"}, }, }, Source: Source{"source name"}, @@ -248,17 +226,13 @@ func TestSelectFieldsFromWithOrderBy(t *testing.T) { stmt = Statement{ Type: SqlSelect, Columns: Columns{ - []Column{ - {"foo"}, - {"bar"}, - {"baz"}, - }, + {"foo"}, + {"bar"}, + {"baz"}, }, OrderBy: OrderBy{ Columns: Columns{ - []Column{ - {"foo"}, - }, + {"foo"}, }, Sort: Sort{SqlSortAsc}, }, @@ -276,17 +250,13 @@ func TestSelectFieldsFromWithOrderBy(t *testing.T) { stmt = Statement{ Type: SqlSelect, Columns: Columns{ - []Column{ - {"foo"}, - {"bar"}, - {"baz"}, - }, + {"foo"}, + {"bar"}, + {"baz"}, }, OrderBy: OrderBy{ Columns: Columns{ - []Column{ - {"foo"}, - }, + {"foo"}, }, Sort: Sort{SqlSortDesc}, }, @@ -308,11 +278,9 @@ func TestSelectFieldsFromWhere(t *testing.T) { stmt = Statement{ Type: SqlSelect, Columns: Columns{ - []Column{ - {"foo"}, - {"bar"}, - {"baz"}, - }, + {"foo"}, + {"bar"}, + {"baz"}, }, Source: Source{"source name"}, Where: Where{ @@ -335,11 +303,9 @@ func TestSelectFieldsFromWhereLimitOffset(t *testing.T) { stmt = Statement{ Type: SqlSelect, Columns: Columns{ - []Column{ - {"foo"}, - {"bar"}, - {"baz"}, - }, + {"foo"}, + {"bar"}, + {"baz"}, }, Source: Source{"source name"}, Where: Where{ @@ -385,9 +351,7 @@ func TestUpdate(t *testing.T) { Type: SqlUpdate, Source: Source{"source name"}, ColumnValues: ColumnValues{ - []ColumnValue{ - {Column{"foo"}, "=", Value{76}}, - }, + {Column{"foo"}, "=", Value{76}}, }, Where: Where{ ColumnValue{Column{"baz"}, "=", Value{99}}, @@ -405,10 +369,8 @@ func TestUpdate(t *testing.T) { Type: SqlUpdate, Source: Source{"source name"}, ColumnValues: ColumnValues{ - []ColumnValue{ - {Column{"foo"}, "=", Value{76}}, - {Column{"bar"}, "=", Value{Raw{"88"}}}, - }, + {Column{"foo"}, "=", Value{76}}, + {Column{"bar"}, "=", Value{Raw{"88"}}}, }, Where: Where{ ColumnValue{Column{"baz"}, "=", Value{99}}, @@ -431,11 +393,9 @@ func TestInsert(t *testing.T) { Type: SqlInsert, Source: Source{"source name"}, Columns: Columns{ - []Column{ - Column{"foo"}, - Column{"bar"}, - Column{"baz"}, - }, + Column{"foo"}, + Column{"bar"}, + Column{"baz"}, }, Values: Values{ Value{"1"}, diff --git a/util/sqlgen/util_test.go b/util/sqlgen/util_test.go new file mode 100644 index 0000000000000000000000000000000000000000..0551cf34fea3e9d0e088a79b8d313daff426cf1e --- /dev/null +++ b/util/sqlgen/util_test.go @@ -0,0 +1,17 @@ +package sqlgen + +import ( + "regexp" + "strings" +) + +var ( + reInvisible = regexp.MustCompile(`[\t\n\r]`) + reSpace = regexp.MustCompile(`\s+`) +) + +func trim(a string) string { + a = reInvisible.ReplaceAllString(strings.TrimSpace(a), " ") + a = reSpace.ReplaceAllString(strings.TrimSpace(a), " ") + return a +}