Gunther <raj@gusw.net> writes: > and checked my log file and there was nothing before the call > MemoryContextStats(TopPortalContext) so I don't understand where this > printf stuff is ending up.
It's going to stdout, which is likely block-buffered whereas stderr is line-buffered, so data from the latter will show up in your log file much sooner. You might consider adding something to startup to switch stdout to line buffering.
Is there a reason to not just elog the HJDEBUG stuff? With some of the other DEBUG defines, we will probably be using them before the logging system is set up, but surely we won't be doing Hash Joins that early?
I think we could just get rid of the conditional compilation and elog this at DEBUG1 or DEBUG2. Or keep the conditional compilation and elog it at LOG.