Just quick update on this. It turns out (as it always does) that I want to refactor a bit more intensively than I first suggested.
The functions dch_global, dch_time and dch_date seem to be wholly pointless, since dch_global is effectively a one-liner for the FX flag, and the other two merely wrap around a giant switch statement. My thought was to split DCH_processor into a to_char flavour and a from_char flavour, and have those functions do all the work; loop through each of the FormatNodes and run the giant switch statement. This means there is no need to put pointers to "action functions" in each of the KeyWords. It makes the code simpler, more readable -- and considerably shorter. A patch will be on the way shortly. ---------------------------(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