COMPUTED BY column looses charset and collate of source field <F> when <F> is
either of type BLOB or VARCHAR casted to BLOB
---------------------------------------------------------------------------------------------------------------------------
Key: CORE-6531
URL: http://tracker.firebirdsql.org/browse/CORE-6531
Project: Firebird Core
Issue Type: Bug
Components: Charsets/Collation, Engine
Affects Versions: 4.0 RC 1, 3.0.7
Reporter: Pavel Zotov
set bail on;
set list on;
shell del c:\temp\tmp.fdb 2>nul;
create database 'localhost:c:\temp\tmp.fdb';
create collation name_coll for utf8 from unicode case insensitive;
commit;
create domain dm_name_ci as blob sub_type text character set utf8 collate
name_coll;
commit;
recreate table test(
id int
,b1 dm_name_ci
,calc_b1 computed by ( b1 )
-----------------------------------------------------
,c1 varchar(10) character set utf8 collate name_coll
,calc_c1 computed by ( cast(c1 as blob sub_type text character set utf8)
collate name_coll ) -- ==> SQLDA: "charset: 0 NONE"
--,calc_c1 computed by ( (select list(x.c1) from test x where x.id =
test.id) ) -- ==> SQLDA: "charset: 0 NONE"
--,calc_c1 computed by ( cast(c1 as varchar(10) character set utf8) collate
name_coll ) -- ==> SQLDA: "charset: 32260 UTF8" // OK
);
insert into test(id, b1, c1) values(1,'qWE','qWE');
insert into test(id, b1, c1) values(2,'QWe','QWe');
insert into test(id, b1, c1) values(3,'qwE','qwE');
commit;
set count on;
set echo on;
---------------------------------------------
select id
from test where calc_c1 starting with 'qwe'; -- Records affected: 0
---------------------------------------------
select id
from test where calc_b1 starting with 'qwe'; -- Records affected: 0
---------------------------------------------
set sqlda_display on;
select t.b1, t.c1 from test t rows 0;
select t.calc_b1, t.calc_c1 from test t rows 0;
set sqlda_display off;
Outcome:
########
select id
from test where calc_c1 starting with 'qwe'; -- Records affected: 0
Records affected: 0
---------------------------------------------
select id
from test where calc_b1 starting with 'qwe'; -- Records affected: 0
Records affected: 0
---------------------------------------------
set sqlda_display on;
select t.b1, t.c1 from test t rows 0;
INPUT message field count: 0
OUTPUT message field count: 2
01: sqltype: 520 BLOB Nullable scale: 0 subtype: 1 len: 8 charset: 4 UTF8
: name: B1 alias: B1
: table: TEST owner: SYSDBA
02: sqltype: 448 VARYING Nullable scale: 0 subtype: 0 len: 40 charset: 32260
UTF8
: name: C1 alias: C1
: table: TEST owner: SYSDBA
Records affected: 0
select t.calc_b1, t.calc_c1 from test t rows 0;
INPUT message field count: 0
OUTPUT message field count: 2
01: sqltype: 520 BLOB Nullable scale: 0 subtype: 1 len: 8 charset: 0 NONE
: name: CALC_B1 alias: CALC_B1
: table: TEST owner: SYSDBA
02: sqltype: 520 BLOB Nullable scale: 0 subtype: 1 len: 8 charset: 0 NONE
: name: CALC_C1 alias: CALC_C1
: table: TEST owner: SYSDBA
Records affected: 0
set sqlda_display off;
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel