Обсуждение: BUG #5969: ecpg can't see sqlca
The following bug has been logged online:
Bug reference: 5969
Logged by: Daniel Lyons
Email address: fusion@storytotell.org
PostgreSQL version: 9.0.3
Operating system: FreeBSD 8.2-RELEASE
Description: ecpg can't see sqlca
Details:
Under the current FreeBSD and the current PostgreSQL, ecpg-processed C
programs don't see the sqlca global variable. This wreaks havoc with error
handling. For example:
#include <stdlib.h>
#include <stdio.h>
EXEC SQL INCLUDE sqlca;
int main()
{
/* stop on any error */
EXEC SQL WHENEVER SQLERROR STOP;
/* connect to a non-existent database */
EXEC SQL CONNECT TO nonexistentdb USER nonexistentuser;
/* if we get here, something is wrong. */
printf("I'm still here, even though this database doesn't exist.\n");
return 0;
}
Same program does the right thing on a Linux machine I have access to, so it
may be a platform issue.
On Fri, Apr 08, 2011 at 10:47:32PM +0000, Daniel Lyons wrote: > Under the current FreeBSD and the current PostgreSQL, ecpg-processed C > programs don't see the sqlca global variable. This wreaks havoc with error > handling. For example: Could you please send me the precompiled version of your test case? Do you have THREAD_SAFETY compiled into PostgreSQL? Michael -- Michael Meskes Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org) Michael at BorussiaFan dot De, Meskes at (Debian|Postgresql) dot Org Jabber: michael.meskes at googlemail dot com VfL Borussia! Força Barça! Go SF 49ers! Use Debian GNU/Linux, PostgreSQL