I'm hoping we can avoid this by determining at compile time what position an expression that is evaluated post-join has. Then we can wrap access to it in something like our RowKeyValueExpression, but probably specific to joins (as it'll likely retrieve the value from the value part of a single key value). Not a bad idea to have our own expression for this anyway, though, so the way the value is serialized is abstracted.

What do you think?