Merge pull request #5326 from dolthub/steph/query-timing

fixes timing for multi statement queries
This commit is contained in:
stephanie
2023-02-08 10:24:26 -08:00
committed by GitHub
2 changed files with 17 additions and 0 deletions

View File

@@ -23,6 +23,7 @@ import (
"path/filepath"
"strings"
"syscall"
"time"
"github.com/abiosoft/readline"
"github.com/dolthub/go-mysql-server/sql"
@@ -819,6 +820,8 @@ func runMultiStatementMode(ctx *sql.Context, se *engine.SqlEngine, input io.Read
}
}
// store start time for query
ctx.SetQueryTime(time.Now())
sqlSch, rowIter, err := processParsedQuery(ctx, query, se, sqlStatement)
if err != nil {
handleError(scanner.statementStartLine, query, err)

View File

@@ -2779,3 +2779,17 @@ SQL
run dolt sql -q 'INSERT INTO dts (`created_at`) VALUES ("0001-01-01 00:00:00");'
[ "$status" -eq 0 ]
}
@test "sql: multi statement query returns accurate timing" {
dolt sql -q "CREATE TABLE t(a int);"
dolt sql -q "INSERT INTO t VALUES (1);"
dolt sql -q "CREATE TABLE t1(b int);"
run dolt sql <<SQL
insert into t1 (SELECT * FROM t WHERE EXISTS(SELECT SLEEP(1) UNION SELECT 1));
insert into t1 (SELECT * FROM t WHERE EXISTS(SELECT SLEEP(2) UNION SELECT 1));
insert into t1 (SELECT * FROM t WHERE EXISTS(SELECT SLEEP(3) UNION SELECT 1));
SQL
[[ "$output" =~ "Query OK, 1 row affected (1".*" sec)" ]] || false
[[ "$output" =~ "Query OK, 1 row affected (2".*" sec)" ]] || false
[[ "$output" =~ "Query OK, 1 row affected (3".*" sec)" ]] || false
}