Re: about EncodeDateTime() arguments

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Peter Eisentraut <peter_e@gmx.net>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2012-03-10T23:47:48Z
Lists: pgsql-hackers
Peter Eisentraut <peter_e@gmx.net> writes:
> We currently have
> void EncodeDateTime(struct pg_tm * tm, fsec_t fsec, int *tzp, char **tzn, int style, char *str)

> but tzn isn't used anywhere, only *tzn is used everywhere.  Wouldn't it
> be clearer to remove that one level of indirection and instead have the
> signature be

> void EncodeDateTime(struct pg_tm * tm, fsec_t fsec, int *tzp, char *tzn, int style, char *str)

> or better yet

> 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.

			regards, tom lane