Bug #959: handling of 'nan' floating point value with pg_dump incorrect

From: pgsql-bugs(at)postgresql(dot)org
To: pgsql-bugs(at)postgresql(dot)org
Subject: Bug #959: handling of 'nan' floating point value with pg_dump incorrect
Date: 2003-04-28 21:22:32
Message-ID: 20030428212232.AC58947631F@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Jeff (cast_ent(at)yahoo(dot)ca) reports a bug with a severity of 3
The lower the number the more severe it is.

Short Description
handling of 'nan' floating point value with pg_dump incorrect

Long Description
I am using version 7.2.3-5.80 that comes with RH8.0.

Create a DB with a table in it with a float type column. Insert the value 'NaN' into the table.

Now dump the db using pg_dump.

Now restore the DB using psql and you get an error:
psql:dumpdb:36: ERROR: Attribute 'nan' not found

Seems that the 'dump' does not put the required '' quotes around the nan value.

You get the same error if you were to try:
INSERT INTO test VALUE(nan);
the above fails, but the following works:
INSERT INTO test VALUE('nan'); (or 'NaN' works as well).

Hope this helps.

Jeff

Sample Code
$createdb test
$psql test
>CREATE TABLE test (val float);
>INSERT INTO test VALUE(1.001);
>INSERT INTO test VALUE('NaN'); %This works fine
>\q
$pg_dump -D -C test > dumpdb
$dropdb test
$psql -f dumpdb -d template1

->output from last command:
$psql -f dumpdb -d template1
You are now connected as new user jeff.
CREATE DATABASE
You are now connected to database test as user jeff.
CREATE
INSERT 19010 1
psql:dumpdb:36: ERROR: Attribute 'nan' not found

->examination of dumpdb file (whitespace modified for readability)
--
-- Selected TOC Entries:
--
\connect - jeff
--
-- TOC Entry ID 1 (OID 0)
--
-- Name: test Type: DATABASE Owner: jeff
--
CREATE DATABASE "test" WITH TEMPLATE = template0 ENCODING = 0;
\connect test jeff
--
-- TOC Entry ID 2 (OID 18992)
--
-- Name: test Type: TABLE Owner: jeff
--
CREATE TABLE "test" (
"val" double precision
);
--
-- Data for TOC Entry ID 3 (OID 18992)
--
-- Name: test Type: TABLE DATA Owner: jeff
--
INSERT INTO "test" ("val") VALUES (1);
INSERT INTO "test" ("val") VALUES (NaN);

-> Note: Replacing the last line from dumpdb from:
INSERT INTO "test" ("val") VALUES (NaN);
to:
INSERT INTO "test" ("val") VALUES ('NaN');
makes everything work fine.

No file was uploaded with this report

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2003-04-29 03:42:09 Re: Bug #959: handling of 'nan' floating point value with pg_dump incorrect
Previous Message Tom Lane 2003-04-28 13:57:47 Re: Bug #958: plperl notice server log