Skip to content

Presence of 'ROWS <n_limit>' causes garbage in string conversion error message #8592

@pavel-zotov

Description

@pavel-zotov

Consider script:

set bail on;
set heading off;

shell del r:\temp\tmp4test.fdb 2>nul;
create database 'localhost:r:\temp\tmp4test.fdb' user 'sysdba' password 'masterkey'; -- default character set utf8;

create table test_a(f01 varchar(5) primary key, f02 varchar(5));
create table test_b(f01 varchar(5), f02 int);

insert into test_a values('one', 'i');
insert into test_b values('one', 1);

set bail off;
set echo on;

select a.f01 from test_a a where exists (select 1 from test_b b where a.f01 = b.f02); --------------- [ 1 ]

select a.f01 from test_a a where exists (select 1 from test_b b where a.f01 = b.f02 rows 1); ------------ [ 2 ]

Query marked as [ 1 ] raises:

Statement failed, SQLSTATE = 22018
conversion error from string "one"

(expected)

Query marked as [ 2 ] raises:

  1. when no charset is specified in DB declaration:
Statement failed, SQLSTATE = 22018
conversion error from string "one#x00#x00"
  1. when DB is declared with default charset utf8:
Statement failed, SQLSTATE = 22018
conversion error from string "one#x00#x00#x00#x00#x00#x00#x00#x00#x00#x00#x00#x00#x00#x00#x00#x00#x00"

Checked on 4.0.6.3206, 5.0.3.1659, 6.0.0.799.
No such problem on 3.0.13.33807.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions