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 ([EMAIL PROTECTED]) 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 ); } }
---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]