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

Started by Mathias Pickerabout 22 years ago3 messagesgeneral
Jump to latest
#1Mathias Picker
Mathias.Picker@virtual-earth.de

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

#2Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Mathias Picker (#1)
Re: postgres 7.4.2: float(20) results in error msg, but

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)

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Mathias Picker (#1)
Re: postgres 7.4.2: float(20) results in error msg, but should not since 7.4)

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