Why aren't hashes preserved by joins?