Watch, Follow, &
Connect with Us
Public Report
Report From: InterBase/Server    [ Add a report in this area ]  
Report #:  119645   Status: Reported
CHAR type ill-handled in UTF8 database
Project:  InterBase Build #:  9.0.3.437
Version:    9.0 Submitted By:   Jacek Komorowski
Report Type:  Basic functionality failure Date Reported:  10/10/2013 4:02:56 AM
Severity:    Serious / Highly visible problem Last Updated: 11/7/2013 9:05:44 AM
Platform:    32 Bit Internal Tracking #:  
Resolution: None  Resolved in Build: : None
Duplicate of:  None
Voting and Rating
Overall Rating: No Ratings Yet
0.00 out of 5
Total Votes: None
Description
I have a stored procedure (SP) in an UTF8 database.
SP has unique input parameter "A" declared as CHAR(1), and two output parameters: 1st "L" declared as INTEGER and 2nd "CC" declared as CHAR(2).
SP is very simple, it returns L=STRLEN(A) and CC=A||'/'; STRLEN is decared as Ib_udf_strlen provided in Ib_udf.dll.

I expect that execution of SP('A') will return: L=1 and CC='A/'.
The attached test case (written in Delphi 5) shows quite different result, namely: L=4 and CC='A /'; three blanks separate 'A' and '/'.

Since the test case uses IBProvider I've submitted it already to the IBProvider forum
http://www.ibprovider.com/forum/site/viewtopic.php?f=1&t=1044
to check whether the issue isn't due to IBProvider. Their opinion seems to be that it's due to IB bug (?).
Steps to Reproduce:
Execute IBUG.EXE included in the attachment IBUG.ZIP

The whole content of IBUG.ZIP should be un-zipped into a single folder to have IBUG.EXE and IBUG.IB on the same path.
Workarounds
None
Attachment
119645.zip
Comments

None

Server Response from: ETNACODE01