Martijn van Oosterhout <kleptog@xxxxxxxxx> writes: > I think the reason it hasn't been done for general join conditions is > because we havn't thought of an efficient algorithm. Right, it's keeping track of the unmatched right-hand rows that's a problem. > However, I wonder if youre case couldn't be handled with a > time-interval datatype such that you condition is merge-joinable on > that type. I can't quite see it though... Interesting thought. The use of NULLs in this example is a pretty poor representational choice --- the queries would get a lot simpler if you used "exptime = INFINITY" to represent unexpired data. That doesn't get you all the way to a mergejoinable query though :-( regards, tom lane