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_3094_test.py

105 lines
4.1 KiB
Python
Raw Normal View History

2021-04-26 20:07:00 +02:00
#coding:utf-8
2022-01-22 21:59:15 +01:00
"""
ID: issue-3473
ISSUE: 3473
TITLE: Parameters doesn't work with NOT IN from a selectable procedure
DESCRIPTION:
JIRA: CORE-3094
"""
2021-04-26 20:07:00 +02:00
2022-01-22 21:59:15 +01:00
import pytest
from firebird.qa import *
2021-04-26 20:07:00 +02:00
2022-01-22 21:59:15 +01:00
db = db_factory()
2021-04-26 20:07:00 +02:00
2022-01-22 21:59:15 +01:00
test_script = """
2021-04-26 20:07:00 +02:00
create or alter procedure sp_test as begin end;
recreate table con_miem (
fgrupo int,
fmiembr int,
constraint con_miem_pk primary key (fgrupo, fmiembr)
);
recreate table con_cuen (
fcuenta int,
fnombre varchar(30),
constraint con_cuen_pk primary key (fcuenta)
);
set term ^;
create or alter procedure sp_test (grupo integer) returns (fcuenta type of column con_miem.fmiembr) as
begin
for select fmiembr from con_miem where fgrupo=:grupo into :fcuenta do suspend;
end
^ set term ;^
commit;
2022-01-22 21:59:15 +01:00
2021-04-26 20:07:00 +02:00
insert into con_cuen (fcuenta, fnombre) values (5000, 'cuenta 5000');
insert into con_cuen (fcuenta, fnombre) values (6000, 'cuenta 6000');
insert into con_cuen (fcuenta, fnombre) values (7101, 'cuenta 7101');
insert into con_cuen (fcuenta, fnombre) values (7102, 'cuenta 7102');
insert into con_cuen (fcuenta, fnombre) values (7103, 'cuenta 7103');
insert into con_cuen (fcuenta, fnombre) values (7104, 'cuenta 7104');
insert into con_cuen (fcuenta, fnombre) values (7105, 'cuenta 7105');
insert into con_cuen (fcuenta, fnombre) values (7106, 'cuenta 7106');
insert into con_cuen (fcuenta, fnombre) values (7108, 'cuenta 7108');
insert into con_cuen (fcuenta, fnombre) values (7109, 'cuenta 7109');
insert into con_cuen (fcuenta, fnombre) values (7110, 'cuenta 7110');
insert into con_cuen (fcuenta, fnombre) values (7111, 'cuenta 7111');
insert into con_cuen (fcuenta, fnombre) values (7112, 'cuenta 7112');
insert into con_cuen (fcuenta, fnombre) values (7113, 'cuenta 7113');
insert into con_cuen (fcuenta, fnombre) values (7114, 'cuenta 7114');
insert into con_cuen (fcuenta, fnombre) values (7115, 'cuenta 7115');
insert into con_cuen (fcuenta, fnombre) values (7116, 'cuenta 7116');
insert into con_cuen (fcuenta, fnombre) values (7117, 'cuenta 7117');
insert into con_cuen (fcuenta, fnombre) values (7118, 'cuenta 7118');
insert into con_cuen (fcuenta, fnombre) values (7119, 'cuenta 7119');
2022-01-22 21:59:15 +01:00
2021-04-26 20:07:00 +02:00
insert into con_miem (fgrupo, fmiembr) values (100, 5000);
insert into con_miem (fgrupo, fmiembr) values (100, 6000);
insert into con_miem (fgrupo, fmiembr) values (100, 7101);
insert into con_miem (fgrupo, fmiembr) values (100, 7102);
insert into con_miem (fgrupo, fmiembr) values (100, 7103);
insert into con_miem (fgrupo, fmiembr) values (100, 7104);
insert into con_miem (fgrupo, fmiembr) values (100, 7105);
insert into con_miem (fgrupo, fmiembr) values (100, 7106);
insert into con_miem (fgrupo, fmiembr) values (100, 7108);
insert into con_miem (fgrupo, fmiembr) values (100, 7109);
insert into con_miem (fgrupo, fmiembr) values (100, 7110);
insert into con_miem (fgrupo, fmiembr) values (100, 7111);
insert into con_miem (fgrupo, fmiembr) values (100, 7112);
insert into con_miem (fgrupo, fmiembr) values (100, 7113);
insert into con_miem (fgrupo, fmiembr) values (100, 7114);
insert into con_miem (fgrupo, fmiembr) values (100, 7115);
insert into con_miem (fgrupo, fmiembr) values (100, 7116);
insert into con_miem (fgrupo, fmiembr) values (100, 7117);
insert into con_miem (fgrupo, fmiembr) values (100, 7118);
insert into con_miem (fgrupo, fmiembr) values (100, 7119);
commit;
2022-01-22 21:59:15 +01:00
2021-04-26 20:07:00 +02:00
set list on;
set term ^;
execute block returns (fcuenta type of column con_miem.fmiembr, fnombre type of column con_cuen.fnombre)
as
declare gro integer = 100;
begin
for
select fcuenta, fnombre
from con_cuen
where fcuenta not in ( select p.fcuenta from sp_test(:gro) p )
into fcuenta, fnombre
do
begin
suspend;
end
end
^
set term ;^
2021-12-22 20:23:11 +01:00
"""
2021-04-26 20:07:00 +02:00
2022-01-22 21:59:15 +01:00
act = isql_act('db', test_script)
2021-04-26 20:07:00 +02:00
2022-01-22 21:59:15 +01:00
@pytest.mark.version('>=3')
def test_1(act: Action):
2022-01-25 22:55:48 +01:00
act.execute()