func convertShow(converter *expressionConverter, v *ast.ShowStmt) (*stmts.ShowStmt, error) { oldShow := &stmts.ShowStmt{ DBName: v.DBName, Flag: v.Flag, Full: v.Full, GlobalScope: v.GlobalScope, Text: v.Text(), } if v.Table != nil { oldShow.TableIdent = table.Ident{ Schema: v.Table.Schema, Name: v.Table.Name, } } if v.Column != nil { oldShow.ColumnName = joinColumnName(v.Column) } if v.Where != nil { oldWhere, err := convertExpr(converter, v.Where) if err != nil { return nil, errors.Trace(err) } oldShow.Where = oldWhere } if v.Pattern != nil { oldPattern, err := convertExpr(converter, v.Pattern) if err != nil { return nil, errors.Trace(err) } oldShow.Pattern = oldPattern.(*expression.PatternLike) } switch v.Tp { case ast.ShowCharset: oldShow.Target = stmt.ShowCharset case ast.ShowCollation: oldShow.Target = stmt.ShowCollation case ast.ShowColumns: oldShow.Target = stmt.ShowColumns case ast.ShowCreateTable: oldShow.Target = stmt.ShowCreateTable case ast.ShowDatabases: oldShow.Target = stmt.ShowDatabases case ast.ShowTables: oldShow.Target = stmt.ShowTables case ast.ShowEngines: oldShow.Target = stmt.ShowEngines case ast.ShowVariables: oldShow.Target = stmt.ShowVariables case ast.ShowStatus: oldShow.Target = stmt.ShowStatus case ast.ShowWarnings: oldShow.Target = stmt.ShowWarnings case ast.ShowNone: oldShow.Target = stmt.ShowNone } return oldShow, nil }