aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/interfaces/ecpg/ChangeLog6
-rw-r--r--src/interfaces/ecpg/lib/execute.c16
-rw-r--r--src/interfaces/ecpg/preproc/preproc.y14
3 files changed, 18 insertions, 18 deletions
diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index ed909933d15..f81453ba28c 100644
--- a/src/interfaces/ecpg/ChangeLog
+++ b/src/interfaces/ecpg/ChangeLog
@@ -989,5 +989,11 @@ Wed Oct 25 08:53:07 CEST 2000
Wed Oct 25 21:22:17 CEST 2000
- Synced gram.y and preproc.y.
+
+Son Oct 29 11:26:06 CET 2000
+
+ - Removed multibyte stuff since client does not know about encoding
+ in the backend.
+ - Fixed quoting bug reported by Sascha Demetrio (sd@b-comp.de).
- Set ecpg version to 2.8.0.
- Set library version to 3.2.0.
diff --git a/src/interfaces/ecpg/lib/execute.c b/src/interfaces/ecpg/lib/execute.c
index de27637ea76..f1d11105f07 100644
--- a/src/interfaces/ecpg/lib/execute.c
+++ b/src/interfaces/ecpg/lib/execute.c
@@ -102,6 +102,7 @@ quote_postgres(char *arg, int lineno)
return (res);
res[ri++] = '\'';
+
for (i = 0; arg[i]; i++, ri++)
{
switch (arg[i])
@@ -118,6 +119,7 @@ quote_postgres(char *arg, int lineno)
res[ri] = arg[i];
}
+
res[ri++] = '\'';
res[ri] = '\0';
@@ -247,10 +249,17 @@ next_insert(char *text)
char *ptr = text;
bool string = false;
+printf("%s\n", text);
for (; *ptr != '\0' && (*ptr != '?' || string); ptr++)
- if (*ptr == '\'' && *(ptr - 1) != '\\')
- string = string ? false : true;
+ {
+ if (*ptr == '\\') /* escape character */
+ ptr++;
+ else
+ if (*ptr == '\'' )
+ string = string ? false : true;
+ }
+printf("%s\n", ptr);
return (*ptr == '\0') ? NULL : ptr;
}
@@ -704,7 +713,6 @@ ECPGexecute(struct statement * stmt)
strcpy(newcopy, copiedquery);
if ((p = next_insert(newcopy + hostvarl)) == NULL)
{
-
/*
* We have an argument but we dont have the matched up string
* in the string
@@ -995,7 +1003,7 @@ ECPGdo(int lineno, const char *connection_name, char *query,...)
*
* Copyright (c) 2000, Christof Petig <christof.petig@wtal.de>
*
- * $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/execute.c,v 1.12 2000/10/02 16:15:53 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/execute.c,v 1.13 2000/10/29 09:44:58 meskes Exp $
*/
PGconn *ECPG_internal_get_connection(char *name);
diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y
index 9b32dd546d0..eb4a03cbf7b 100644
--- a/src/interfaces/ecpg/preproc/preproc.y
+++ b/src/interfaces/ecpg/preproc/preproc.y
@@ -11,10 +11,6 @@
#include "extern.h"
-#ifdef MULTIBYTE
-#include "mb/pg_wchar.h"
-#endif
-
/*
* Variables containing simple states.
*/
@@ -838,11 +834,7 @@ VariableSetStmt: SET ColId TO var_value
}
| SET NAMES opt_encoding
{
-#ifdef MULTIBYTE
$$ = cat2_str(make_str("set names"), $3);
-#else
- mmerror(ET_ERROR, "SET NAMES is not supported.");
-#endif
}
;
@@ -2252,16 +2244,10 @@ createdb_opt_location: LOCATION '=' StringConst { $$ = cat2_str(make_str("locat
createdb_opt_encoding: ENCODING '=' PosIntStringConst
{
-#ifndef MULTIBYTE
- mmerror(ET_ERROR, "Multi-byte support is not enabled.");
-#endif
$$ = cat2_str(make_str("encoding ="), $3);
}
| ENCODING '=' DEFAULT
{
-#ifndef MULTIBYTE
- mmerror(ET_ERROR, "Multi-byte support is not enabled.");
-#endif
$$ = make_str("encoding = default");
}
| /*EMPTY*/ { $$ = NULL; }