]> granicus.if.org Git - postgresql/commitdiff
Removed multibyte stuff since client does not know about encoding in the backendFixed...
authorMichael Meskes <meskes@postgresql.org>
Sun, 29 Oct 2000 09:44:58 +0000 (09:44 +0000)
committerMichael Meskes <meskes@postgresql.org>
Sun, 29 Oct 2000 09:44:58 +0000 (09:44 +0000)
src/interfaces/ecpg/ChangeLog
src/interfaces/ecpg/lib/execute.c
src/interfaces/ecpg/preproc/preproc.y

index ed909933d15a93c572c138557750739f8a228cc2..f81453ba28cacca538adbe7837dc3d667eac0001 100644 (file)
@@ -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.
index de27637ea7600f8ce57d2f1014e088ce20eb165b..f1d11105f074d1d4eb2839ecc362962b08f98eed 100644 (file)
@@ -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);
index 9b32dd546d0c54ecc85b7a92d90ecf0761cd0c9b..eb4a03cbf7b875cd1c75d790c67ce5b148069774 100644 (file)
 
 #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; }