Re: [PERFORM] best way to fetch next/prev record based on index

2004-07-28 Thread Greg Stark
Stephan Szabo [EMAIL PROTECTED] writes: Given the comment on make_row_op, /* * XXX it's really wrong to generate a simple AND combination for = * =. We probably need to invent a new runtime node type to handle * those correctly. For the moment, though, keep on doing this ...

Re: [PERFORM] best way to fetch next/prev record based on index

2004-07-28 Thread Greg Stark
Greg Stark [EMAIL PROTECTED] writes: Fixing it to write out complex boolean expressions wouldn't be too hard, but I'm not clear it would be worth it, since I suspect the end result would be as the comment indicates, to introduce a new runtime node. Just to prove that it isn't really all that

Re: [PERFORM] best way to fetch next/prev record based on index

2004-07-28 Thread Merlin Moncure
Greg Stark [EMAIL PROTECTED] writes: This approach won't get the optimizer to actually use an index for these comparisons, but it will fix the semantics to match the spec. Later we can either improve the optimizer to detect expressions like this (which I think would be cooler since some

Re: [PERFORM] best way to fetch next/prev record based on index

2004-07-28 Thread Tom Lane
Greg Stark [EMAIL PROTECTED] writes: Removing ,=,,= would be trivial. ... and not backwards-compatible. If we did that then cases involving unlabeled row expressions would no longer work as they did in prior releases. For example select (1,2,3) (4,5,6); is accepted by all releases

Re: [PERFORM] best way to fetch next/prev record based on index

2004-07-28 Thread Merlin Moncure
Greg Stark [EMAIL PROTECTED] writes: Removing ,=,,= would be trivial. ... and not backwards-compatible. If we did that then cases involving unlabeled row expressions would no longer work as they did in prior releases. For example select (1,2,3) (4,5,6); is accepted by all

Re: [PERFORM] best way to fetch next/prev record based on index

2004-07-28 Thread Greg Stark
Tom Lane [EMAIL PROTECTED] writes: The only reason the code in parse_expr.c appears new is that the functionality used to be in gram.y. Ah, that was what I was missing. Though it's odd since it seems there was code in parse_expr.c to handle the = case specially. I'd like to see this fixed

Re: [PERFORM] best way to fetch next/prev record based on index

2004-07-28 Thread Tom Lane
Greg Stark [EMAIL PROTECTED] writes: Tom Lane [EMAIL PROTECTED] writes: The only reason the code in parse_expr.c appears new is that the functionality used to be in gram.y. Ah, that was what I was missing. Though it's odd since it seems there was code in parse_expr.c to handle the = case

Re: [PERFORM] best way to fetch next/prev record based on index

2004-07-28 Thread Greg Stark
Tom Lane [EMAIL PROTECTED] writes: One thing I did not like about your first pass is that it makes unsupportable assumptions about there being a semantic relationship between operators named, say, '' and '='. Hm, I think I even had caught that issue on the mailing list previously. In that