Skip to content

Commit

Permalink
fix: make sure string literals as columns are handled well (#15820)
Browse files Browse the repository at this point in the history
  • Loading branch information
systay authored Apr 30, 2024
1 parent 9dd26be commit 7ba6f5b
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 6 deletions.
9 changes: 7 additions & 2 deletions go/vt/sqlparser/ast_funcs.go
Original file line number Diff line number Diff line change
Expand Up @@ -2194,8 +2194,13 @@ func (ae *AliasedExpr) ColumnName() string {
return ae.As.String()
}

if col, ok := ae.Expr.(*ColName); ok {
return col.Name.String()
switch node := ae.Expr.(type) {
case *ColName:
return node.Name.String()
case *Literal:
if node.Type == StrVal {
return node.Val
}
}

return String(ae.Expr)
Expand Down
8 changes: 4 additions & 4 deletions go/vt/vtgate/planbuilder/testdata/union_cases.json
Original file line number Diff line number Diff line change
Expand Up @@ -601,8 +601,8 @@
"Name": "user",
"Sharded": true
},
"FieldQuery": "select dt.c0 as `'b'`, dt.c1 as `'c'`, weight_string(dt.c0), weight_string(dt.c1) from (select 'b', 'c' from `user` where 1 != 1) as dt(c0, c1) where 1 != 1",
"Query": "select dt.c0 as `'b'`, dt.c1 as `'c'`, weight_string(dt.c0), weight_string(dt.c1) from (select distinct 'b', 'c' from `user`) as dt(c0, c1)",
"FieldQuery": "select dt.c0 as b, dt.c1 as c, weight_string(dt.c0), weight_string(dt.c1) from (select 'b', 'c' from `user` where 1 != 1) as dt(c0, c1) where 1 != 1",
"Query": "select dt.c0 as b, dt.c1 as c, weight_string(dt.c0), weight_string(dt.c1) from (select distinct 'b', 'c' from `user`) as dt(c0, c1)",
"Table": "`user`"
}
]
Expand Down Expand Up @@ -639,8 +639,8 @@
"Name": "user",
"Sharded": true
},
"FieldQuery": "select dt.c0 as `'b'`, dt.c1 as `'c'`, weight_string(dt.c0), weight_string(dt.c1) from (select 'b', 'c' from `user` where 1 != 1) as dt(c0, c1) where 1 != 1",
"Query": "select dt.c0 as `'b'`, dt.c1 as `'c'`, weight_string(dt.c0), weight_string(dt.c1) from (select distinct 'b', 'c' from `user`) as dt(c0, c1)",
"FieldQuery": "select dt.c0 as b, dt.c1 as c, weight_string(dt.c0), weight_string(dt.c1) from (select 'b', 'c' from `user` where 1 != 1) as dt(c0, c1) where 1 != 1",
"Query": "select dt.c0 as b, dt.c1 as c, weight_string(dt.c0), weight_string(dt.c1) from (select distinct 'b', 'c' from `user`) as dt(c0, c1)",
"Table": "`user`"
},
{
Expand Down

0 comments on commit 7ba6f5b

Please sign in to comment.