Thread: postgres 7.4.2: float(20) results in error msg, but should not since 7.4)

postgres 7.4.2: float(20) results in error msg, but should not since 7.4)

From
Mathias Picker
Date:
While trying to install the roundup issue tracking system I discovered
the following - faulty - behaviour:

My fresh postgres 7.4.2 install on a FreeBSD 5.2-CURRENT machine replies

"ERROR:  precision for FLOAT must be less than 16"

to

"create table otks (otk_key varchar(255),otk_value
varchar(255),otk_time             float(20));"


Now http://www.postgresql.org/docs/7.4/static/datatype.html#DATATYPE-FLOAT
says

"PostgreSQL accepts float(1) to float(24) as selecting the real type,
while float(25) to float(53) select double precision."

and

"Note:  Prior to PostgreSQL 7.4, the precision in float(p) was taken to
mean so many decimal digits. This has been corrected to match the SQL
standard, which specifies that the precision is measured in binary digits."

So it should work, I guess. Are there any switches to alter this
behaviour, or is this a bug??

Thanks, Mathias

Re: postgres 7.4.2: float(20) results in error msg, but

From
Stephan Szabo
Date:
On Sat, 3 Apr 2004, Mathias Picker wrote:

> While trying to install the roundup issue tracking system I discovered
> the following - faulty - behaviour:
>
> My fresh postgres 7.4.2 install on a FreeBSD 5.2-CURRENT machine replies
>
> "ERROR:  precision for FLOAT must be less than 16"
>
> to
>
> "create table otks (otk_key varchar(255),otk_value
> varchar(255),otk_time             float(20));"

It appears to work for me on a just compiled 7.4.2 under Redhat 8:

template1=# create table otks (otk_key varchar(255),otk_value
template1(# varchar(255),otk_time               float(20));
CREATE TABLE
template1=# select version();
                                                 version
---------------------------------------------------------------------------------------------------------
 PostgreSQL 7.4.2 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.2
20020903 (Red Hat Linux 8.0 3.2-7)
(1 row)


Mathias Picker <Mathias.Picker@virtual-earth.de> writes:
> My fresh postgres 7.4.2 install on a FreeBSD 5.2-CURRENT machine replies
> "ERROR:  precision for FLOAT must be less than 16"

This is certainly pilot error: you are talking to a 7.3 or earlier
server.  7.4's corresponding error message isn't even spelt the same.

            regards, tom lane