ECPG Segfault and variable usage question.
От | Jürgen Cappel |
---|---|
Тема | ECPG Segfault and variable usage question. |
Дата | |
Msg-id | JEEKIPNAKJNCFLMOBKHGAEEEDCAA.email@juergen-cappel.de обсуждение исходный текст |
Ответы |
Re: ECPG Segfault and variable usage question.
Re: ECPG Segfault and variable usage question. |
Список | pgsql-interfaces |
Hello, this is a code snippet that causes ECPG to segfault. It's quite tricky to produce, as changing the variable name from 'var' to 'myvar' already causes things to compile fine ... #define CHAR_LENGTH 25 myfunction () { EXEC SQL BEGIN DECLARE SECTION; char var[2*CHAR_LENGTH]; EXEC SQL END DECLARE SECTION; EXEC SQL DECLARE mycursor CURSOR FOR SELECT att1, att2 FROM mytable WHERE att1 LIKE :var ESCAPE '\\'; EXEC SQL OPENmycursor; } Stack trace was obtained using a snapshot from about 2 weeks ago, ECPG from the 7.4.1 release segfaults also. #0 0x4015fdcb in chunk_free () from /lib/libc.so.6 #1 0x4015fc53 in free () from /lib/libc.so.6 #2 0x080685b7 in dump_variables (list=0x80c1408, mode=1) at variable.c:405 #3 0x08066d56 in output_statement ( stmt=0x80c14f8 "declare mycursor cursor for select att1 , att2 from mytable where att1 like ? escape '\\\\' ", mode=0, con=0x0) at output.c:126 #4 0x0804af02 in yyparse () at preproc.y:780 #5 0x0806671d in main (argc=8, argv=0xbffff264) at ecpg.c:409 #6 0x401089ed in __libc_start_main () from /lib/libc.so.6 Another problem that's giving me headaches trying to find a workaround for is the following use of variables as data sources in INSERT/UPDATE statements: :myarray[index[10]] Any comments, suggestions, hints ? Thanks a lot, Jürgen
В списке pgsql-interfaces по дате отправления: