Open
Description
Currently we use ColumnExpressions as identifiers (so we can easily get comparer for them), we should see if we can make it more flexible. First it helps in OPEN JSON scenarios, where we project key column twice sometimes (once as identifier and once because the collection is ordered by it - with a cast to int) - identifiers were more flexible we could just make the converted key to be the identifier and avoid duplicated projection. Also in the Distinct scenarios, if you project a function or some expression (other than column) we can't build identifier from it currently and we will throw. Again, converting to SqlExpression helps here