Martijn van Oosterhout wrote: > On Fri, May 04, 2007 at 02:18:31PM +0200, Zdenek Kotala wrote: > > Is the reason for keeping this in a code? Another kind of construct is: > > > > #define PG_RETURN_NULL() \ > > do { fcinfo->isnull = true; return (Datum) 0; } while (0) > > This is a standard way of getting multiple statements into a macro. If > the compiler complains, too bad, there isn't a standard alternative.
So it is standard by it's not standard ;-) > > or > > why is there while ... break instead if? > > http://doxygen.postgresql.org/comment_8c-source.html#l00221 > > Not sure about this one. It's not wrong, but it is unusual. Maybe > someone wanted to make it so that in the future it would handle > multiple cases? There are many other cases where we do it cleanly, without the while loop. I don't see any reason to not do this one the same way. - while ((oldtuple = systable_getnext(sd)) != NULL) + oldtuple = systable_getnext(sd); + if (HeapTupleIsValid(oldtuple)) ... - break; -- Alvaro Herrera http://www.CommandPrompt.com/ The PostgreSQL Company - Command Prompt, Inc. ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend