You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CREATE TABLE T ( ID integer, FIELD1 varchar(30) );
CREATE VIEW VT ( ID )
AS
select http://T1.ID from T as T1 where T1.FIELD1 not in ( select T2.FIELD1 from T as T2 where T2.FIELD1 = 'system1' )
;
INSERT INTO T (ID, FIELD1) VALUES (1, 'system');
INSERT INTO T (ID, FIELD1) VALUES (2, 'system');
INSERT INTO T (ID, FIELD1) VALUES (3, 'system');
INSERT INTO T (ID, FIELD1) VALUES (4, 'system');
INSERT INTO T (ID, FIELD1) VALUES (5, 'system');
COMMIT WORK;
select * from VT;
-- ERROR: string right truncation
The problem is that every select retrieves the db_key/record_version pair and they're described as having length of 8 and 4 bytes respectively. But these values gets concatenated in this case, because expand_view_nodes() returns two items. It seems being related to NOT IN, because an equivalent query with NOT EXISTS works fine. The same query without a view also works fine.
Submitted by: @dyemanov
Is duplicated by CORE3270
Is related to QA448
Test case:
CREATE TABLE T ( ID integer, FIELD1 varchar(30) );
CREATE VIEW VT ( ID )
AS
select http://T1.ID from T as T1 where T1.FIELD1 not in ( select T2.FIELD1 from T as T2 where T2.FIELD1 = 'system1' )
;
INSERT INTO T (ID, FIELD1) VALUES (1, 'system');
INSERT INTO T (ID, FIELD1) VALUES (2, 'system');
INSERT INTO T (ID, FIELD1) VALUES (3, 'system');
INSERT INTO T (ID, FIELD1) VALUES (4, 'system');
INSERT INTO T (ID, FIELD1) VALUES (5, 'system');
COMMIT WORK;
select * from VT;
-- ERROR: string right truncation
The problem is that every select retrieves the db_key/record_version pair and they're described as having length of 8 and 4 bytes respectively. But these values gets concatenated in this case, because expand_view_nodes() returns two items. It seems being related to NOT IN, because an equivalent query with NOT EXISTS works fine. The same query without a view also works fine.
Commits: 792fbc8 fd68563 f3277d0 FirebirdSQL/fbt-repository@63d79e3
The text was updated successfully, but these errors were encountered: