HASH function returns different values for the same string value due to
character sets
--------------------------------------------------------------------------------------
Key: CORE-5030
URL: http://tracker.firebirdsql.org/browse/CORE-5030
Project: Firebird Core
Issue Type: Bug
Components: Engine
Affects Versions: 2.5.5, 2.5.4
Environment: Windows 64 bit
Reporter: Mark Jones
Priority: Minor
Using a different character set changes the resulting HASH value for the same
string
CREATE TABLE TEST (
TESTSTR1 VARCHAR(20) CHARACTER SET UTF8,
TESTSTR2 VARCHAR(20) CHARACTER SET WIN1252 );
INSERT INTO TEST (TESTSTR1, TESTSTR2) VALUES ('€URO','€URO');
SELECT
IIF(TESTSTR1 = TESTSTR2,'TRUE','FALSE') ISMATCH,
HASH(TESTSTR1) HASH1,
HASH(TESTSTR2) HASH2 FROM TEST;
And we see the following output
ISMATCH HASH1 HASH2
-------------------------------------
TRUE 246225519 547439
Also exhibits similar behaviour when using different client connection
character sets and evaluating a static value, e.g.
SELECT HASH('€URO') FROM RDB$DATABASE;
isql -ch WIN1252....
HASH = 547439
isql -ch UTF8 ...
HASH = 246225519
I guess that the solution would be to ensure that the HASH always converts text
strings (or blob strings) to UTF8 before evaluating, although that would likely
break existing systems that are expecting it to work the way that it does now...
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
Go from Idea to Many App Stores Faster with Intel(R) XDK
Give your users amazing mobile app experiences with Intel(R) XDK.
Use one codebase in this all-in-one HTML5 development environment.
Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs.
http://pubads.g.doubleclick.net/gampad/clk?id=254741551&iu=/4140
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel