From: | "Daniel Verite" <daniel(at)manitou-mail(dot)org> |
---|---|
To: | pgsql-interfaces(at)postgresql(dot)org |
Subject: | bugfix proposal for ecpglib prepare's parse code |
Date: | 2004-09-30 11:12:35 |
Message-ID: | 20040930131206.2513124@localhost |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-interfaces |
Hello,
A problem with ecpg reported in pgsql-fr-general:
http://archives.postgresql.org/pgsql-fr-generale/2004-09/msg00024.php
boils down to ecpglib interpreting two consecutive colons as a placeholder
(or maybe two) for a host variable in the context of an EXEC SQL PREPARE :stmt
This leads to failure when '::' is used in the statement as a cast operator, as
it is in the message pointed above.
The small patch below is a fix for this (it applies within pg8.0.0-beta3 to
src/interfaces/ecpg/ecpglib/prepare.c):
*** prepare.c~ Fri May 21 15:50:12 2004
--- prepare.c Wed Sep 29 17:35:58 2004
***************
*** 46,54 ****
if (!string && *ptr == ':')
{
! *ptr = '?';
! for (++ptr; *ptr && isvarchar(*ptr); ptr++)
! *ptr = ' ';
}
}
}
--- 46,59 ----
if (!string && *ptr == ':')
{
! if (ptr[1]==':')
! ptr+=2; /* skip '::' */
! else
! {
! *ptr = '?';
! for (++ptr; *ptr && isvarchar(*ptr); ptr++)
! *ptr = ' ';
! }
}
}
}
Regards,
--
Daniel
PostgreSQL-powered mail user agent and storage: http://www.manitou-mail.org
From | Date | Subject | |
---|---|---|---|
Next Message | Oliver D. | 2004-10-01 14:29:33 | libpq Windows : Static Link |
Previous Message | Carlos Hasan | 2004-09-28 00:11:51 | PQerrorMessage() bug? |