WI-V5.0.2.1582 Firebird 5.0 4a67617
Create database
SET NAMES WIN1251;
CREATE DATABASE 'inet4://localhost:3055/test'
USER "SYSDBA" PASSWORD 'masterkey'
PAGE_SIZE 8192
DEFAULT CHARACTER SET UTF8;
RECREATE TABLE T (
ID BIGINT NOT NULL,
NAME_UTF8 VARCHAR(50),
NAME_WIN1251 VARCHAR(50) CHARACTER SET WIN1251,
PRIMARY KEY (ID)
);
INSERT INTO T(ID, NAME_UTF8, NAME_WIN1251) VALUES (1, 'abc', 'abc');
INSERT INTO T(ID, NAME_UTF8, NAME_WIN1251) VALUES (2, 'Ават', 'Ават');
COMMIT;
Query:
SET NAMES WIN1251;
CONNECT 'inet4://localhost:3055/test'
USER "SYSDBA" PASSWORD 'masterkey';
SELECT COUNT(*)
FROM T
WHERE NAME_WIN1251 LIKE 'Ават';
COUNT
=====================
1
SELECT COUNT(*)
FROM T
WHERE NAME_UTF8 LIKE 'Ават';
Statement failed, SQLSTATE = 22001
arithmetic exception, numeric overflow, or string truncation
-string right truncation
-expected length 0, actual 1
-- Why??? But
SELECT COUNT(*)
FROM T
WHERE NAME_UTF8 LIKE 'Ава_';
COUNT
=====================
1