From a79f8195de796d4f7b5e78c358a5968076238b6f Mon Sep 17 00:00:00 2001 From: Michael Meskes <meskes@postgresql.org> Date: Tue, 5 Oct 2004 10:48:37 +0000 Subject: [PATCH] '::' is no longer interpreted as a variable in a prepare statement. --- src/interfaces/ecpg/ChangeLog | 5 +++++ src/interfaces/ecpg/ecpglib/prepare.c | 13 +++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog index bc0c3af03e8..824bee4118c 100644 --- a/src/interfaces/ecpg/ChangeLog +++ b/src/interfaces/ecpg/ChangeLog @@ -1864,6 +1864,11 @@ Mon Sep 27 11:05:49 CEST 2004 - Synced parser. - Removed Oracle transaction syntax to fix shift/reduce error. + +Tue Oct 5 12:45:48 CEST 2004 + + - '::' is no longer interpreted as a variable in a prepare statement. + Added patch by Daniel Verite to fix this. - Set ecpg version to 3.2.0. - Set compat library version to 1.2. - Set ecpg library version to 4.2. diff --git a/src/interfaces/ecpg/ecpglib/prepare.c b/src/interfaces/ecpg/ecpglib/prepare.c index f850b9c8f7f..b6e79c6bbb6 100644 --- a/src/interfaces/ecpg/ecpglib/prepare.c +++ b/src/interfaces/ecpg/ecpglib/prepare.c @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/prepare.c,v 1.12 2004/05/21 13:50:12 meskes Exp $ */ +/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/prepare.c,v 1.13 2004/10/05 10:48:37 meskes Exp $ */ #define POSTGRES_ECPG_INTERNAL #include "postgres_fe.h" @@ -46,9 +46,14 @@ replace_variables(char *text) if (!string && *ptr == ':') { - *ptr = '?'; - for (++ptr; *ptr && isvarchar(*ptr); ptr++) - *ptr = ' '; + if (ptr[1]==':') + ptr+=2; /* skip '::' */ + else + { + *ptr = '?'; + for (++ptr; *ptr && isvarchar(*ptr); ptr++) + *ptr = ' '; + } } } } -- GitLab