Skip site navigation (1) Skip section navigation (2)

Re: Bug #640: ECPG: inserting float numbers

From: Edward Pilipczuk <edx(at)astercity(dot)net>
To: edx(at)astercity(dot)net, pgsql-bugs(at)postgresql(dot)org
Subject: Re: Bug #640: ECPG: inserting float numbers
Date: 2002-05-01 05:25:55
Message-ID: 200205010525.g415Pq002655@plonk.dom (view raw or flat)
Thread:
Lists: pgsql-bugspgsql-hackers
On Monday, 22 April 2002 18:41, you wrote:
> Edward (edx(at)astercity(dot)net) reports a bug with a severity of 1
> The lower the number the more severe it is.
>
> Short Description
> ECPG: inserting float numbers
>
> Long Description
> Inserting records with single precision real variables having small value
> (range 1.0e-6 or less) frequently results in errors in ECPG translations
> putting into resulted sql statement unexpected characters => see fragments
> of sample code and ECPGdebug log where after value of rate variable the
> unexpected character '^A' appears
>
> Sample Code
> /* fragment of the program code */
> exec sql begin declare section;
> /* ... */
> float rate;                   /* level change rate  */
> /* ... */
> exec sql end declare section;
> /* ... */
> sprintf(buf,"INSERT: %.8s.%.8s @%.32s -> %08x/%08x %f %f %f %f %f", loc,
> name, ts, devstat, meastat, relative, level, ullage, rate, volume );
> dbg_message( __FILE__, __LINE__, DBG_DBI, MSG_SQL, buf );
> exec sql INSERT INTO rdr_meas ( name, loc, ts, devstat, meastat, relative,
> level, ullage, levelrate, volume ) VALUES ( :name, :loc, 'now', :devstat,
> :meastat, :relative, :level, :ullage, :rate, :volume ) ; /* ... */
> ---
> The above produces in ECPG debug :
> ...
> [2782]: ECPGexecute line 1042: QUERY: insert into rdr_meas ( name  , loc  ,
> ts  , devstat  , meastat  , relative  , level  , ullage  , levelrate  ,
> volume  ) values ( 'NR1     ' , 'Swedwood' , 'now' , 0 , 4096 ,
> 37.388961791992 , 0.71039032936096 , 1.1896096467972 , -5.5060195336409e-06
> ^A , 3.4871203899384 ) on connection radar [2782]: ECPGexecute line 1042:
> Error: ERROR:  parser: parse error at or near "^A" [2782]: raising sqlcode
> -400 in line 1042, ''ERROR:  parser: parse error at or near "^A"' in line
> 1042.'.
>
>
> No file was uploaded with this report
>
----------
I am fighting with this bug on "PostgreSQL 7.2 on i686-pc-linux-gnu, compiled 
by GCC 2.96". It appears also on 7.1.x, which was reported previously 
(see buglist -> ecpg: unstable INSERT operation) on August 2001.
The temporary workaround I apllied here is "if" statement before INSERT:
if( fabs( rate ) < 1.0e-3 ) rate = 0.0;

Edward

In response to

Responses

pgsql-hackers by date

Next:From: Christopher Kings-LynneDate: 2002-05-01 09:08:54
Subject: Problem with restoring a 7.1 dump
Previous:From: Ross J. ReedstromDate: 2002-05-01 05:21:46
Subject: Re: [INTERFACES] Schemas: status report, call for developers

pgsql-bugs by date

Next:From: Nigel J. AndrewsDate: 2002-05-01 22:10:13
Subject: createdb comments
Previous:From: Jean-Luc LachanceDate: 2002-04-30 22:07:50
Subject: Re: performance on update table from a join

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group