diff --git a/go/performance/microsysbench/sysbench_test.go b/go/performance/microsysbench/sysbench_test.go index 0a2795016f2..117ccd71de4 100644 --- a/go/performance/microsysbench/sysbench_test.go +++ b/go/performance/microsysbench/sysbench_test.go @@ -24,6 +24,7 @@ import ( "strings" "testing" + "github.com/dolthub/go-mysql-server/server" "github.com/dolthub/go-mysql-server/sql" "github.com/stretchr/testify/require" @@ -60,6 +61,18 @@ func BenchmarkOltpPointSelect(b *testing.B) { }) } +func BenchmarkTableScan(b *testing.B) { + benchmarkSysbenchQuery(b, func(int) string { + return "SELECT * FROM sbtest1" + }) +} + +func BenchmarkOltpIndexScan(b *testing.B) { + benchmarkSysbenchQuery(b, func(int) string { + return "SELECT * FROM sbtest1 WHERE k > 0" + }) +} + func BenchmarkOltpJoinScan(b *testing.B) { benchmarkSysbenchQuery(b, func(int) string { return `select a.id, a.k @@ -109,12 +122,17 @@ func BenchmarkSelectRandomRanges(b *testing.B) { func benchmarkSysbenchQuery(b *testing.B, getQuery func(int) string) { ctx, eng := setupBenchmark(b, dEnv) for i := 0; i < b.N; i++ { - _, iter, _, err := eng.Query(ctx, getQuery(i)) + schema, iter, _, err := eng.Query(ctx, getQuery(i)) require.NoError(b, err) + i := 0 for { - if _, err = iter.Next(ctx); err != nil { + i++ + row, err := iter.Next(ctx) + if err != nil { break } + outputRow, err := server.RowToSQL(ctx, schema, row, nil) + _ = outputRow } require.Error(b, io.EOF) err = iter.Close(ctx)