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: