diff --git a/go/vt/vtgate/executor.go b/go/vt/vtgate/executor.go index fc83b8507bc..6a1652424ec 100644 --- a/go/vt/vtgate/executor.go +++ b/go/vt/vtgate/executor.go @@ -700,8 +700,10 @@ func (e *Executor) handleShow(ctx context.Context, safeSession *SafeSession, sql destKeyspace = show.OnTable.Qualifier.String() show.OnTable.Qualifier = sqlparser.NewTableIdent("") } else if show.ShowTablesOpt != nil { - destKeyspace = show.ShowTablesOpt.DbName - show.ShowTablesOpt.DbName = "" + if show.ShowTablesOpt.DbName != "" { + destKeyspace = show.ShowTablesOpt.DbName + show.ShowTablesOpt.DbName = "" + } } else { break } diff --git a/go/vt/vtgate/executor_test.go b/go/vt/vtgate/executor_test.go index 94846076e43..810d4ae498a 100644 --- a/go/vt/vtgate/executor_test.go +++ b/go/vt/vtgate/executor_test.go @@ -644,6 +644,10 @@ func TestExecutorShow(t *testing.T) { session.TargetString = KsTestUnsharded _, err = executor.Execute(context.Background(), "TestExecute", session, "show create table unknown", nil) require.NoError(t, err) + + _, err = executor.Execute(context.Background(), "TestExecute", session, "show full columns from table1", nil) + require.NoError(t, err) + // Reset target string so other tests dont fail. session.TargetString = "@master" _, err = executor.Execute(context.Background(), "TestExecute", session, fmt.Sprintf("show full columns from unknown from %v", KsTestUnsharded), nil) @@ -772,9 +776,7 @@ func TestExecutorShow(t *testing.T) { // Test SHOW FULL COLUMNS FROM where query has a qualifier _, err = executor.Execute(context.Background(), "TestExecute", session, fmt.Sprintf("show full columns from %v.table1", KsTestUnsharded), nil) - if err != nil { - t.Errorf("Unexpected error: %v", err) - } + require.NoError(t, err) // Just test for first & last. qr.Rows = [][]sqltypes.Value{qr.Rows[0], qr.Rows[len(qr.Rows)-1]}