Re: Problem with factorial operator - Mailing list pgsql-general

From Bruce Momjian
Subject Re: Problem with factorial operator
Date
Msg-id 200204180336.g3I3asb02755@candle.pha.pa.us
Whole thread Raw
In response to Problem with factorial operator  (Jean-Luc Lachance <jllachan@nsd.ca>)
Responses Re: Problem with factorial operator
List pgsql-general
Jean-Luc Lachance wrote:
> Hi all,
>
> The PG Documentation states:
>
>
> tgl=> select cast(text '44' as int8) ! as "factorial";
>       factorial
> ---------------------
>  2673996885588443136
> (1 row)
>
>
> If you try it, you will get the same result, but it is the wrong answer.
> Factorial work up to 20. After that one gets negative results.

I changed the docs to do a 20!.

--
  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/typeconv.sgml
===================================================================
RCS file: /cvsroot/pgsql/doc/src/sgml/typeconv.sgml,v
retrieving revision 1.20
diff -c -r1.20 typeconv.sgml
*** doc/src/sgml/typeconv.sgml    20 Jan 2002 22:19:56 -0000    1.20
--- doc/src/sgml/typeconv.sgml    18 Apr 2002 03:35:58 -0000
***************
*** 435,441 ****
  is defined only for integer data types, not for float8.  So, if we
  try a similar case with <literal>!</>, we get:
  <screen>
! tgl=> select text '44' ! as "factorial";
  ERROR:  Unable to identify a postfix operator '!' for type 'text'
          You may need to add parentheses or an explicit cast
  </screen>
--- 435,441 ----
  is defined only for integer data types, not for float8.  So, if we
  try a similar case with <literal>!</>, we get:
  <screen>
! tgl=> select text '20' ! as "factorial";
  ERROR:  Unable to identify a postfix operator '!' for type 'text'
          You may need to add parentheses or an explicit cast
  </screen>
***************
*** 443,452 ****
  possible <literal>!</> operators should be preferred.  We can help
  it out with an explicit cast:
  <screen>
! tgl=> select cast(text '44' as int8) ! as "factorial";
        factorial
  ---------------------
!  2673996885588443136
  (1 row)
  </screen>
  </para>
--- 443,452 ----
  possible <literal>!</> operators should be preferred.  We can help
  it out with an explicit cast:
  <screen>
! tgl=> select cast(text '20' as int8) ! as "factorial";
        factorial
  ---------------------
!  2432902008176640000
  (1 row)
  </screen>
  </para>
Index: src/interfaces/python/pgdb.py
===================================================================
RCS file: /cvsroot/pgsql/src/interfaces/python/pgdb.py,v
retrieving revision 1.10
diff -c -r1.10 pgdb.py
*** src/interfaces/python/pgdb.py    19 Mar 2002 02:47:57 -0000    1.10
--- src/interfaces/python/pgdb.py    18 Apr 2002 03:36:04 -0000
***************
*** 337,343 ****
  ### module interface

  # connects to a database
! def connect(dsn = None, user = None, password = None, host = None, database = None):
      # first get params from DSN
      dbport = -1
      dbhost = ""
--- 337,343 ----
  ### module interface

  # connects to a database
! def connect(dsn = None, user = None, password = None, xhost = None, database = None):
      # first get params from DSN
      dbport = -1
      dbhost = ""
***************
*** 364,372 ****
          dbpasswd = password
      if database != None:
          dbbase = database
!     if host != None:
          try:
!             params = string.split(host, ":")
              dbhost = params[0]
              dbport = int(params[1])
          except:
--- 364,372 ----
          dbpasswd = password
      if database != None:
          dbbase = database
!     if xhost != None:
          try:
!             params = string.split(xhost, ":")
              dbhost = params[0]
              dbport = int(params[1])
          except:

pgsql-general by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Re : Solaris Performance - Profiling (Solved)
Next
From: Martijn van Oosterhout
Date:
Subject: Re: Date precision problem