More outdated examples

Started by Peter Eisentrautalmost 23 years ago6 messages
#1Peter Eisentraut
peter_e@gmx.net

This example in User's Guide section 7.2 doesn't work anymore at all:

tgl=> select @ text '-4.5' as "abs";
abs
-----
4.5
(1 row)

What really happens is this:

=> select @ text '-4.5' as "abs";
ERROR: Unable to identify a prefix operator '@' for type 'text'
You may need to add parentheses or an explicit cast

Again, delete or new example?

--
Peter Eisentraut peter_e@gmx.net

#2Bruce Momjian
pgman@candle.pha.pa.us
In reply to: Peter Eisentraut (#1)
Re: More outdated examples

I can find no suitable replacement for this example. Can anyone else?

---------------------------------------------------------------------------

Peter Eisentraut wrote:

This example in User's Guide section 7.2 doesn't work anymore at all:

tgl=> select @ text '-4.5' as "abs";
abs
-----
4.5
(1 row)

What really happens is this:

=> select @ text '-4.5' as "abs";
ERROR: Unable to identify a prefix operator '@' for type 'text'
You may need to add parentheses or an explicit cast

Again, delete or new example?

--
Peter Eisentraut peter_e@gmx.net

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#2)
Re: More outdated examples

Bruce Momjian <pgman@candle.pha.pa.us> writes:

I can find no suitable replacement for this example. Can anyone else?

Peter Eisentraut wrote:

This example in User's Guide section 7.2 doesn't work anymore at all:

tgl=> select @ text '-4.5' as "abs";

Both of the examples in this section have been obsoleted by our recent
elimination of a lot of implicit casts. This one would still work if
text-to-float8 were an implicit cast, but it's not anymore. Also,
though the second one still acts as described, the reason given for it
in the text is wrong: the system is not unable to choose among multiple
alternatives. Rather, it finds *no* alternatives, again because the
text-to-various-int-types casts are no longer implicit.

The closest similar cases that I can find for the first example are not
good replacements because they are also slated for destruction :-(.
Basically, I see us moving away from the preferred-type mechanism, and
perhaps eliminating it entirely soon.

I'd just remove the whole of Example 7.3, I think. The mechanisms are
still there, for now, but they are not invoked in any standard cases.

regards, tom lane

#4Bruce Momjian
pgman@candle.pha.pa.us
In reply to: Tom Lane (#3)
1 attachment(s)
Re: More outdated examples

The following applied patch removes the section Tom thought wasn't
needed anymore.

---------------------------------------------------------------------------

Tom Lane wrote:

Bruce Momjian <pgman@candle.pha.pa.us> writes:

I can find no suitable replacement for this example. Can anyone else?

Peter Eisentraut wrote:

This example in User's Guide section 7.2 doesn't work anymore at all:

tgl=> select @ text '-4.5' as "abs";

Both of the examples in this section have been obsoleted by our recent
elimination of a lot of implicit casts. This one would still work if
text-to-float8 were an implicit cast, but it's not anymore. Also,
though the second one still acts as described, the reason given for it
in the text is wrong: the system is not unable to choose among multiple
alternatives. Rather, it finds *no* alternatives, again because the
text-to-various-int-types casts are no longer implicit.

The closest similar cases that I can find for the first example are not
good replacements because they are also slated for destruction :-(.
Basically, I see us moving away from the preferred-type mechanism, and
perhaps eliminating it entirely soon.

I'd just remove the whole of Example 7.3, I think. The mechanisms are
still there, for now, but they are not invoked in any standard cases.

regards, tom lane

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Attachments:

/bjm/difftext/plainDownload
Index: doc/src/sgml/typeconv.sgml
===================================================================
RCS file: /cvsroot/pgsql-server/doc/src/sgml/typeconv.sgml,v
retrieving revision 1.27
diff -c -c -r1.27 typeconv.sgml
*** doc/src/sgml/typeconv.sgml	13 Mar 2003 01:30:29 -0000	1.27
--- doc/src/sgml/typeconv.sgml	19 Mar 2003 21:17:32 -0000
***************
*** 403,459 ****
  </para>
  </example>
  
- <example>
- <title>Absolute-Value and Factorial Operator Type Resolution</title>
- 
- <para>
- The <productname>PostgreSQL</productname> operator catalog has several
- entries for the prefix operator <literal>@</>, all of which implement
- absolute-value operations for various numeric data types.  One of these
- entries is for type <type>float8</type>, which is the preferred type in
- the numeric category.  Therefore, <productname>PostgreSQL</productname>
- will use that entry when faced with a non-numeric input:
- <screen>
- SELECT @ '-4.5' AS "abs";
-  abs
- -----
-  4.5
- (1 row)
- </screen>
- Here the system has performed an implicit conversion from <type>text</type> to <type>float8</type>
- before applying the chosen operator.  We can verify that <type>float8</type> and
- not some other type was used:
- <screen>
- SELECT @ '-4.5e500' AS "abs";
- 
- ERROR:  Input '-4.5e500' is out of range for float8
- </screen>
- </para>
- 
- <para>
- On the other hand, the postfix operator <literal>!</> (factorial)
- is defined only for integer data types, not for <type>float8</type>.  So, if we
- try a similar case with <literal>!</>, we get:
- <screen>
- SELECT '20' ! AS "factorial";
- 
- ERROR:  Unable to identify a postfix operator '!' for type 'text'
-         You may need to add parentheses or an explicit cast
- </screen>
- This happens because the system can't decide which of the several
- possible <literal>!</> operators should be preferred.  We can help
- it out with an explicit cast:
- <screen>
- SELECT CAST('20' AS int8) ! AS "factorial";
- 
-       factorial
- ---------------------
-  2432902008176640000
- (1 row)
- </screen>
- </para>
- </example>
- 
  </sect1>
  
  <sect1 id="typeconv-func">
--- 403,408 ----
#5Peter Eisentraut
peter_e@gmx.net
In reply to: Bruce Momjian (#4)
Re: More outdated examples

The specific case that Tom complained about wasn't even in the latest
documentation sources anymore. I think the patch should be reverted.

Bruce Momjian writes:

The following applied patch removes the section Tom thought wasn't
needed anymore.

---------------------------------------------------------------------------

Tom Lane wrote:

Bruce Momjian <pgman@candle.pha.pa.us> writes:

I can find no suitable replacement for this example. Can anyone else?

Peter Eisentraut wrote:

This example in User's Guide section 7.2 doesn't work anymore at all:

tgl=> select @ text '-4.5' as "abs";

Both of the examples in this section have been obsoleted by our recent
elimination of a lot of implicit casts. This one would still work if
text-to-float8 were an implicit cast, but it's not anymore. Also,
though the second one still acts as described, the reason given for it
in the text is wrong: the system is not unable to choose among multiple
alternatives. Rather, it finds *no* alternatives, again because the
text-to-various-int-types casts are no longer implicit.

The closest similar cases that I can find for the first example are not
good replacements because they are also slated for destruction :-(.
Basically, I see us moving away from the preferred-type mechanism, and
perhaps eliminating it entirely soon.

I'd just remove the whole of Example 7.3, I think. The mechanisms are
still there, for now, but they are not invoked in any standard cases.

regards, tom lane

--
Peter Eisentraut peter_e@gmx.net

#6Bruce Momjian
pgman@candle.pha.pa.us
In reply to: Peter Eisentraut (#5)
Re: More outdated examples

OK, readded. Thanks.

---------------------------------------------------------------------------

Peter Eisentraut wrote:

The specific case that Tom complained about wasn't even in the latest
documentation sources anymore. I think the patch should be reverted.

Bruce Momjian writes:

The following applied patch removes the section Tom thought wasn't
needed anymore.

---------------------------------------------------------------------------

Tom Lane wrote:

Bruce Momjian <pgman@candle.pha.pa.us> writes:

I can find no suitable replacement for this example. Can anyone else?

Peter Eisentraut wrote:

This example in User's Guide section 7.2 doesn't work anymore at all:

tgl=> select @ text '-4.5' as "abs";

Both of the examples in this section have been obsoleted by our recent
elimination of a lot of implicit casts. This one would still work if
text-to-float8 were an implicit cast, but it's not anymore. Also,
though the second one still acts as described, the reason given for it
in the text is wrong: the system is not unable to choose among multiple
alternatives. Rather, it finds *no* alternatives, again because the
text-to-various-int-types casts are no longer implicit.

The closest similar cases that I can find for the first example are not
good replacements because they are also slated for destruction :-(.
Basically, I see us moving away from the preferred-type mechanism, and
perhaps eliminating it entirely soon.

I'd just remove the whole of Example 7.3, I think. The mechanisms are
still there, for now, but they are not invoked in any standard cases.

regards, tom lane

--
Peter Eisentraut peter_e@gmx.net

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073