diff --git a/sql/delete.go b/sql/delete.go index 8054fbce4fb1..b22ce49e1064 100644 --- a/sql/delete.go +++ b/sql/delete.go @@ -36,7 +36,7 @@ func (p *planner) Delete(n *parser.Delete) (planNode, error) { // deleting. node, err := p.Select(&parser.Select{ Exprs: parser.SelectExprs{ - &parser.StarExpr{TableName: parser.Name(tableDesc.Name)}, + &parser.StarExpr{TableName: parser.QualifiedName{tableDesc.Name}}, }, From: parser.TableExprs{n.Table}, Where: n.Where, diff --git a/sql/parser/select.go b/sql/parser/select.go index 8690f5d6eb05..f6d1af19cfb8 100644 --- a/sql/parser/select.go +++ b/sql/parser/select.go @@ -95,12 +95,13 @@ func (*NonStarExpr) selectExpr() {} // TODO(tschottdorf): needs work, see #1810. TableName is never even referenced // in the grammar so far. type StarExpr struct { - TableName Name + Expr + TableName QualifiedName } func (node *StarExpr) String() string { var buf bytes.Buffer - if node.TableName != "" { + if len(node.TableName) != 0 { fmt.Fprintf(&buf, "%s.", node.TableName) } fmt.Fprintf(&buf, "*") diff --git a/sql/parser/sql.go b/sql/parser/sql.go index 6aeea538bd4d..646115a9cb77 100644 --- a/sql/parser/sql.go +++ b/sql/parser/sql.go @@ -9751,7 +9751,7 @@ sqldefault: sqlDollar = sqlS[sqlpt-4 : sqlpt+1] //line sql.y:2940 { - sqlVAL.expr = &FuncExpr{Name: sqlDollar[1].qname, Exprs: Exprs{QualifiedName{"*"}}} + sqlVAL.expr = &FuncExpr{Name: sqlDollar[1].qname, Exprs: Exprs{&StarExpr{}}} } case 718: sqlDollar = sqlS[sqlpt-4 : sqlpt+1] diff --git a/sql/parser/sql.y b/sql/parser/sql.y index 2a51989eb841..d0021233ed3b 100644 --- a/sql/parser/sql.y +++ b/sql/parser/sql.y @@ -2938,7 +2938,7 @@ func_application: } | func_name '(' '*' ')' { - $$ = &FuncExpr{Name: $1, Exprs: Exprs{QualifiedName{"*"}}} + $$ = &FuncExpr{Name: $1, Exprs: Exprs{&StarExpr{}}} } // func_expr and its cousin func_expr_windowless are split out from c_expr just