Skip to content

Commit d738e77

Browse files
author
Carlos Reventlov
committed
Merge pull request #22 from wei2912/master
sqlite: Benchmark applying BEGIN and END transaction optimizations
2 parents 100dea4 + c191824 commit d738e77

File tree

1 file changed

+36
-4
lines changed

1 file changed

+36
-4
lines changed

sqlite/sqlite_test.go

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@ func TestTruncate(t *testing.T) {
103103

104104
// Appends maps and structs.
105105
func TestAppend(t *testing.T) {
106-
107106
sess, err := db.Open(wrapperName, settings)
108107

109108
if err != nil {
@@ -189,7 +188,6 @@ func TestAppend(t *testing.T) {
189188

190189
// Tries to find and fetch rows.
191190
func TestFind(t *testing.T) {
192-
193191
var err error
194192
var res db.Result
195193

@@ -320,7 +318,6 @@ func TestFind(t *testing.T) {
320318

321319
// Tests limit and offset.
322320
func TestLimitOffset(t *testing.T) {
323-
324321
var err error
325322

326323
sess, err := db.Open(wrapperName, settings)
@@ -398,7 +395,6 @@ func TestUpdate(t *testing.T) {
398395

399396
// Tries to add test data and relations.
400397
func TestPopulate(t *testing.T) {
401-
402398
sess, err := db.Open(wrapperName, settings)
403399

404400
if err != nil {
@@ -786,6 +782,42 @@ func BenchmarkAppendDbItem(b *testing.B) {
786782
}
787783
}
788784

785+
// Contributed by wei2912
786+
// See: https://github.com/gosexy/db/issues/20#issuecomment-20167939
787+
// Applying the BEGIN and END transaction optimizations.
788+
func BenchmarkAppendDbItem_Transaction(b *testing.B) {
789+
sess, err := db.Open(wrapperName, settings)
790+
791+
if err != nil {
792+
b.Fatalf(err.Error())
793+
}
794+
795+
defer sess.Close()
796+
797+
people := sess.ExistentCollection("people")
798+
people.Truncate()
799+
800+
driver := sess.Driver().(*sql.DB)
801+
802+
b.ResetTimer()
803+
_, err = driver.Exec(`BEGIN`)
804+
if err != nil {
805+
b.Fatalf(err.Error())
806+
}
807+
808+
for i := 0; i < b.N; i++ {
809+
_, err = people.Append(db.Item{"name": "john"})
810+
if err != nil {
811+
b.Fatalf(err.Error())
812+
}
813+
}
814+
815+
_, err = driver.Exec(`END`)
816+
if err != nil {
817+
b.Fatalf(err.Error())
818+
}
819+
}
820+
789821
func BenchmarkAppendStruct(b *testing.B) {
790822
sess, err := db.Open(wrapperName, settings)
791823

0 commit comments

Comments
 (0)