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

No error when fetching row with UTF8 blob that cannot be transliterated to connection character set. [CORE5377] #5650

Open
firebird-automations opened this issue Oct 15, 2016 · 0 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: @mrotteveel

I have a table:

create table test_clob (
id integer,
utf8_blob blob sub_type text character set utf8
)

I insert a row with UTF-8 characters using a connection with connection character set UTF8 and a value of "\u16a0\u16a1\u16a2\u16a3\u16a4\u16a5\u16a6\u16a7\u16a8\u16a9\u16aa\u16ab\u16ac\u16ad\u16ae\u16af" (where \unnnn is a unicode escape).

If I query that table using connection character set WIN1252 (or another single byte character set), the fetch will yield an op_fetch_response with code 100 (no more rows) and row count 0. Doing the same on Firebird 2.5.6 yields error "Cannot transliterate character between character sets [SQLState:22018, ISC error code:335544565]" which is more correct (although still very annoying, I would rather have that error when I fetch the blob).

Reproducing with isql (slightly reduced):

set names utf8;
connect ....;
insert into test_clob(id, utf8_blob) values (1, x'e19aa0'); -- e19aa0 is UTF-8 encoding of code point 16a0
select * from test_clob; -- yields row
set names win1252;
connect ....;
select * from test_clob; -- yields no row, instead of expected error "Cannot transliterate character between character sets"

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

No branches or pull requests

1 participant