Обсуждение: Bug #656: timestamp function generates parsing errors when used as specified in the documentation

Поиск
Список
Период
Сортировка

Bug #656: timestamp function generates parsing errors when used as specified in the documentation

От
pgsql-bugs@postgresql.org
Дата:
Bron Gondwana (brong@h-r-s.com) reports a bug with a severity of 1
The lower the number the more severe it is.

Short Description
timestamp function generates parsing errors when used as specified in the documentation

Long Description
See the following session examples using the form given in the documentation.  'select timestamp(now());' fails
similarly.

All systems are running Debian GNU/Linux 3.0.

... I have a pile of scripts that use the timestamp function to convert incoming date-times for comparison.  This
breakingwithout 
the change being documented is causing major headaches here!

I will be reverting to 7.1.3 in the short term.


Sample Code
... Three different machines.
a) luet running 7.1.3 on i386
b) grendel running 7.2.1 on i386
c) golgotha running 7.2.1 on sparc

a)
brong@luet~>echo "select timestamp(date '2000-12-25');" | psql template1
       timestamp
------------------------
 2000-12-25 00:00:00+11
(1 row)

b)
brong@grendel~>echo "select timestamp(date '2000-12-25');" | psql template1
ERROR:  parser: parse error at or near "date"

c)
brong@golgotha~>echo "select timestamp(date '2000-12-25');" | psql template1
ERROR:  parser: parse error at or near "date"


No file was uploaded with this report
pgsql-bugs@postgresql.org writes:
> See the following session examples using the form given in the documentation.  'select timestamp(now());' fails
similarly.

I'm afraid you've got bit by our continuing pursuit of SQL standard
compliance.  The 7.2 release notes do point out:

Observe the following incompatibilities:
  *  The timestamp() function is no longer available. Use timestamp 'string' instead, or CAST.

but I notice that the last two examples in Table 4-17 "Date/Time Functions"
didn't get fixed.  (AFAICT there are no other places in current
documentation that claim you can do that.)

            regards, tom lane

Re: Bug #656: timestamp function generates parsing errors when

От
Bruce Momjian
Дата:
Tom Lane wrote:
> pgsql-bugs@postgresql.org writes:
> > See the following session examples using the form given in the documentation.  'select timestamp(now());' fails
similarly.
>
> I'm afraid you've got bit by our continuing pursuit of SQL standard
> compliance.  The 7.2 release notes do point out:
>
> Observe the following incompatibilities:
>   *  The timestamp() function is no longer available. Use timestamp 'string' instead, or CAST.
>
> but I notice that the last two examples in Table 4-17 "Date/Time Functions"
> didn't get fixed.  (AFAICT there are no other places in current
> documentation that claim you can do that.)

I have removed those two timestamp() entries from the SGML table;  patch
attached.  I don't see any need to mention casting in that table.   In
fact, timestamp() was the only conversion function mentioned in that
table.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026
Index: doc/src/sgml/func.sgml
===================================================================
RCS file: /cvsroot/pgsql/doc/src/sgml/func.sgml,v
retrieving revision 1.98
diff -c -r1.98 func.sgml
*** doc/src/sgml/func.sgml    18 May 2002 13:47:59 -0000    1.98
--- doc/src/sgml/func.sgml    2 Jun 2002 21:51:45 -0000
***************
*** 2730,2750 ****
      <entry><literal>Wed Feb 21 17:01:13.000126 2001 EST</literal></entry>
         </row>

-        <row>
-     <entry><function>timestamp</function>(<type>date</type>)</entry>
-     <entry><type>timestamp</type></entry>
-     <entry><type>date</type> to <type>timestamp</type></entry>
-     <entry><literal>timestamp(date '2000-12-25')</literal></entry>
-     <entry><literal>2000-12-25 00:00:00</literal></entry>
-        </row>
-
-        <row>
-     <entry><function>timestamp</function>(<type>date</type>, <type>time</type>)</entry>
-     <entry><type>timestamp</type></entry>
-     <entry><type>date</type> and <type>time</type> to <type>timestamp</type></entry>
-     <entry><literal>timestamp(date '1998-02-24',time '23:07')</literal></entry>
-     <entry><literal>1998-02-24 23:07:00</literal></entry>
-        </row>
        </tbody>
       </tgroup>
      </table>
--- 2730,2735 ----