Skip to content

Commit 200e3a0

Browse files
Fix sqlc benchmark queries to others.
1 parent cfc2a74 commit 200e3a0

File tree

8 files changed

+271
-202
lines changed

8 files changed

+271
-202
lines changed

bench/sqlc.go

Lines changed: 52 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
package bench
22

33
import (
4-
"database/sql"
5-
"github.com/efectn/go-orm-benchmarks/helper"
64
"testing"
75

6+
"github.com/efectn/go-orm-benchmarks/helper"
7+
88
"github.com/efectn/go-orm-benchmarks/bench/sqlc/db"
9+
"github.com/jackc/pgx/v5"
910
)
1011

1112
type Sqlc struct {
1213
helper.ORMInterface
1314
conn *db.Queries
14-
db *sql.DB
15+
db *pgx.Conn
1516
}
1617

1718
func CreateSqlc() helper.ORMInterface {
@@ -24,7 +25,7 @@ func (sqlc *Sqlc) Name() string {
2425

2526
func (sqlc *Sqlc) Init() error {
2627
var err error
27-
sqlc.db, err = sql.Open("pgx", helper.OrmSource)
28+
sqlc.db, err = pgx.Connect(ctx, helper.OrmSource)
2829
if err != nil {
2930
return err
3031
}
@@ -35,18 +36,39 @@ func (sqlc *Sqlc) Init() error {
3536
}
3637

3738
func (sqlc *Sqlc) Close() error {
38-
return sqlc.db.Close()
39+
return sqlc.db.Close(ctx)
3940
}
4041

4142
func (sqlc *Sqlc) Insert(b *testing.B) {
4243
m := NewModel()
4344

45+
args := db.CreateModelParams{
46+
Name: m.Name,
47+
Title: m.Title,
48+
Fax: m.Fax,
49+
Web: m.Web,
50+
Age: int32(m.Age),
51+
Right: m.Right,
52+
Counter: m.Counter,
53+
}
54+
4455
b.ReportAllocs()
4556
b.ResetTimer()
4657

4758
for i := 0; i < b.N; i++ {
4859
m.Id = 0
49-
_, err := sqlc.conn.CreateModel(ctx, db.CreateModelParams{
60+
err := sqlc.conn.CreateModel(ctx, args)
61+
if err != nil {
62+
helper.SetError(b, sqlc.Name(), "Insert", err.Error())
63+
}
64+
}
65+
}
66+
67+
func (sqlc *Sqlc) InsertMulti(b *testing.B) {
68+
ms := make([]db.InsertMultiParams, 0, 100)
69+
m := NewModel()
70+
for i := 0; i < 100; i++ {
71+
ms = append(ms, db.InsertMultiParams{
5072
Name: m.Name,
5173
Title: m.Title,
5274
Fax: m.Fax,
@@ -55,20 +77,22 @@ func (sqlc *Sqlc) Insert(b *testing.B) {
5577
Right: m.Right,
5678
Counter: m.Counter,
5779
})
80+
}
81+
82+
b.ReportAllocs()
83+
b.ResetTimer()
84+
85+
for i := 0; i < b.N; i++ {
86+
_, err := sqlc.conn.InsertMulti(ctx, ms)
5887
if err != nil {
59-
helper.SetError(b, sqlc.Name(), "Insert", err.Error())
88+
helper.SetError(b, sqlc.Name(), "InsertMulti", err.Error())
6089
}
6190
}
6291
}
6392

64-
func (sqlc *Sqlc) InsertMulti(b *testing.B) {
65-
helper.SetError(b, sqlc.Name(), "InsertMulti", "bulk-insert is not supported")
66-
}
67-
6893
func (sqlc *Sqlc) Update(b *testing.B) {
6994
m := NewModel()
70-
71-
_, err := sqlc.conn.CreateModel(ctx, db.CreateModelParams{
95+
err := sqlc.conn.CreateModel(ctx, db.CreateModelParams{
7296
Name: m.Name,
7397
Title: m.Title,
7498
Fax: m.Fax,
@@ -81,20 +105,21 @@ func (sqlc *Sqlc) Update(b *testing.B) {
81105
helper.SetError(b, sqlc.Name(), "Update", err.Error())
82106
}
83107

108+
args := db.UpdateModelParams{
109+
Name: m.Name,
110+
Title: m.Title,
111+
Fax: m.Fax,
112+
Web: m.Web,
113+
Age: int32(m.Age),
114+
Right: m.Right,
115+
Counter: m.Counter,
116+
ID: int32(m.Id),
117+
}
84118
b.ReportAllocs()
85119
b.ResetTimer()
86120

87121
for i := 0; i < b.N; i++ {
88-
err := sqlc.conn.UpdateModel(ctx, db.UpdateModelParams{
89-
Name: m.Name,
90-
Title: m.Title,
91-
Fax: m.Fax,
92-
Web: m.Web,
93-
Age: int32(m.Age),
94-
Right: m.Right,
95-
Counter: m.Counter,
96-
ID: int32(m.Id),
97-
})
122+
err := sqlc.conn.UpdateModel(ctx, args)
98123
if err != nil {
99124
helper.SetError(b, sqlc.Name(), "Update", err.Error())
100125
}
@@ -104,7 +129,7 @@ func (sqlc *Sqlc) Update(b *testing.B) {
104129
func (sqlc *Sqlc) Read(b *testing.B) {
105130
m := NewModel()
106131

107-
output, err := sqlc.conn.CreateModel(ctx, db.CreateModelParams{
132+
err := sqlc.conn.CreateModel(ctx, db.CreateModelParams{
108133
Name: m.Name,
109134
Title: m.Title,
110135
Fax: m.Fax,
@@ -113,7 +138,7 @@ func (sqlc *Sqlc) Read(b *testing.B) {
113138
Right: m.Right,
114139
Counter: m.Counter,
115140
})
116-
m.Id = int(output.ID)
141+
m.Id = 1
117142
if err != nil {
118143
helper.SetError(b, sqlc.Name(), "Read", err.Error())
119144
}
@@ -135,7 +160,7 @@ func (sqlc *Sqlc) ReadSlice(b *testing.B) {
135160
for i := 0; i < 100; i++ {
136161
m.Id = 0
137162

138-
_, err := sqlc.conn.CreateModel(ctx, db.CreateModelParams{
163+
err := sqlc.conn.CreateModel(ctx, db.CreateModelParams{
139164
Name: m.Name,
140165
Title: m.Title,
141166
Fax: m.Fax,
@@ -153,10 +178,7 @@ func (sqlc *Sqlc) ReadSlice(b *testing.B) {
153178
b.ResetTimer()
154179

155180
for i := 0; i < b.N; i++ {
156-
_, err := sqlc.conn.ListModels(ctx, db.ListModelsParams{
157-
ID: 0,
158-
Limit: 100,
159-
})
181+
_, err := sqlc.conn.ListModels(ctx)
160182
if err != nil {
161183
helper.SetError(b, sqlc.Name(), "ReadSlice", err.Error())
162184
}

bench/sqlc/db/copyfrom.go

Lines changed: 48 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bench/sqlc/db/db.go

Lines changed: 9 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bench/sqlc/db/models.go

Lines changed: 1 addition & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bench/sqlc/db/queries.sql.go

Lines changed: 21 additions & 32 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)