On 16/05/2022 12:07, Mark Rotteveel wrote:
> On 16-05-2022 16:50, Mark Rotteveel wrote:
>> I was running some tests against Firebird-5.0.0.494-0_x64 (latest
>> snapshot, from last Saturday), and I notice that I get incorrect
>> string right truncation errors with CHAR/VARCHAR.
>>
>> I currently cannot dive deeper into it, but as a datapoint, the error
>> does not occur with Firebird-5.0.0.488-0_x64.
>>
>> Based solely on the commit message, maybe this commit is at fault?
>> https://github.com/FirebirdSQL/firebird/commit/dd18a3b11b28c3ed8126a6f54b829989954bfa03
> 
> 
> The Jaybird test that triggers this is
> org.firebirdsql.jdbc.TestFBPreparedStatementUTF8, specifically tests:
> 
> - connectionUtf8_insertMultiByte_inWin1252_char_1_win1252_succeeds
> (fails with "expected length 1, actual 2")
> - connectionUtf8_insertMultiByte_notInWin1252_char_1_win1252_fails
> (fails with "expected length 1, actual 2", should fail with "Cannot
> transliterate character between character sets")
> - connectionUtf8_insertMultipleInWin1252_char_5_win1252_succeeds (fails
> with "expected length 5, actual 8")
> - connectionUtf8_insertMultipleInWin1252_varchar_5_win1252_succeeds
> (fails with "expected length 5, actual 8")
> -
> connectionUtf8_insertMultipleInWin1252_lessThanMax_varchar_5_win1252_succeeds
> (fails with "expected length 5, actual 6")
> -connectionUtf8_insertMultiByte_char_1_utf8_succeeds (fails with
> "expected length 1, actual 2")
> - connectionUtf8_insertMultiple_char_5_utf8_succeeds (fails with
> "expected length 5, actual 8")
> - connectionUtf8_insertMultiple_varchar_5_utf8_succeeds (fails with
> "expected length 5, actual 8")
> - connectionUtf8_insertMultiple_lessThanMax_varchar_5_utf8_succeeds
> (fails with "expected length 5, actual 6")
> 
> For CHAR, it seems to count 1 more character, for VARCHAR 2-3 more
> characters.
> 

Is this happening with fbclient library too?

Is the error in insert or select?

I'm failing to reproduce it in isql, for example for
connectionUtf8_insertMultipleInWin1252_varchar_5_win1252_succeeds:

-----
CREATE TABLE utf8table (
 id INTEGER,
 char_1_none CHAR(1) CHARACTER SET NONE,
 char_1_utf8 CHAR(1) CHARACTER SET UTF8,
 char_1_win1252 CHAR(1) CHARACTER SET WIN1252,
 char_5_none CHAR(5) CHARACTER SET NONE,
 char_5_utf8 CHAR(5) CHARACTER SET UTF8,
 char_5_win1252 CHAR(5) CHARACTER SET WIN1252,
 varchar_5_none VARCHAR(5) CHARACTER SET NONE,
 varchar_5_utf8 VARCHAR(5) CHARACTER SET UTF8,
 varchar_5_win1252 VARCHAR(5) CHARACTER SET WIN1252
);

/*
select unicode_char(0x00FE) || unicode_char(0x00A3) || 'a' ||
unicode_char(0x0160) || ',' from rdb$database;
*/

set bulk_insert INSERT INTO utf8table (id, char_5_win1252) VALUES (?, ?);
(1, 'þ£aŠ,')
stop
;

select char_5_win1252 from utf8table where id = 1;
-----


Adriano


Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to