On Thu, Jun 16, 2011 at 06:07:50PM -0400, Bruce Momjian wrote:
> Noah Misch wrote:
> > On Sun, Apr 17, 2011 at 04:55:51PM +0100, Jack Douglas wrote:
> > > I discovered the 'fields' option of 'interval', but i can't figure out
> > > from the docs how it is supposed to work. Are "hour to minute" and "day
> > > to minute" really the same thing? And if not, in what circumstances are
> > > they treated differently?
> >
> > As of version 8.4, they behave identically. The code has this comment, some
> > form of which probably belongs in the documentation:
> >
> > /*
> > * Our interpretation of intervals with a limited set of fields
> > is
> > * that fields to the right of the last one specified are
> > zeroed out,
> > * but those to the left of it remain valid. Thus for example
> > there
> > * is no operational difference between INTERVAL YEAR TO MONTH
> > and
> > * INTERVAL MONTH. In some cases we could meaningfully
> > enforce that
> > * higher-order fields are zero; for example INTERVAL DAY could
> > reject
> > * nonzero "month" field. However that seems a bit pointless
> > when we
> > * can't do it consistently. (We cannot enforce a range limit
> > on the
> > * highest expected field, since we do not have any equivalent
> > of
> > * SQL's <interval leading field precision>.)
> > *
> > * Note: before PG 8.4 we interpreted a limited set of fields as
> > * actually causing a "modulo" operation on a given value,
> > potentially
> > * losing high-order as well as low-order information. But
> > there is
> > * no support for such behavior in the standard, and it seems
> > fairly
> > * undesirable on data consistency grounds anyway. Now we
> > only
> > * perform truncation or rounding of low-order fields.
> > */
>
> I am lost on how we could mention that in the docs.
Perhaps something like this?
*** a/doc/src/sgml/datatype.sgml
--- b/doc/src/sgml/datatype.sgml
***************
*** 1622,1627 **** HOUR TO MINUTE
--- 1622,1630 ----
HOUR TO SECOND
MINUTE TO SECOND
</literallayout>
+ These only zero less-significant fields, making <literal>DAY TO
+ MINUTE</>, <literal>HOUR TO MINUTE</> and <literal>MINUTE</> equivalent.
+ The redundant forms exist for compatibility with the SQL standard.
Note that if both <replaceable>fields</replaceable> and
<replaceable>p</replaceable> are specified, the
<replaceable>fields</replaceable> must include <literal>SECOND</>,
--
Sent via pgsql-general mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general