Skip to content

Commit 4b59c4a

Browse files
Vasily RodionovVasily Rodionov
Vasily Rodionov
authored and
Vasily Rodionov
committed
new: Added Flavor method to Builder interface
1 parent e7bb45c commit 4b59c4a

19 files changed

+119
-89
lines changed

builder.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
type Builder interface {
1414
Build() (sql string, args []interface{})
1515
BuildWithFlavor(flavor Flavor, initialArg ...interface{}) (sql string, args []interface{})
16+
Flavor() Flavor
1617
}
1718

1819
type compiledBuilder struct {
@@ -30,6 +31,12 @@ func (cb *compiledBuilder) BuildWithFlavor(flavor Flavor, initialArg ...interfac
3031
return cb.args.CompileWithFlavor(cb.format, flavor, initialArg...)
3132
}
3233

34+
// Flavor returns flavor of builder
35+
// Always returns DefaultFlavor
36+
func (cb *compiledBuilder) Flavor() Flavor {
37+
return cb.args.Flavor
38+
}
39+
3340
type flavoredBuilder struct {
3441
builder Builder
3542
flavor Flavor
@@ -43,6 +50,11 @@ func (fb *flavoredBuilder) BuildWithFlavor(flavor Flavor, initialArg ...interfac
4350
return fb.builder.BuildWithFlavor(flavor, initialArg...)
4451
}
4552

53+
// Flavor returns flavor of builder
54+
func (fb *flavoredBuilder) Flavor() Flavor {
55+
return fb.flavor
56+
}
57+
4658
// WithFlavor creates a new Builder based on builder with a default flavor.
4759
func WithFlavor(builder Builder, flavor Flavor) Builder {
4860
return &flavoredBuilder{

builder_test.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,3 +132,22 @@ func TestBuildWithCQL(t *testing.T) {
132132
a.Equal(sql, "BEGIN BATCH USING TIMESTAMP ? INSERT INTO t1 (col1, col2) VALUES (?, ?); INSERT INTO t2 (col3, col4) VALUES (?, ?); APPLY BATCH;")
133133
a.Equal(args, []interface{}{1481124356754405, 1, 2, 3, 4})
134134
}
135+
136+
func TestBuilderGetFlavor(t *testing.T) {
137+
a := assert.New(t)
138+
139+
defaultBuilder := Build("SELECT * FROM foo WHERE id = $0", 1234)
140+
a.Equal(DefaultFlavor, defaultBuilder.Flavor())
141+
142+
buildfBuilder := Buildf("SELECT * FROM foo WHERE id = %v", 1234)
143+
a.Equal(DefaultFlavor, buildfBuilder.Flavor())
144+
145+
namedBuilder := Buildf("SELECT * FROM ${table} WHERE id = 1234", map[string]interface{}{
146+
"table": "foo",
147+
})
148+
a.Equal(DefaultFlavor, namedBuilder.Flavor())
149+
150+
flavoredBuilder := WithFlavor(Build("SELECT * FROM foo WHERE id = $0", 1234), PostgreSQL)
151+
a.Equal(PostgreSQL, flavoredBuilder.Flavor())
152+
153+
}

createtable.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,8 @@ func (ctb *CreateTableBuilder) SetFlavor(flavor Flavor) (old Flavor) {
158158
return
159159
}
160160

161-
func (ctb *CreateTableBuilder) GetFlavor() Flavor {
161+
// Flavor returns flavor of builder
162+
func (ctb *CreateTableBuilder) Flavor() Flavor {
162163
return ctb.args.Flavor
163164
}
164165

createtable_test.go

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -93,13 +93,12 @@ func ExampleCreateTableBuilder_NumDefine() {
9393
func TestCreateTableGetFlavor(t *testing.T) {
9494
a := assert.New(t)
9595
ctb := newCreateTableBuilder()
96-
postgresFlavor := PostgreSQL
97-
clickhouseFlavor := ClickHouse
98-
ctb.SetFlavor(postgresFlavor)
99-
flavor := ctb.GetFlavor()
100-
a.Equal(postgresFlavor, flavor)
101-
102-
ctbClick := clickhouseFlavor.NewCreateTableBuilder()
103-
flavor = ctbClick.GetFlavor()
104-
a.Equal(clickhouseFlavor, flavor)
96+
97+
ctb.SetFlavor(PostgreSQL)
98+
flavor := ctb.Flavor()
99+
a.Equal(PostgreSQL, flavor)
100+
101+
ctbClick := ClickHouse.NewCreateTableBuilder()
102+
flavor = ctbClick.Flavor()
103+
a.Equal(ClickHouse, flavor)
105104
}

cte.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,8 @@ func (cteb *CTEBuilder) SetFlavor(flavor Flavor) (old Flavor) {
112112
return
113113
}
114114

115-
func (cteb *CTEBuilder) GetFlavor() Flavor {
115+
// Flavor returns flavor of builder
116+
func (cteb *CTEBuilder) Flavor() Flavor {
116117
return cteb.args.Flavor
117118
}
118119

cte_test.go

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -134,27 +134,25 @@ func TestRecursiveCTEBuilder(t *testing.T) {
134134
func TestCTEGetFlavor(t *testing.T) {
135135
a := assert.New(t)
136136
cteb := newCTEBuilder()
137-
postgresFlavor := PostgreSQL
138-
clickhouseFlavor := ClickHouse
139-
cteb.SetFlavor(postgresFlavor)
140-
flavor := cteb.GetFlavor()
141-
a.Equal(postgresFlavor, flavor)
142-
143-
ctebClick := clickhouseFlavor.NewCTEBuilder()
144-
flavor = ctebClick.GetFlavor()
145-
a.Equal(clickhouseFlavor, flavor)
137+
138+
cteb.SetFlavor(PostgreSQL)
139+
flavor := cteb.Flavor()
140+
a.Equal(PostgreSQL, flavor)
141+
142+
ctebClick := ClickHouse.NewCTEBuilder()
143+
flavor = ctebClick.Flavor()
144+
a.Equal(ClickHouse, flavor)
146145
}
147146

148147
func TestCTEQueryBuilderGetFlavor(t *testing.T) {
149148
a := assert.New(t)
150149
ctetb := newCTEQueryBuilder()
151-
postgresFlavor := PostgreSQL
152-
clickhouseFlavor := ClickHouse
153-
ctetb.SetFlavor(postgresFlavor)
154-
flavor := ctetb.GetFlavor()
155-
a.Equal(postgresFlavor, flavor)
156-
157-
ctetbClick := clickhouseFlavor.NewCTEQueryBuilder()
158-
flavor = ctetbClick.GetFlavor()
159-
a.Equal(clickhouseFlavor, flavor)
150+
151+
ctetb.SetFlavor(PostgreSQL)
152+
flavor := ctetb.Flavor()
153+
a.Equal(PostgreSQL, flavor)
154+
155+
ctetbClick := ClickHouse.NewCTEQueryBuilder()
156+
flavor = ctetbClick.Flavor()
157+
a.Equal(ClickHouse, flavor)
160158
}

ctequery.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,8 @@ func (ctetb *CTEQueryBuilder) SetFlavor(flavor Flavor) (old Flavor) {
124124
return
125125
}
126126

127-
func (ctetb *CTEQueryBuilder) GetFlavor() Flavor {
127+
// Flavor returns flavor of builder
128+
func (ctetb *CTEQueryBuilder) Flavor() Flavor {
128129
return ctetb.args.Flavor
129130
}
130131

delete.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,8 @@ func (db *DeleteBuilder) SetFlavor(flavor Flavor) (old Flavor) {
200200
return
201201
}
202202

203-
func (db *DeleteBuilder) GetFlavor() Flavor {
203+
// Flavor returns flavor of builder
204+
func (db *DeleteBuilder) Flavor() Flavor {
204205
return db.args.Flavor
205206
}
206207

delete_test.go

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -87,13 +87,12 @@ func ExampleDeleteBuilder_With() {
8787
func TestDeleteBuilderGetFlavor(t *testing.T) {
8888
a := assert.New(t)
8989
db := newDeleteBuilder()
90-
postgresFlavor := PostgreSQL
91-
clickhouseFlavor := ClickHouse
92-
db.SetFlavor(postgresFlavor)
93-
flavor := db.GetFlavor()
94-
a.Equal(postgresFlavor, flavor)
95-
96-
dbClick := clickhouseFlavor.NewDeleteBuilder()
97-
flavor = dbClick.GetFlavor()
98-
a.Equal(clickhouseFlavor, flavor)
90+
91+
db.SetFlavor(PostgreSQL)
92+
flavor := db.Flavor()
93+
a.Equal(PostgreSQL, flavor)
94+
95+
dbClick := ClickHouse.NewDeleteBuilder()
96+
flavor = dbClick.Flavor()
97+
a.Equal(ClickHouse, flavor)
9998
}

insert.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,8 @@ func (ib *InsertBuilder) SetFlavor(flavor Flavor) (old Flavor) {
213213
return
214214
}
215215

216-
func (ib *InsertBuilder) GetFlavor() Flavor {
216+
// Flavor returns flavor of builder
217+
func (ib *InsertBuilder) Flavor() Flavor {
217218
return ib.args.Flavor
218219
}
219220

insert_test.go

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -248,13 +248,12 @@ func ExampleInsertBuilder_NumValue() {
248248
func TestInsertBuilderGetFlavor(t *testing.T) {
249249
a := assert.New(t)
250250
ib := newInsertBuilder()
251-
postgresFlavor := PostgreSQL
252-
clickhouseFlavor := ClickHouse
253-
ib.SetFlavor(postgresFlavor)
254-
flavor := ib.GetFlavor()
255-
a.Equal(postgresFlavor, flavor)
256-
257-
ibClick := clickhouseFlavor.NewInsertBuilder()
258-
flavor = ibClick.GetFlavor()
259-
a.Equal(clickhouseFlavor, flavor)
251+
252+
ib.SetFlavor(PostgreSQL)
253+
flavor := ib.Flavor()
254+
a.Equal(PostgreSQL, flavor)
255+
256+
ibClick := ClickHouse.NewInsertBuilder()
257+
flavor = ibClick.Flavor()
258+
a.Equal(ClickHouse, flavor)
260259
}

select.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -537,7 +537,8 @@ func (sb *SelectBuilder) SetFlavor(flavor Flavor) (old Flavor) {
537537
return
538538
}
539539

540-
func (sb *SelectBuilder) GetFlavor() Flavor {
540+
// Flavor returns flavor of builder
541+
func (sb *SelectBuilder) Flavor() Flavor {
541542
return sb.args.Flavor
542543
}
543544

select_test.go

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -379,13 +379,12 @@ func TestSelectBuilderSelectMore(t *testing.T) {
379379
func TestSelectBuilderGetFlavor(t *testing.T) {
380380
a := assert.New(t)
381381
sb := newSelectBuilder()
382-
postgresFlavor := PostgreSQL
383-
clickhouseFlavor := ClickHouse
384-
sb.SetFlavor(postgresFlavor)
385-
flavor := sb.GetFlavor()
386-
a.Equal(postgresFlavor, flavor)
387-
388-
sbClick := clickhouseFlavor.NewSelectBuilder()
389-
flavor = sbClick.GetFlavor()
390-
a.Equal(clickhouseFlavor, flavor)
382+
383+
sb.SetFlavor(PostgreSQL)
384+
flavor := sb.Flavor()
385+
a.Equal(PostgreSQL, flavor)
386+
387+
sbClick := ClickHouse.NewSelectBuilder()
388+
flavor = sbClick.Flavor()
389+
a.Equal(ClickHouse, flavor)
391390
}

union.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,8 @@ func (ub *UnionBuilder) SetFlavor(flavor Flavor) (old Flavor) {
204204
return
205205
}
206206

207-
func (ub *UnionBuilder) GetFlavor() Flavor {
207+
// Flavor returns flavor of builder
208+
func (ub *UnionBuilder) Flavor() Flavor {
208209
return ub.args.Flavor
209210
}
210211

union_test.go

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,12 @@ func TestUnionForSQLite(t *testing.T) {
9595
func TestUnionBuilderGetFlavor(t *testing.T) {
9696
a := assert.New(t)
9797
ub := newUnionBuilder()
98-
postgresFlavor := PostgreSQL
99-
clickhouseFlavor := ClickHouse
100-
ub.SetFlavor(postgresFlavor)
101-
flavor := ub.GetFlavor()
102-
a.Equal(postgresFlavor, flavor)
103-
104-
ubClick := clickhouseFlavor.NewUnionBuilder()
105-
flavor = ubClick.GetFlavor()
106-
a.Equal(clickhouseFlavor, flavor)
98+
99+
ub.SetFlavor(PostgreSQL)
100+
flavor := ub.Flavor()
101+
a.Equal(PostgreSQL, flavor)
102+
103+
ubClick := ClickHouse.NewUnionBuilder()
104+
flavor = ubClick.Flavor()
105+
a.Equal(ClickHouse, flavor)
107106
}

update.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,8 @@ func (ub *UpdateBuilder) SetFlavor(flavor Flavor) (old Flavor) {
269269
return
270270
}
271271

272-
func (ub *UpdateBuilder) GetFlavor() Flavor {
272+
// Flavor returns flavor of builder
273+
func (ub *UpdateBuilder) Flavor() Flavor {
273274
return ub.args.Flavor
274275
}
275276

update_test.go

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -153,13 +153,12 @@ func ExampleUpdateBuilder_With() {
153153
func TestUpdateBuilderGetFlavor(t *testing.T) {
154154
a := assert.New(t)
155155
ub := newUpdateBuilder()
156-
postgresFlavor := PostgreSQL
157-
clickhouseFlavor := ClickHouse
158-
ub.SetFlavor(postgresFlavor)
159-
flavor := ub.GetFlavor()
160-
a.Equal(postgresFlavor, flavor)
161-
162-
ubClick := clickhouseFlavor.NewUpdateBuilder()
163-
flavor = ubClick.GetFlavor()
164-
a.Equal(clickhouseFlavor, flavor)
156+
157+
ub.SetFlavor(PostgreSQL)
158+
flavor := ub.Flavor()
159+
a.Equal(PostgreSQL, flavor)
160+
161+
ubClick := ClickHouse.NewUpdateBuilder()
162+
flavor = ubClick.Flavor()
163+
a.Equal(ClickHouse, flavor)
165164
}

whereclause.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,8 @@ func (wc *WhereClause) SetFlavor(flavor Flavor) (old Flavor) {
8686
return
8787
}
8888

89-
func (wc *WhereClause) GetFlavor() Flavor {
89+
// Flavor returns flavor of clause
90+
func (wc *WhereClause) Flavor() Flavor {
9091
return wc.flavor
9192
}
9293

whereclause_test.go

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -315,20 +315,18 @@ func TestEmptyStringsWhereAddWhereExpr(t *testing.T) {
315315
func TestWhereClauseGetFlavor(t *testing.T) {
316316
a := assert.New(t)
317317
wc := NewWhereClause()
318-
postgresFlavor := PostgreSQL
319-
wc.SetFlavor(postgresFlavor)
320-
flavor := wc.GetFlavor()
321-
a.Equal(postgresFlavor, flavor)
318+
wc.SetFlavor(PostgreSQL)
319+
flavor := wc.Flavor()
320+
a.Equal(PostgreSQL, flavor)
322321
}
323322

324323
func TestWhereClauseCopyGetFlavor(t *testing.T) {
325324
a := assert.New(t)
326325

327326
wc := NewWhereClause()
328-
postgresFlavor := PostgreSQL
329-
wc.SetFlavor(postgresFlavor)
327+
wc.SetFlavor(PostgreSQL)
330328

331329
wcCopy := CopyWhereClause(wc)
332-
flavor := wcCopy.GetFlavor()
333-
a.Equal(postgresFlavor, flavor)
330+
flavor := wcCopy.Flavor()
331+
a.Equal(PostgreSQL, flavor)
334332
}

0 commit comments

Comments
 (0)