Open dynamobi-build opened 12 years ago
[author="jpham", created="Sun, 24 Sep 2006 21:40:07 -0500 (GMT-05:00)"] an excerpt from the optimizer trace
[author="zfong", created="Mon, 25 Sep 2006 08:23:17 -0500 (GMT-05:00)"] Yes, this is a result of my recent changes to push projects past setops. It looks like a couple of the new rules are resulting in an infinite loop.
[author="jvs", created="Mon, 25 Sep 2006 11:16:01 -0500 (GMT-05:00)"]
Turns out to be a Hep garbage-collection problem. I am going to test/submit a workaround (overconservative collection) and come back to debug when I have time.
[author="jvs", created="Mon, 25 Sep 2006 17:20:15 -0500 (GMT-05:00)"]
Workaround checked in and test re-enabled in 7774.
[reporter="jpham", created="Sun, 24 Sep 2006 21:39:07 -0500 (GMT-05:00)"] Hi Zelaine, would this be your area?
When running a particular query, the optimizer goes into an infinite loop involving PushProjectPastFilerRule and MergeProjectRule. The rule PushProjectPastFilter tries to transform the query execution tree. But the tree it generates is determined to be equivalent to an older tree, causing a loop. Perhaps this is another digest mystery?
This test case is from lu/regressionsql/javaCalc.sql
create table a (
i tinyint generated always as identity primary key,
j tinyint not null,
k tinyint);
create table smallint_nullable_src (
i smallint generated always as identity primary key,
val smallint);
create view smallint_nullable as
select val from smallint_nullable_src;
insert into a (j) select * from smallint_nullable
where val > 127;