EXECUTE BLOCK parameters definitions are not respected and may cause wrong behavior related to character sets -------------------------------------------------------------------------------------------------------------
Key: CORE-3737 URL: http://tracker.firebirdsql.org/browse/CORE-3737 Project: Firebird Core Issue Type: Bug Components: Engine Affects Versions: 2.5.1, 2.1.4, 2.5.0, 2.0.6, 3.0 Initial, 2.1.3, 2.1.2, 2.0.5, 2.1.1, 2.1.0 Reporter: Adriano dos Santos Fernandes Suppose you want to execute this block using an API function, and the attachment charset is UTF8. execute block (c varchar(10) character set win1252 = ?) returns (n integer) as begin n = octet_length(c); suspend; end You then pass a parameter with the value '123áé456'. It returns 10 but the correct is 8, as the string must be converted to WIN1252 and evaluated as it. But now the engine replaces the character set and insert some casts (when needed) to validate domain-based parameters. I suppose problems could also appear if the parameters uses insensitive collations. -- 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 ------------------------------------------------------------------------------ Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel