Re: Bug #640: ECPG: inserting float numbers

Поиск
Список
Период
Сортировка
От Edward Pilipczuk
Тема Re: Bug #640: ECPG: inserting float numbers
Дата
Msg-id 200205010525.g415Pq002655@plonk.dom
обсуждение исходный текст
Ответ на Bug #640: ECPG: inserting float numbers  (pgsql-bugs@postgresql.org)
Ответы Re: Bug #640: ECPG: inserting float numbers  (Bruce Momjian <pgman@candle.pha.pa.us>)
Список pgsql-bugs
On Monday, 22 April 2002 18:41, you wrote:
> Edward (edx@astercity.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

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Bug #652: NAMEDATALEN limitations
Следующее
От: pgsql-bugs@postgresql.org
Дата:
Сообщение: Bug #653: Unable to insert binary data into BYTEA column in UTF8 DB