diff --git a/go/cmd/dolt/commands/sql.go b/go/cmd/dolt/commands/sql.go index 841792d257..ea92c7112d 100644 --- a/go/cmd/dolt/commands/sql.go +++ b/go/cmd/dolt/commands/sql.go @@ -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) diff --git a/integration-tests/bats/sql.bats b/integration-tests/bats/sql.bats index 53d1342cb9..9b5ba865e1 100755 --- a/integration-tests/bats/sql.bats +++ b/integration-tests/bats/sql.bats @@ -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 <