Tom Lane writes:
> > The "rule" regression test gets stuck in an infinite loop in
> > optimizer/prep/prepunion.c:find_inheritable_rt_entry.
> ?? it all passes here ... platform dependency maybe? Or perhaps you
> just need a make clean and rebuild? I did a fair amount of struct-
> declaration-rearrangement...
Actually, it's still there (even after OS upgrade :). The "misc" and
"sanity_check" failures were due to some test ordering problems, but the
"rules" still hang.
The backend process hangs in this loop:
| bool find_inheritable_rt_entry(List *rangetable,
| Index *rt_index,
| List **inheritors) {
| Index count = 0;
| List *temp;
|
| foreach(temp, rangetable)
| {
| RangeTblEntry *rt_entry = (RangeTblEntry *) lfirst(temp);
| List *inhs;
|
| count++;
| /* Ignore non-inheritable RT entries */
| if (! rt_entry->inh)
| continue;
Somewhere a list pointer needs to be advanced there.
This happens at the query:
DEBUG: query: insert into shoelace_ok select * from shoelace_arrive;