summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meskes2002-01-23 16:34:06 +0000
committerMichael Meskes2002-01-23 16:34:06 +0000
commitcb8961ab47014e8c0998e27bd8fa8be7c45834fc (patch)
tree935abe207c504c9f1258cb247d3a99d46a5ccc3b
parent9d25b39c80ef179802baf5a88433e6ab31ed6a3a (diff)
Added patch to temporarily disable locale for descriptors too (Christof)
-rw-r--r--src/interfaces/ecpg/ChangeLog4
-rw-r--r--src/interfaces/ecpg/lib/descriptor.c13
-rw-r--r--src/interfaces/ecpg/test/header_test.h2
3 files changed, 16 insertions, 3 deletions
diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index 722257f1af8..ea19bab60f0 100644
--- a/src/interfaces/ecpg/ChangeLog
+++ b/src/interfaces/ecpg/ChangeLog
@@ -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.
diff --git a/src/interfaces/ecpg/lib/descriptor.c b/src/interfaces/ecpg/lib/descriptor.c
index 749272394c9..80180e44842 100644
--- a/src/interfaces/ecpg/lib/descriptor.c
+++ b/src/interfaces/ecpg/lib/descriptor.c
@@ -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)
{
diff --git a/src/interfaces/ecpg/test/header_test.h b/src/interfaces/ecpg/test/header_test.h
index 388cfad1eec..aacc8ba7cec 100644
--- a/src/interfaces/ecpg/test/header_test.h
+++ b/src/interfaces/ecpg/test/header_test.h
@@ -1,5 +1,3 @@
-exec sql include sqlca;
-
#include "stdlib.h"
static void