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
1) Create new database
2) Create table and procedure with CTE:
create table t ( id int, parent int )
insert into t (id,parent) values (0,0)
insert into t (id,parent) values (1,0)
insert into t (id,parent) values (2,0)
insert into t (id,parent) values (3,1)
create procedure p ( parent integer)
returns ( id integer)
as
begin
for with recursive children as (
select id, parent from t where id=:parent
union all
select http://t.id, t.parent from t join children c on http://t.parent=c.id and http://t.id<>http://c.id
) select id from children into id do suspend;
end
3) Run a query:
execute block
as
declare i integer = 0;
declare id integer;
begin
while (i<200000) do begin
for select id from p(0) into id do begin end
i = i + 1;
end
end
9 Mb of memory is allocated. It is not released after commit or rollback. Only released when disconnected.
Submitted by: Viner Mihail (mviner)
1) Create new database
2) Create table and procedure with CTE:
create table t ( id int, parent int )
insert into t (id,parent) values (0,0)
insert into t (id,parent) values (1,0)
insert into t (id,parent) values (2,0)
insert into t (id,parent) values (3,1)
create procedure p ( parent integer)
returns ( id integer)
as
begin
for with recursive children as (
select id, parent from t where id=:parent
union all
select http://t.id, t.parent from t join children c on http://t.parent=c.id and http://t.id<>http://c.id
) select id from children into id do suspend;
end
3) Run a query:
execute block
as
declare i integer = 0;
declare id integer;
begin
while (i<200000) do begin
for select id from p(0) into id do begin end
i = i + 1;
end
end
9 Mb of memory is allocated. It is not released after commit or rollback. Only released when disconnected.
Commits: 8ff8037
The text was updated successfully, but these errors were encountered: