diff --git a/go/vt/sqlparser/analyzer.go b/go/vt/sqlparser/analyzer.go index 33ad99a9f26..98b7677a1f3 100644 --- a/go/vt/sqlparser/analyzer.go +++ b/go/vt/sqlparser/analyzer.go @@ -137,7 +137,7 @@ func ASTToStatementType(stmt Statement) StatementType { // CanNormalize takes Statement and returns if the statement can be normalized. func CanNormalize(stmt Statement) bool { switch stmt.(type) { - case *Select, *Union, *Insert, *Update, *Delete, *Set, *CallProc, *Stream, *VExplainStmt, *Show: // TODO: we could merge this logic into ASTrewriter + case *Select, *Union, *Insert, *Update, *Delete, *Set, *CallProc, *Stream, *VExplainStmt: // TODO: we could merge this logic into ASTrewriter return true } return false diff --git a/go/vt/vtgate/executor_test.go b/go/vt/vtgate/executor_test.go index 904805e789b..5e7e5c2a07d 100644 --- a/go/vt/vtgate/executor_test.go +++ b/go/vt/vtgate/executor_test.go @@ -1860,6 +1860,30 @@ func TestPassthroughDDL(t *testing.T) { sbc2.Queries = nil } +func TestShowStatus(t *testing.T) { + executor, sbc1, _, _, ctx := createExecutorEnvWithConfig(t, createExecutorConfigWithNormalizer()) + session := &vtgatepb.Session{ + TargetString: "TestExecutor", + } + + sql1 := "show slave status" + _, err := executorExec(ctx, executor, session, sql1, nil) + require.NoError(t, err) + + sql2 := "show replica status" + _, err = executorExec(ctx, executor, session, sql2, nil) + require.NoError(t, err) + + wantQueries := []*querypb.BoundQuery{{ + Sql: sql1, + BindVariables: map[string]*querypb.BindVariable{}, + }, { + Sql: sql2, + BindVariables: map[string]*querypb.BindVariable{}, + }} + assert.Equal(t, wantQueries, sbc1.Queries) +} + func TestParseEmptyTargetSingleKeyspace(t *testing.T) { r, _, _, _, _ := createExecutorEnv(t)