diff options
Diffstat (limited to 'src/interfaces/ecpg/ecpglib/execute.c')
-rw-r--r-- | src/interfaces/ecpg/ecpglib/execute.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/src/interfaces/ecpg/ecpglib/execute.c b/src/interfaces/ecpg/ecpglib/execute.c index c585a81b580..e1e8a43f4f3 100644 --- a/src/interfaces/ecpg/ecpglib/execute.c +++ b/src/interfaces/ecpg/ecpglib/execute.c @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.40 2005/06/02 12:35:11 meskes Exp $ */ +/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.41 2005/07/02 17:01:53 momjian Exp $ */ /* * The aim is to get a simpler inteface to the database routines. @@ -45,21 +45,14 @@ quote_postgres(char *arg, int lineno) if (!res) return (res); + if (strchr(arg, '\\') != NULL) + res[ri++] = ESCAPE_STRING_SYNTAX; res[ri++] = '\''; for (i = 0; arg[i]; i++, ri++) { - switch (arg[i]) - { - case '\'': - res[ri++] = '\''; - break; - case '\\': - res[ri++] = '\\'; - break; - default: - ; - } + if (SQL_STR_DOUBLE(arg[i])) + res[ri++] = arg[i]; res[ri] = arg[i]; } |