good morning!!!!

Skip to content
Snippets Groups Projects
Commit 487bc454 authored by José Carlos Nieto's avatar José Carlos Nieto
Browse files

Fixing Columns and ColumnValues.

parent 8f7868b4
Branches
Tags
No related merge requests found
...@@ -16,25 +16,3 @@ func TestColumnString(t *testing.T) { ...@@ -16,25 +16,3 @@ func TestColumnString(t *testing.T) {
t.Fatalf("Got: %s, Expecting: %s", s, e) 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)
}
}
...@@ -14,15 +14,15 @@ func (self ColumnValue) String() string { ...@@ -14,15 +14,15 @@ func (self ColumnValue) String() string {
return mustParse(sqlColumnValue, self) return mustParse(sqlColumnValue, self)
} }
type ColumnValues struct { type ColumnValues []ColumnValue
v []ColumnValue
}
func (self ColumnValues) String() string { func (self ColumnValues) String() string {
out := make([]string, len(self.v)) l := len(self)
out := make([]string, l)
for i := range self.v { for i := 0; i < l; i++ {
out[i] = self.v[i].String() out[i] = self[i].String()
} }
return strings.Join(out, sqlColumnComma) return strings.Join(out, sqlColumnComma)
......
...@@ -32,13 +32,11 @@ func TestColumnValues(t *testing.T) { ...@@ -32,13 +32,11 @@ func TestColumnValues(t *testing.T) {
var cvs ColumnValues var cvs ColumnValues
cvs = ColumnValues{ cvs = ColumnValues{
[]ColumnValue{
{Column{"id"}, ">", Value{8}}, {Column{"id"}, ">", Value{8}},
{Column{"other.id"}, "<", Value{Raw{"100"}}}, {Column{"other.id"}, "<", Value{Raw{"100"}}},
{Column{"name"}, "=", Value{"Haruki Murakami"}}, {Column{"name"}, "=", Value{"Haruki Murakami"}},
{Column{"created"}, ">=", Value{Raw{"NOW()"}}}, {Column{"created"}, ">=", Value{Raw{"NOW()"}}},
{Column{"modified"}, "<=", Value{Raw{"NOW()"}}}, {Column{"modified"}, "<=", Value{Raw{"NOW()"}}},
},
} }
s = cvs.String() s = cvs.String()
......
...@@ -4,16 +4,16 @@ import ( ...@@ -4,16 +4,16 @@ import (
"strings" "strings"
) )
type Columns struct { type Columns []Column
v []Column
}
func (self Columns) String() string { func (self Columns) String() string {
if len(self.v) > 0 { l := len(self)
out := make([]string, len(self.v))
if l > 0 {
out := make([]string, l)
for i := range self.v { for i := 0; i < l; i++ {
out[i] = self.v[i].String() out[i] = self[i].String()
} }
return strings.Join(out, sqlColumnComma) return strings.Join(out, sqlColumnComma)
...@@ -22,5 +22,5 @@ func (self Columns) String() string { ...@@ -22,5 +22,5 @@ func (self Columns) String() string {
} }
func (self Columns) Len() int { func (self Columns) Len() int {
return len(self.v) return len(self)
} }
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)
}
}
package sqlgen package sqlgen
import ( import (
"regexp"
"strings" "strings"
"testing" "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) { func TestTruncateTable(t *testing.T) {
var s, e string var s, e string
var stmt Statement var stmt Statement
...@@ -127,12 +117,10 @@ func TestSelectFieldsFrom(t *testing.T) { ...@@ -127,12 +117,10 @@ func TestSelectFieldsFrom(t *testing.T) {
stmt = Statement{ stmt = Statement{
Type: SqlSelect, Type: SqlSelect,
Columns: Columns{ Columns: Columns{
[]Column{
{"foo"}, {"foo"},
{"bar"}, {"bar"},
{"baz"}, {"baz"},
}, },
},
Source: Source{"source name"}, Source: Source{"source name"},
} }
...@@ -152,12 +140,10 @@ func TestSelectFieldsFromWithLimitOffset(t *testing.T) { ...@@ -152,12 +140,10 @@ func TestSelectFieldsFromWithLimitOffset(t *testing.T) {
stmt = Statement{ stmt = Statement{
Type: SqlSelect, Type: SqlSelect,
Columns: Columns{ Columns: Columns{
[]Column{
{"foo"}, {"foo"},
{"bar"}, {"bar"},
{"baz"}, {"baz"},
}, },
},
Limit: 42, Limit: 42,
Source: Source{"source name"}, Source: Source{"source name"},
} }
...@@ -173,12 +159,10 @@ func TestSelectFieldsFromWithLimitOffset(t *testing.T) { ...@@ -173,12 +159,10 @@ func TestSelectFieldsFromWithLimitOffset(t *testing.T) {
stmt = Statement{ stmt = Statement{
Type: SqlSelect, Type: SqlSelect,
Columns: Columns{ Columns: Columns{
[]Column{
{"foo"}, {"foo"},
{"bar"}, {"bar"},
{"baz"}, {"baz"},
}, },
},
Offset: 17, Offset: 17,
Source: Source{"source name"}, Source: Source{"source name"},
} }
...@@ -194,12 +178,10 @@ func TestSelectFieldsFromWithLimitOffset(t *testing.T) { ...@@ -194,12 +178,10 @@ func TestSelectFieldsFromWithLimitOffset(t *testing.T) {
stmt = Statement{ stmt = Statement{
Type: SqlSelect, Type: SqlSelect,
Columns: Columns{ Columns: Columns{
[]Column{
{"foo"}, {"foo"},
{"bar"}, {"bar"},
{"baz"}, {"baz"},
}, },
},
Limit: 42, Limit: 42,
Offset: 17, Offset: 17,
Source: Source{"source name"}, Source: Source{"source name"},
...@@ -221,19 +203,15 @@ func TestSelectFieldsFromWithOrderBy(t *testing.T) { ...@@ -221,19 +203,15 @@ func TestSelectFieldsFromWithOrderBy(t *testing.T) {
stmt = Statement{ stmt = Statement{
Type: SqlSelect, Type: SqlSelect,
Columns: Columns{ Columns: Columns{
[]Column{
{"foo"}, {"foo"},
{"bar"}, {"bar"},
{"baz"}, {"baz"},
}, },
},
OrderBy: OrderBy{ OrderBy: OrderBy{
Columns: Columns{ Columns: Columns{
[]Column{
{"foo"}, {"foo"},
}, },
}, },
},
Source: Source{"source name"}, Source: Source{"source name"},
} }
...@@ -248,18 +226,14 @@ func TestSelectFieldsFromWithOrderBy(t *testing.T) { ...@@ -248,18 +226,14 @@ func TestSelectFieldsFromWithOrderBy(t *testing.T) {
stmt = Statement{ stmt = Statement{
Type: SqlSelect, Type: SqlSelect,
Columns: Columns{ Columns: Columns{
[]Column{
{"foo"}, {"foo"},
{"bar"}, {"bar"},
{"baz"}, {"baz"},
}, },
},
OrderBy: OrderBy{ OrderBy: OrderBy{
Columns: Columns{ Columns: Columns{
[]Column{
{"foo"}, {"foo"},
}, },
},
Sort: Sort{SqlSortAsc}, Sort: Sort{SqlSortAsc},
}, },
Source: Source{"source name"}, Source: Source{"source name"},
...@@ -276,18 +250,14 @@ func TestSelectFieldsFromWithOrderBy(t *testing.T) { ...@@ -276,18 +250,14 @@ func TestSelectFieldsFromWithOrderBy(t *testing.T) {
stmt = Statement{ stmt = Statement{
Type: SqlSelect, Type: SqlSelect,
Columns: Columns{ Columns: Columns{
[]Column{
{"foo"}, {"foo"},
{"bar"}, {"bar"},
{"baz"}, {"baz"},
}, },
},
OrderBy: OrderBy{ OrderBy: OrderBy{
Columns: Columns{ Columns: Columns{
[]Column{
{"foo"}, {"foo"},
}, },
},
Sort: Sort{SqlSortDesc}, Sort: Sort{SqlSortDesc},
}, },
Source: Source{"source name"}, Source: Source{"source name"},
...@@ -308,12 +278,10 @@ func TestSelectFieldsFromWhere(t *testing.T) { ...@@ -308,12 +278,10 @@ func TestSelectFieldsFromWhere(t *testing.T) {
stmt = Statement{ stmt = Statement{
Type: SqlSelect, Type: SqlSelect,
Columns: Columns{ Columns: Columns{
[]Column{
{"foo"}, {"foo"},
{"bar"}, {"bar"},
{"baz"}, {"baz"},
}, },
},
Source: Source{"source name"}, Source: Source{"source name"},
Where: Where{ Where: Where{
ColumnValue{Column{"baz"}, "=", Value{99}}, ColumnValue{Column{"baz"}, "=", Value{99}},
...@@ -335,12 +303,10 @@ func TestSelectFieldsFromWhereLimitOffset(t *testing.T) { ...@@ -335,12 +303,10 @@ func TestSelectFieldsFromWhereLimitOffset(t *testing.T) {
stmt = Statement{ stmt = Statement{
Type: SqlSelect, Type: SqlSelect,
Columns: Columns{ Columns: Columns{
[]Column{
{"foo"}, {"foo"},
{"bar"}, {"bar"},
{"baz"}, {"baz"},
}, },
},
Source: Source{"source name"}, Source: Source{"source name"},
Where: Where{ Where: Where{
ColumnValue{Column{"baz"}, "=", Value{99}}, ColumnValue{Column{"baz"}, "=", Value{99}},
...@@ -385,10 +351,8 @@ func TestUpdate(t *testing.T) { ...@@ -385,10 +351,8 @@ func TestUpdate(t *testing.T) {
Type: SqlUpdate, Type: SqlUpdate,
Source: Source{"source name"}, Source: Source{"source name"},
ColumnValues: ColumnValues{ ColumnValues: ColumnValues{
[]ColumnValue{
{Column{"foo"}, "=", Value{76}}, {Column{"foo"}, "=", Value{76}},
}, },
},
Where: Where{ Where: Where{
ColumnValue{Column{"baz"}, "=", Value{99}}, ColumnValue{Column{"baz"}, "=", Value{99}},
}, },
...@@ -405,11 +369,9 @@ func TestUpdate(t *testing.T) { ...@@ -405,11 +369,9 @@ func TestUpdate(t *testing.T) {
Type: SqlUpdate, Type: SqlUpdate,
Source: Source{"source name"}, Source: Source{"source name"},
ColumnValues: ColumnValues{ ColumnValues: ColumnValues{
[]ColumnValue{
{Column{"foo"}, "=", Value{76}}, {Column{"foo"}, "=", Value{76}},
{Column{"bar"}, "=", Value{Raw{"88"}}}, {Column{"bar"}, "=", Value{Raw{"88"}}},
}, },
},
Where: Where{ Where: Where{
ColumnValue{Column{"baz"}, "=", Value{99}}, ColumnValue{Column{"baz"}, "=", Value{99}},
}, },
...@@ -431,12 +393,10 @@ func TestInsert(t *testing.T) { ...@@ -431,12 +393,10 @@ func TestInsert(t *testing.T) {
Type: SqlInsert, Type: SqlInsert,
Source: Source{"source name"}, Source: Source{"source name"},
Columns: Columns{ Columns: Columns{
[]Column{
Column{"foo"}, Column{"foo"},
Column{"bar"}, Column{"bar"},
Column{"baz"}, Column{"baz"},
}, },
},
Values: Values{ Values: Values{
Value{"1"}, Value{"1"},
Value{2}, Value{2},
......
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
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment