diff --git a/go/trace/trace.go b/go/trace/trace.go index 768d98a546e..25a96e78a7b 100644 --- a/go/trace/trace.go +++ b/go/trace/trace.go @@ -147,8 +147,9 @@ func StartTracing(serviceName string) io.Closer { } currentTracer = tracer - - log.Infof("successfully started tracing with [%s]", *tracingServer) + if *tracingServer != "noop" { + log.Infof("successfully started tracing with [%s]", *tracingServer) + } return closer } diff --git a/go/vt/vtgate/plan_executor_test.go b/go/vt/vtgate/plan_executor_test.go index 29752b8bc1e..4714729e253 100644 --- a/go/vt/vtgate/plan_executor_test.go +++ b/go/vt/vtgate/plan_executor_test.go @@ -1120,13 +1120,24 @@ func TestPlanExecutorExplain(t *testing.T) { logChan := QueryLogger.Subscribe("Test") defer QueryLogger.Unsubscribe(logChan) - sql := "explain format = vitess select * from user" - result, err := executorExec(executor, sql, map[string]*querypb.BindVariable{}) + bindVars := map[string]*querypb.BindVariable{} + result, err := executorExec(executor, "explain format = vitess select * from user", bindVars) require.NoError(t, err) - resultText := fmt.Sprintf("%v", result.Rows) - utils.MustMatch(t, `[[VARCHAR("Route") VARCHAR("SelectScatter") VARCHAR("TestExecutor") VARCHAR("") VARCHAR("UNKNOWN") VARCHAR("select * from user")]]`, resultText, "") + require.Equal(t, + `[[VARCHAR("Route") VARCHAR("SelectScatter") VARCHAR("TestExecutor") VARCHAR("") VARCHAR("UNKNOWN") VARCHAR("select * from user")]]`, + fmt.Sprintf("%v", result.Rows)) + result, err = executorExec(executor, "explain format = vitess select 42", bindVars) + require.NoError(t, err) + expected := + `[[VARCHAR("Projection") VARCHAR("") VARCHAR("") VARCHAR("") VARCHAR("UNKNOWN") VARCHAR("")] ` + + `[VARCHAR("└─ SingleRow") VARCHAR("") VARCHAR("") VARCHAR("") VARCHAR("UNKNOWN") VARCHAR("")]]` + require.Equal(t, + `[[VARCHAR("Projection") VARCHAR("") VARCHAR("") VARCHAR("") VARCHAR("UNKNOWN") VARCHAR("")] `+ + `[VARCHAR("└─ SingleRow") VARCHAR("") VARCHAR("") VARCHAR("") VARCHAR("UNKNOWN") VARCHAR("")]]`, + expected, + fmt.Sprintf("%v", result.Rows), fmt.Sprintf("%v", result.Rows)) } func TestPlanExecutorOtherAdmin(t *testing.T) { diff --git a/go/vt/vtgate/planbuilder/explain.go b/go/vt/vtgate/planbuilder/explain.go index 64f11e9b080..74d912dddbf 100644 --- a/go/vt/vtgate/planbuilder/explain.go +++ b/go/vt/vtgate/planbuilder/explain.go @@ -47,13 +47,18 @@ func buildExplainPlan(input engine.Primitive) (engine.Primitive, error) { if line.descr.TargetDestination != nil { targetDest = line.descr.TargetDestination.String() } + keyspaceName := "" + if line.descr.Keyspace != nil { + keyspaceName = line.descr.Keyspace.Name + } + rows = append(rows, []sqltypes.Value{ - sqltypes.NewVarChar(line.header + line.descr.OperatorType), - sqltypes.NewVarChar(line.descr.Variant), - sqltypes.NewVarChar(line.descr.Keyspace.Name), - sqltypes.NewVarChar(targetDest), - sqltypes.NewVarChar(line.descr.TargetTabletType.String()), - sqltypes.NewVarChar(extractQuery(line.descr.Other)), + sqltypes.NewVarChar(line.header + line.descr.OperatorType), // operator + sqltypes.NewVarChar(line.descr.Variant), // variant + sqltypes.NewVarChar(keyspaceName), // keyspace + sqltypes.NewVarChar(targetDest), // destination + sqltypes.NewVarChar(line.descr.TargetTabletType.String()), // tabletType + sqltypes.NewVarChar(extractQuery(line.descr.Other)), // query }) }