I have a feeling the HASHROW function has changed within the last few versions I'm using 13.10 and now:
This used not to be the case, can somebody tell me when this HASHROW funciton was updated?
CREATE VOLATILE TABLE t1 AS(
,TRANSLATE('Hello' USING UNICODE_TO_LATIN) a_latin
ON COMMIT PRESERVE ROWS;
SELECT HASHROW(a_unicode),HASHROW(a_latin),HASHROW(a_16bytes),HASHROW(a_17bytes) FROM t1;
HASHROW(a_unicode) HASHROW(a_latin) HASHROW(a_16bytes) HASHROW(a_17bytes)
C6-9F-1A-33 C6-9F-1A-33 00-1E-43-58 1F-A2-E2-35
Addendum: I ran the above statements by teranerd and got the same row hash values actually even the following gave the same:
SELECT HASHROW(rowhash_col) FROM rowhash_my
SELECT HASHROW(TRANSLATE('email@example.com' USING UNICODE_TO_LATIN)) FROM rowhash_my;
I'll assume that because your "HASHROW" function is proprietary, the properties of it are not able to be discussed right? I mean specifically the relationship of exactly what types respond differently vs similarly? I'll just trial and error some analysis....
How often has the hashing function been updated? With the new one implemented in 13.10 should we expect it to remain consistent for the long term?
I've selected variables as my PI based on their hash distribution and am wondering if I need to check this at every update or just once in a long while.
The hash function seldom changes, and will be clearly documented in the Release Summary. To rephrase Todd's answer, an in-place upgrade to a new release will not change the hash function. In general a new hash function can be implemented only by completely reinitializing the filesystem.
Think of it like reformatting your hard drive and doing a "clean install" of a new OS on your PC. You then have to do a complete restore of all the data from backup and reinstall all applications (SPs, UDFs). So in many cases, people will opt to wait until they have a brand new system and are copying everything over anyway.