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