From a4d64c2b8877ec233f785c01cae564934883df28 Mon Sep 17 00:00:00 2001 From: Ewan Chou Date: Fri, 4 Nov 2016 19:57:04 +0800 Subject: [PATCH] tidb: set one statement query string instead of multi-statement query string (#1950) When user executing multi-statement query, we should set only one statement query. --- session.go | 2 +- session_test.go | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/session.go b/session.go index 8820876f3a..75197a5724 100644 --- a/session.go +++ b/session.go @@ -456,7 +456,7 @@ func (s *session) Execute(sql string) ([]ast.RecordSet, error) { sessionExecuteCompileDuration.Observe(time.Since(startTS).Seconds()) s.stmtState = ph.StartStatement(sql, connID, perfschema.CallerNameSessionExecute, rawStmts[i]) - s.SetValue(context.QueryString, sql) + s.SetValue(context.QueryString, st.OriginText()) startTS = time.Now() r, err := runStmt(s, st) diff --git a/session_test.go b/session_test.go index 8eb1ac0ef3..9b4c7ad444 100644 --- a/session_test.go +++ b/session_test.go @@ -2447,3 +2447,14 @@ func (s *testSessionSuite) TestSelectHaving(c *C) { mustExecMultiSQL(c, se, "select * from select_having_test group by id having null is not null;") mustExecMultiSQL(c, se, "drop table select_having_test") } + +func (s *testSessionSuite) TestQueryString(c *C) { + store := newStore(c, s.dbName) + se := newSession(c, store, s.dbName) + mustExecute(se, "use "+s.dbName) + _, err := se.Execute("create table mutil1 (a int);create table multi2 (a int)") + c.Assert(err, IsNil) + ctx := se.(context.Context) + queryStr := ctx.Value(context.QueryString) + c.Assert(queryStr, Equals, "create table multi2 (a int)") +}