Anybody see a smoking gun? I don't really know what seg is supposed to be doing, so I don't know where to start.
As crazy idea only: try to modify seg_overlap to bool seg_overlap(SEG * a, SEG * b) { return ( ((a->upper >= b->upper) && (a->lower <= b->upper)) || ((b->upper >= a->upper) && (b->lower <= a->upper)) ) ? true : false; } -- Teodor Sigaev E-mail: [EMAIL PROTECTED] WWW: http://www.sigaev.ru/ ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match