How is that the case? Unlike the other "cat" functions, I understand that CAT does not strip blanks - i.e. it acts like the "||" operator, so I do not expect it to create collisions prior to the MD5 function. And that's why I didn't bother with creating arbitrary separators between the concatenated fields.
True, my bad. But then you potentially have a very long string to hash. It's still better to trim and separate imho.
Agreed. Although I hadn't considered _MD5 ($16) long. But see comment to #4:
The issue we're trying to avoid here is running out of memory (at the cost of CPU, used to derive the hash).
Having said that, SAS hash tables are quite wasteful, and I just checked that a KEY length of 16 and DATA length of 16 occupies 64 bytes per hash table item, just as long as a KEY length of 16 and DATA length of 1. So that's one of my "improvements" gone.
... View more