Skip to content

Commit 51867a0

Browse files
author
Michael Meskes
committed
ECPG: Fix searching for quoted cursor names case-sensitively.
Patch by Böszörményi Zoltán <zb@cybertec.at>
1 parent d1b88f6 commit 51867a0

File tree

3 files changed

+3
-3
lines changed

3 files changed

+3
-3
lines changed

src/interfaces/ecpg/preproc/ecpg.addons

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ ECPG: DeclareCursorStmtDECLAREcursor_namecursor_optionsCURSORopt_holdFORSelectSt
290290
struct cursor *ptr, *this;
291291
char *cursor_marker = $2[0] == ':' ? mm_strdup("$0") : mm_strdup($2);
292292
char *comment, *c1, *c2;
293-
int (* strcmp_fn)(const char *, const char *) = ($2[0] == ':' ? strcmp : pg_strcasecmp);
293+
int (* strcmp_fn)(const char *, const char *) = (($2[0] == ':' || $2[0] == '"') ? strcmp : pg_strcasecmp);
294294

295295
for (ptr = cur; ptr != NULL; ptr = ptr->next)
296296
{

src/interfaces/ecpg/preproc/ecpg.header

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -492,7 +492,7 @@ add_additional_variables(char *name, bool insert)
492492
{
493493
struct cursor *ptr;
494494
struct arguments *p;
495-
int (* strcmp_fn)(const char *, const char *) = (name[0] == ':' ? strcmp : pg_strcasecmp);
495+
int (* strcmp_fn)(const char *, const char *) = ((name[0] == ':' || name[0] == '"') ? strcmp : pg_strcasecmp);
496496

497497
for (ptr = cur; ptr != NULL; ptr=ptr->next)
498498
{

src/interfaces/ecpg/preproc/ecpg.trailer

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ ECPGCursorStmt: DECLARE cursor_name cursor_options CURSOR opt_hold FOR prepared
291291
{
292292
struct cursor *ptr, *this;
293293
char *cursor_marker = $2[0] == ':' ? mm_strdup("$0") : mm_strdup($2);
294-
int (* strcmp_fn)(const char *, const char *) = ($2[0] == ':' ? strcmp : pg_strcasecmp);
294+
int (* strcmp_fn)(const char *, const char *) = (($2[0] == ':' || $2[0] == '"') ? strcmp : pg_strcasecmp);
295295
struct variable *thisquery = (struct variable *)mm_alloc(sizeof(struct variable));
296296
const char *con = connection ? connection : "NULL";
297297
char *comment;

0 commit comments

Comments
 (0)