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

Reply via email to