Re: about EncodeDateTime() arguments

Peter Eisentraut <peter_e@gmx.net>

From: Peter Eisentraut <peter_e@gmx.net>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2012-03-13T19:41:56Z
Lists: pgsql-hackers

Attachments

On lör, 2012-03-10 at 18:47 -0500, Tom Lane wrote:
> > void EncodeDateTime(struct pg_tm * tm, fsec_t fsec, const int *tzp, const char *tzn, int style, char *str)
> 
> It appears to me that null-ness of tzp and tzn are used as a 3-way flag
> to identify the style of timezone output wanted (none, numeric, or alpha).
> It would probably be better yet if it went like
> 
>         enum tzstyle, int tzp, const char *tzn
> 
> where tzp or tzn would be examined only if tzstyle said so. 

It's not quite a three-way flag, because it also depends on the style,
which time zone style is used.  But I liked the idea of making "print
the time zone" more explicit and getting rid of the funny pointers.  I
added a bit of documentation and code deduplication in the attached
patch, and it already looks much more understandable.