]> granicus.if.org Git - postgresql/commitdiff
Added patch to temporarily disable locale for descriptors too (Christof)
authorMichael Meskes <meskes@postgresql.org>
Wed, 23 Jan 2002 16:34:06 +0000 (16:34 +0000)
committerMichael Meskes <meskes@postgresql.org>
Wed, 23 Jan 2002 16:34:06 +0000 (16:34 +0000)
src/interfaces/ecpg/ChangeLog
src/interfaces/ecpg/lib/descriptor.c
src/interfaces/ecpg/test/header_test.h

index 722257f1af8d99e0eafbe4fe60d4a4628d42c382..ea19bab60f055ad12b9aac37b91d52b8bb4c9baa 100644 (file)
@@ -1211,5 +1211,9 @@ Sat Jan 12 22:04:02 CET 2002
 Fri Jan 18 16:49:02 CET 2002
 
        - Accept subsequent commits.
+
+Wed Jan 23 17:35:23 CET 2002
+
+       - Added patch to temporarily disable locale for descriptors too (Christof).
        - Set ecpg version to 2.9.0.
         - Set library version to 3.3.0.
index 749272394c920f5e54edb4f5e48f2fb9fe8c3a31..80180e44842913b5e8eb239cd1b9235afec5a5e1 100644 (file)
@@ -1,6 +1,6 @@
 /* dynamic SQL support routines
  *
- * $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/descriptor.c,v 1.21 2002/01/11 14:43:11 meskes Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/descriptor.c,v 1.22 2002/01/23 16:34:06 meskes Exp $
  */
 
 #include "postgres_fe.h"
@@ -330,11 +330,22 @@ ECPGget_desc(int lineno, char *desc_name, int index,...)
        if (data_var.type!=ECPGt_EORT)
        {
                struct statement stmt;
+               char       *oldlocale;
+               
+               /* Make sure we do NOT honor the locale for numeric input */
+               /* since the database gives the standard decimal point */
+               oldlocale = strdup(setlocale(LC_NUMERIC, NULL));
+               setlocale(LC_NUMERIC, "C");
+               
                memset (&stmt, 0, sizeof stmt);
                stmt.lineno=lineno;
+               
                /* desparate try to guess something sensible */
                stmt.connection=ECPGget_connection(NULL);
                ECPGstore_result(ECPGresult, index, &stmt, &data_var);
+               
+               setlocale(LC_NUMERIC, oldlocale);
+               ECPGfree(oldlocale);
        }
        else if (data_var.ind_type!=ECPGt_NO_INDICATOR)
        {
index 388cfad1eec9c722994c07c1f983fe7ca8d4e437..aacc8ba7cec4452ff19dfd6d75365f924490620e 100644 (file)
@@ -1,5 +1,3 @@
-exec sql include sqlca;
-
 #include "stdlib.h"
 
 static void