Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EXECUTE BLOCK parameters definitions are not respected and may cause wrong behavior related to character sets [CORE3737] #4082

Closed
firebird-automations opened this issue Jan 19, 2012 · 6 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: @asfernandes

Is related to QA571

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.

Commits: e2f2a24

@firebird-automations
Copy link
Collaborator Author

Modified by: @asfernandes

assignee: Adriano dos Santos Fernandes [ asfernandes ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @asfernandes

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Fixed [ 1 ]

Fix Version: 3.0 Alpha 1 [ 10331 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

Link: This issue is related to QA571 [ QA571 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @pavel-zotov

status: Resolved [ 5 ] => Resolved [ 5 ]

QA Status: Done successfully

@firebird-automations
Copy link
Collaborator Author

Commented by: @pcisar

Test created.

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

status: Resolved [ 5 ] => Closed [ 6 ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment