6
0
mirror of https://github.com/FirebirdSQL/firebird-qa.git synced 2025-01-22 21:43:06 +01:00
firebird-qa/tests/bugs/core_0089_test.py

323 lines
11 KiB
Python

#coding:utf-8
"""
ID: issue-414
ISSUE: 414
TITLE: Wrong return from simple SQL
DESCRIPTION:
JIRA: CORE-89
FBTEST: bugs.core_0089
"""
import pytest
from firebird.qa import *
db = db_factory()
test_script = """
-- DDL and data are based on text file (report) that is attached to ticket.
-- No difference between FB 1.5.6 and 4.0.0 found.
-- Added PK on table categorygroup and index "schemacategories(typecol)"
-- after analyzing text of queries - it seems to me that such indices
-- does exist on real schema.
recreate table schemacategories(
schemanr int
,catnr int
,typecol int
,depnr int
,ownedby int
,heritage char(4)
);
commit;
create index sch_cat_typecol on schemacategories(typecol);
recreate table categorygroup(
id int primary key
,parent int
,depnr int
,heritage char(4)
,activecol int
,displaytype int
);
commit;
insert into schemacategories values(11, 472, 10, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 463, 10, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 464, 10, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 497, 4, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 501, 4, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 296, 4, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 265, 4, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 496, 4, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 500, 4, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 498, 4, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 499, 4, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 494, 4, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 261, 4, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 495, 4, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 413, 5, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 244, 5, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 488, 5, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 492, 5, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 249, 5, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 493, 5, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 247, 5, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 502, 6, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 251, 6, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 490, 6, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 367, 6, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 489, 6, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 505, 5, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 506, 4, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 507, 5, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 508, 5, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 509, 5, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 491, 6, 1, 10000175, 'TRUE');
insert into schemacategories values(11, 450, 1, 1, 10000090, 'TRUE');
insert into schemacategories values(11, 485, 1, 1, 10000090, 'TRUE');
insert into schemacategories values(11, 486, 1, 1, 10000090, 'TRUE');
insert into schemacategories values(11, 451, 1, 1, 10000090, 'TRUE');
insert into schemacategories values(11, 452, 1, 1, 10000090, 'TRUE');
insert into schemacategories values(11, 453, 1, 1, 10000090, 'TRUE');
insert into schemacategories values(11, 454, 1, 1, 10000090, 'TRUE');
insert into schemacategories values(11, 455, 1, 1, 10000090, 'TRUE');
insert into schemacategories values(11, 456, 1, 1, 10000090, 'TRUE');
commit;
insert into categorygroup values(1,0,1,'TRUE',1,1);
insert into categorygroup values(2,0,1,'TRUE',1,2);
insert into categorygroup values(3,0,1,'TRUE',1,2);
insert into categorygroup values(4,0,1,'TRUE',1,3);
insert into categorygroup values(5,0,1,'TRUE',1,3);
insert into categorygroup values(6,0,1,'TRUE',1,3);
insert into categorygroup values(7,0,1,'TRUE',1,2);
insert into categorygroup values(8,5,1,'TRUE',0,3);
insert into categorygroup values(9,0,1,'TRUE',1,2);
insert into categorygroup values(10,0,1,'TRUE',1,2);
commit;
set list on;
select sc.schemanr,sc.catnr,sc.typecol,cg.id
from schemacategories sc, categorygroup cg
where sc.schemanr = 11 and sc.typecol = cg.id
order by sc.catnr;
"""
act = isql_act('db', test_script)
expected_stdout = """
SCHEMANR 11
CATNR 244
TYPECOL 5
ID 5
SCHEMANR 11
CATNR 247
TYPECOL 5
ID 5
SCHEMANR 11
CATNR 249
TYPECOL 5
ID 5
SCHEMANR 11
CATNR 251
TYPECOL 6
ID 6
SCHEMANR 11
CATNR 261
TYPECOL 4
ID 4
SCHEMANR 11
CATNR 265
TYPECOL 4
ID 4
SCHEMANR 11
CATNR 296
TYPECOL 4
ID 4
SCHEMANR 11
CATNR 367
TYPECOL 6
ID 6
SCHEMANR 11
CATNR 413
TYPECOL 5
ID 5
SCHEMANR 11
CATNR 450
TYPECOL 1
ID 1
SCHEMANR 11
CATNR 451
TYPECOL 1
ID 1
SCHEMANR 11
CATNR 452
TYPECOL 1
ID 1
SCHEMANR 11
CATNR 453
TYPECOL 1
ID 1
SCHEMANR 11
CATNR 454
TYPECOL 1
ID 1
SCHEMANR 11
CATNR 455
TYPECOL 1
ID 1
SCHEMANR 11
CATNR 456
TYPECOL 1
ID 1
SCHEMANR 11
CATNR 463
TYPECOL 10
ID 10
SCHEMANR 11
CATNR 464
TYPECOL 10
ID 10
SCHEMANR 11
CATNR 472
TYPECOL 10
ID 10
SCHEMANR 11
CATNR 485
TYPECOL 1
ID 1
SCHEMANR 11
CATNR 486
TYPECOL 1
ID 1
SCHEMANR 11
CATNR 488
TYPECOL 5
ID 5
SCHEMANR 11
CATNR 489
TYPECOL 6
ID 6
SCHEMANR 11
CATNR 490
TYPECOL 6
ID 6
SCHEMANR 11
CATNR 491
TYPECOL 6
ID 6
SCHEMANR 11
CATNR 492
TYPECOL 5
ID 5
SCHEMANR 11
CATNR 493
TYPECOL 5
ID 5
SCHEMANR 11
CATNR 494
TYPECOL 4
ID 4
SCHEMANR 11
CATNR 495
TYPECOL 4
ID 4
SCHEMANR 11
CATNR 496
TYPECOL 4
ID 4
SCHEMANR 11
CATNR 497
TYPECOL 4
ID 4
SCHEMANR 11
CATNR 498
TYPECOL 4
ID 4
SCHEMANR 11
CATNR 499
TYPECOL 4
ID 4
SCHEMANR 11
CATNR 500
TYPECOL 4
ID 4
SCHEMANR 11
CATNR 501
TYPECOL 4
ID 4
SCHEMANR 11
CATNR 502
TYPECOL 6
ID 6
SCHEMANR 11
CATNR 505
TYPECOL 5
ID 5
SCHEMANR 11
CATNR 506
TYPECOL 4
ID 4
SCHEMANR 11
CATNR 507
TYPECOL 5
ID 5
SCHEMANR 11
CATNR 508
TYPECOL 5
ID 5
SCHEMANR 11
CATNR 509
TYPECOL 5
ID 5
"""
@pytest.mark.version('>=3')
def test_1(act: Action):
act.expected_stdout = expected_stdout
act.execute()
assert act.clean_stdout == act.clean_expected_stdout