ECPG Deallocate PREPARE statement - bug ?

From: leif(at)crysberg(dot)dk
To: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: ECPG Deallocate PREPARE statement - bug ?
Date: 2009-07-23 11:52:27
Message-ID: 27965575.198751248349947629.JavaMail.root@quick
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi guys,

I have a program that I need compile using PostgreSQL 8.4.0 (or later) and it must be able to run on an 8.3.5 based system as well as 8.4.0. I'm using embedded SQL for C and I have the following sequence of statements:

snprintf( stmt, 3000, "SELECT count(*) FROM %s WHERE %s", *table, *where );
EXEC SQL AT :_thisDbConn PREPARE cntstmt FROM :stmt;
EXEC SQL AT :_thisDbConn EXECUTE cntstmt INTO :recCount :fnull;
.
.
EXEC SQL DEALLOCATE PREPARE cntstmt;

This seems to be ok running on the 8.4.0 system, but when running it on the 8.3.5, it complains that it is an 'Invalid statement name cntstmt' for the deallocation.

I then tried to add the 'AT :_thisDbConn' to the DEALLOCATE statement, but ecpg complained that there was no "at" allowed for deallocate. However, looking at the output (the .c file) I noticed that it had generated an apparently correct ECPG_deallocate() call. Manually compiling this and linking the program turned out to be able to run on both the 8.3.5 and the 8.4.0 system without problems.

Is this a bug in ecpg or am I doing something wrong ?

Please advise,

Leif

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Thomas Kellerer 2009-07-23 12:12:58 Re: comparing NEW and OLD (any good this way?)
Previous Message Pavel Stehule 2009-07-23 11:45:36 Re: comparing NEW and OLD (any good this way?)