Skip to content

Commit

Permalink
Merge pull request #110 from github/backport-16129-16159-to-release-1…
Browse files Browse the repository at this point in the history
…6.0-github

Backport vitessio#16129 and vitessio#16159 to v16
  • Loading branch information
arthurschreiber committed Jun 13, 2024
2 parents 703fa1c + f6087bf commit 62ee42d
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -207,3 +207,9 @@ SELECT id FROM orders WHERE id IN (1, "1", 1)
2 ks_sharded/40-80: select id from orders where id in (1, '1', 1) limit 10001

----------------------------------------------------------------------
(SELECT user.id, user.name FROM user WHERE user.id = 1) UNION (SELECT user.id, user.name FROM user WHERE user.id = 3)

1 ks_sharded/-40: select distinct `user`.id, `user`.`name`, weight_string(`user`.id), weight_string(`user`.`name`) from `user` where `user`.id = 1 limit 10001
1 ks_sharded/40-80: select distinct `user`.id, `user`.`name`, weight_string(`user`.id), weight_string(`user`.`name`) from `user` where `user`.id = 3 limit 10001

----------------------------------------------------------------------
4 changes: 3 additions & 1 deletion go/vt/vtexplain/testdata/selectsharded-queries.sql
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,6 @@ select id from user where not id in (select col from music where music.user_id =

SELECT user.id, user.name, name_info.info FROM user INNER JOIN music ON (user.id = music.user_id) LEFT OUTER JOIN name_info ON (user.name = name_info.name);

SELECT id FROM orders WHERE id IN (1, "1", 1)
SELECT id FROM orders WHERE id IN (1, "1", 1);

(SELECT user.id, user.name FROM user WHERE user.id = 1) UNION (SELECT user.id, user.name FROM user WHERE user.id = 3);
12 changes: 9 additions & 3 deletions go/vt/vtexplain/vtexplain_vttablet.go
Original file line number Diff line number Diff line change
Expand Up @@ -803,9 +803,15 @@ func inferColTypeFromExpr(node sqlparser.Expr, tableColumnMap map[sqlparser.Iden
colTypes = append(colTypes, colType)
}
case sqlparser.Callable:
// As a shortcut, functions are integral types
colNames = append(colNames, sqlparser.String(node))
colTypes = append(colTypes, querypb.Type_INT32)
switch node := node.(type) {
case *sqlparser.WeightStringFuncExpr:
colNames = append(colNames, sqlparser.String(node))
colTypes = append(colTypes, querypb.Type_BINARY)
default:
// As a shortcut, functions are integral types
colNames = append(colNames, sqlparser.String(node))
colTypes = append(colTypes, querypb.Type_INT32)
}
case *sqlparser.Literal:
colNames = append(colNames, sqlparser.String(node))
switch node.Type {
Expand Down

0 comments on commit 62ee42d

Please sign in to comment.