Issue Details (XML | Word | Printable)

Key: CORE-3211
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Adriano dos Santos Fernandes
Reporter: Dmitry Yemanov
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
Firebird Core

String truncation occurs when selecting from a view containing NOT IN inside

Created: 02/Nov/10 10:19 AM   Updated: 04/Jun/13 09:44 AM
Component/s: Engine
Affects Version/s: 2.5.0
Fix Version/s: 2.5.1

Time Tracking:
Not Specified

Issue Links:
Duplicate
 
Relate
 

Planning Status: Unspecified


 Description  « Hide
Test case:

CREATE TABLE T ( ID integer, FIELD1 varchar(30) );

CREATE VIEW VT ( ID )
AS
  select 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.

 All   Comments   Work Log   Change History   Version Control   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
There are no comments yet on this issue.