Skip to content

Commit e7bb45c

Browse files
Vasily RodionovVasily Rodionov
Vasily Rodionov
authored and
Vasily Rodionov
committed
new: flavor getters
1 parent be6fb8b commit e7bb45c

17 files changed

+178
-0
lines changed

createtable.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,10 @@ func (ctb *CreateTableBuilder) SetFlavor(flavor Flavor) (old Flavor) {
158158
return
159159
}
160160

161+
func (ctb *CreateTableBuilder) GetFlavor() Flavor {
162+
return ctb.args.Flavor
163+
}
164+
161165
// Var returns a placeholder for value.
162166
func (ctb *CreateTableBuilder) Var(arg interface{}) string {
163167
return ctb.args.Add(arg)

createtable_test.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ package sqlbuilder
55

66
import (
77
"fmt"
8+
"testing"
9+
10+
"github.com/huandu/go-assert"
811
)
912

1013
func ExampleCreateTable() {
@@ -86,3 +89,17 @@ func ExampleCreateTableBuilder_NumDefine() {
8689
// Output:
8790
// 5
8891
}
92+
93+
func TestCreateTableGetFlavor(t *testing.T) {
94+
a := assert.New(t)
95+
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)
105+
}

cte.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,10 @@ func (cteb *CTEBuilder) SetFlavor(flavor Flavor) (old Flavor) {
112112
return
113113
}
114114

115+
func (cteb *CTEBuilder) GetFlavor() Flavor {
116+
return cteb.args.Flavor
117+
}
118+
115119
// SQL adds an arbitrary sql to current position.
116120
func (cteb *CTEBuilder) SQL(sql string) *CTEBuilder {
117121
cteb.injection.SQL(cteb.marker, sql)

cte_test.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,3 +130,31 @@ func TestRecursiveCTEBuilder(t *testing.T) {
130130
sql = ctetb.String()
131131
a.Equal(sql, "/* table init */ t (a, b) /* after table */ AS (SELECT a, b FROM t) /* after table as */")
132132
}
133+
134+
func TestCTEGetFlavor(t *testing.T) {
135+
a := assert.New(t)
136+
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)
146+
}
147+
148+
func TestCTEQueryBuilderGetFlavor(t *testing.T) {
149+
a := assert.New(t)
150+
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)
160+
}

ctequery.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,10 @@ func (ctetb *CTEQueryBuilder) SetFlavor(flavor Flavor) (old Flavor) {
124124
return
125125
}
126126

127+
func (ctetb *CTEQueryBuilder) GetFlavor() Flavor {
128+
return ctetb.args.Flavor
129+
}
130+
127131
// SQL adds an arbitrary sql to current position.
128132
func (ctetb *CTEQueryBuilder) SQL(sql string) *CTEQueryBuilder {
129133
ctetb.injection.SQL(ctetb.marker, sql)

delete.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,10 @@ func (db *DeleteBuilder) SetFlavor(flavor Flavor) (old Flavor) {
200200
return
201201
}
202202

203+
func (db *DeleteBuilder) GetFlavor() Flavor {
204+
return db.args.Flavor
205+
}
206+
203207
// SQL adds an arbitrary sql to current position.
204208
func (db *DeleteBuilder) SQL(sql string) *DeleteBuilder {
205209
db.injection.SQL(db.marker, sql)

delete_test.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ package sqlbuilder
55

66
import (
77
"fmt"
8+
"testing"
9+
10+
"github.com/huandu/go-assert"
811
)
912

1013
func ExampleDeleteFrom() {
@@ -80,3 +83,17 @@ func ExampleDeleteBuilder_With() {
8083
// Output:
8184
// WITH users AS (SELECT id, name FROM users WHERE name IS NULL) DELETE FROM orders WHERE users.id = orders.user_id
8285
}
86+
87+
func TestDeleteBuilderGetFlavor(t *testing.T) {
88+
a := assert.New(t)
89+
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)
99+
}

insert.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,10 @@ func (ib *InsertBuilder) SetFlavor(flavor Flavor) (old Flavor) {
213213
return
214214
}
215215

216+
func (ib *InsertBuilder) GetFlavor() Flavor {
217+
return ib.args.Flavor
218+
}
219+
216220
// Var returns a placeholder for value.
217221
func (ib *InsertBuilder) Var(arg interface{}) string {
218222
return ib.args.Add(arg)

insert_test.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ package sqlbuilder
55

66
import (
77
"fmt"
8+
"testing"
9+
10+
"github.com/huandu/go-assert"
811
)
912

1013
func ExampleInsertInto() {
@@ -241,3 +244,17 @@ func ExampleInsertBuilder_NumValue() {
241244
// Output:
242245
// 2
243246
}
247+
248+
func TestInsertBuilderGetFlavor(t *testing.T) {
249+
a := assert.New(t)
250+
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)
260+
}

select.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -537,6 +537,10 @@ func (sb *SelectBuilder) SetFlavor(flavor Flavor) (old Flavor) {
537537
return
538538
}
539539

540+
func (sb *SelectBuilder) GetFlavor() Flavor {
541+
return sb.args.Flavor
542+
}
543+
540544
// SQL adds an arbitrary sql to current position.
541545
func (sb *SelectBuilder) SQL(sql string) *SelectBuilder {
542546
sb.injection.SQL(sb.marker, sql)

select_test.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,3 +375,17 @@ func TestSelectBuilderSelectMore(t *testing.T) {
375375
).SQL("/* second */").SelectMore("name").SQL("/* third */")
376376
a.Equal(sb.String(), "SELECT id, name /* first */ /* third */ WHERE name IS NOT NULL /* second */")
377377
}
378+
379+
func TestSelectBuilderGetFlavor(t *testing.T) {
380+
a := assert.New(t)
381+
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)
391+
}

union.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,10 @@ func (ub *UnionBuilder) SetFlavor(flavor Flavor) (old Flavor) {
204204
return
205205
}
206206

207+
func (ub *UnionBuilder) GetFlavor() Flavor {
208+
return ub.args.Flavor
209+
}
210+
207211
// Var returns a placeholder for value.
208212
func (ub *UnionBuilder) Var(arg interface{}) string {
209213
return ub.args.Add(arg)

union_test.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,3 +91,17 @@ func TestUnionForSQLite(t *testing.T) {
9191

9292
a.Equal(sql, "SELECT id, name FROM users WHERE created_at > DATE('now', '-15 days') UNION ALL SELECT id, nick_name FROM user_extras WHERE status IN (1, 2, 3) ORDER BY id")
9393
}
94+
95+
func TestUnionBuilderGetFlavor(t *testing.T) {
96+
a := assert.New(t)
97+
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)
107+
}

update.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,10 @@ func (ub *UpdateBuilder) SetFlavor(flavor Flavor) (old Flavor) {
269269
return
270270
}
271271

272+
func (ub *UpdateBuilder) GetFlavor() Flavor {
273+
return ub.args.Flavor
274+
}
275+
272276
// SQL adds an arbitrary sql to current position.
273277
func (ub *UpdateBuilder) SQL(sql string) *UpdateBuilder {
274278
ub.injection.SQL(ub.marker, sql)

update_test.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,3 +149,17 @@ func ExampleUpdateBuilder_With() {
149149
// Output:
150150
// WITH users AS (SELECT id, name FROM users WHERE prime IS NOT NULL) UPDATE orders SET orders.transport_fee = 0 WHERE users.id = orders.user_id
151151
}
152+
153+
func TestUpdateBuilderGetFlavor(t *testing.T) {
154+
a := assert.New(t)
155+
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)
165+
}

whereclause.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,10 @@ func (wc *WhereClause) SetFlavor(flavor Flavor) (old Flavor) {
8686
return
8787
}
8888

89+
func (wc *WhereClause) GetFlavor() Flavor {
90+
return wc.flavor
91+
}
92+
8993
// AddWhereExpr adds an AND expression to WHERE clause with the specified arguments.
9094
func (wc *WhereClause) AddWhereExpr(args *Args, andExpr ...string) *WhereClause {
9195
if len(andExpr) == 0 {

whereclause_test.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,3 +311,24 @@ func TestEmptyStringsWhereAddWhereExpr(t *testing.T) {
311311
a.Equal(ub.String(), "UPDATE t SET foo = 1 ")
312312
a.Equal(db.String(), "DELETE FROM t ")
313313
}
314+
315+
func TestWhereClauseGetFlavor(t *testing.T) {
316+
a := assert.New(t)
317+
wc := NewWhereClause()
318+
postgresFlavor := PostgreSQL
319+
wc.SetFlavor(postgresFlavor)
320+
flavor := wc.GetFlavor()
321+
a.Equal(postgresFlavor, flavor)
322+
}
323+
324+
func TestWhereClauseCopyGetFlavor(t *testing.T) {
325+
a := assert.New(t)
326+
327+
wc := NewWhereClause()
328+
postgresFlavor := PostgreSQL
329+
wc.SetFlavor(postgresFlavor)
330+
331+
wcCopy := CopyWhereClause(wc)
332+
flavor := wcCopy.GetFlavor()
333+
a.Equal(postgresFlavor, flavor)
334+
}

0 commit comments

Comments
 (0)