Thread: BUG #5969: ecpg can't see sqlca

BUG #5969: ecpg can't see sqlca

From
"Daniel Lyons"
Date:
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.

Re: BUG #5969: ecpg can't see sqlca

From
Michael Meskes
Date:
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