Re: [BUGS] Bug #640: ECPG: inserting float numbers - Mailing list pgsql-hackers
From | Bruce Momjian |
---|---|
Subject | Re: [BUGS] Bug #640: ECPG: inserting float numbers |
Date | |
Msg-id | 200206111058.g5BAwsv23958@candle.pha.pa.us Whole thread Raw |
In response to | Re: [BUGS] Bug #640: ECPG: inserting float numbers (Lee Kindness <lkindness@csl.co.uk>) |
Responses |
Re: [BUGS] Bug #640: ECPG: inserting float numbers
Re: [BUGS] Bug #640: ECPG: inserting float numbers |
List | pgsql-hackers |
OK, I have reproduced the problem on my machine:#$ ./a.out floattestcol1: -0.000006*!*!* Error -220: No such connectionNULL in line 21. Wow, how did that "A" get into the query string: insert into tab1 ( col1 ) values ( -6.0000002122251e-06A ) Quite strange. Michael, any ideas? --------------------------------------------------------------------------- Lee Kindness wrote: Content-Description: message body text > Bruce, the attached source reproduces this on 7.2, I don't have a > later version at hand to test if it's been fixed: > > createdb floattest > echo "CREATE TABLE tab1(col1 FLOAT);" | psql floattest > ecpg insert-float.pgc > gcc insert-float.c -lecpg -lpq > ./a.out floattest > > results in: > > col1: -0.000006 > *!*!* Error -400: 'ERROR: parser: parse error at or near "a"' in line 21. > > and in epcgdebug: > > [29189]: ECPGexecute line 21: QUERY: insert into tab1 ( col1 ) values ( -6.0000002122251e-06A ) on connection floattest > [29189]: ECPGexecute line 21: Error: ERROR: parser: parse error at or near "a" > [29189]: raising sqlcode -400 in line 21, ''ERROR: parser: parse error at or near "a"' in line 21.'. > > Regards, Lee Kindness. > > Bruce Momjian writes: > > Has this been addressed? Can you supply a reproducable example? > > Edward Pilipczuk wrote: > > > On Monday, 22 April 2002 18:41, you wrote: > > > > Edward (edx@astercity.net) reports a bug with a severity of 1 > > > > ECPG: inserting float numbers > > > > 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 > > > > [ snip ] > > #include <stdlib.h> > > EXEC SQL INCLUDE sqlca; > > int main(int argc, char **argv) > { > EXEC SQL BEGIN DECLARE SECTION; > char *db = argv[1]; > float col1; > EXEC SQL END DECLARE SECTION; > FILE *f; > > if( (f = fopen("ecpgdebug", "w" )) != NULL ) > ECPGdebug(1, f); > > EXEC SQL CONNECT TO :db; > EXEC SQL BEGIN; > > col1 = -6e-06; > printf("col1: %f\n", col1); > EXEC SQL INSERT INTO tab1(col1) VALUES (:col1); > if( sqlca.sqlcode < 0 ) > { > fprintf(stdout, "*!*!* Error %ld: %s\n", sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc); > EXEC SQL ABORT; > EXEC SQL DISCONNECT; > return( 1 ); > } > else > { > EXEC SQL COMMIT; > EXEC SQL DISCONNECT; > return( 0 ); > } > } -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026
pgsql-hackers by date: