From 36b0f67335d38235c21118fc3a3e2619450193a3 Mon Sep 17 00:00:00 2001
From: Michael Meskes <meskes@postgresql.org>
Date: Tue, 23 Nov 1999 10:32:16 +0000
Subject: [PATCH] *** empty log message ***

---
 src/interfaces/ecpg/ChangeLog       |  6 ++++++
 src/interfaces/ecpg/lib/Makefile.in |  4 ++--
 src/interfaces/ecpg/lib/ecpglib.c   | 10 +++++++++-
 3 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index adbe47ed4b8..4742b55bb1f 100644
--- a/src/interfaces/ecpg/ChangeLog
+++ b/src/interfaces/ecpg/ChangeLog
@@ -720,3 +720,9 @@ Mon Nov 22 18:26:34 CET 1999
 	- Clean up parser.
 	- Set library version to 3.0.6.
         - Set ecpg version to 2.6.10.
+
+Tue Nov 23 07:59:01 CET 1999
+
+	- Ignore locale setting in ECPGdo.
+	- Set library version to 3.0.7.
+
diff --git a/src/interfaces/ecpg/lib/Makefile.in b/src/interfaces/ecpg/lib/Makefile.in
index 6a6955f7d87..00265d9443f 100644
--- a/src/interfaces/ecpg/lib/Makefile.in
+++ b/src/interfaces/ecpg/lib/Makefile.in
@@ -6,13 +6,13 @@
 # Copyright (c) 1994, Regents of the University of California
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/Makefile.in,v 1.51 1999/11/22 12:48:46 meskes Exp $
+#    $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/Makefile.in,v 1.52 1999/11/23 10:32:16 meskes Exp $
 #
 #-------------------------------------------------------------------------
 
 NAME= ecpg
 SO_MAJOR_VERSION= 3
-SO_MINOR_VERSION= 0.6
+SO_MINOR_VERSION= 0.7
 
 SRCDIR= @top_srcdir@
 include $(SRCDIR)/Makefile.global
diff --git a/src/interfaces/ecpg/lib/ecpglib.c b/src/interfaces/ecpg/lib/ecpglib.c
index 9112ebb55b8..2d16cb72471 100644
--- a/src/interfaces/ecpg/lib/ecpglib.c
+++ b/src/interfaces/ecpg/lib/ecpglib.c
@@ -18,6 +18,7 @@
 #include <stdarg.h>
 #include <string.h>
 #include <ctype.h>
+#include <locale.h>
 
 #include <libpq-fe.h>
 #include <libpq/pqcomm.h>
@@ -656,7 +657,6 @@ ECPGexecute(struct statement * stmt)
 	}
 	else
 	{
-/*		sqlca.sqlerrd[2] = 0;*/
 		var = stmt->outlist;
 		switch (PQresultStatus(results))
 		{
@@ -1050,6 +1050,11 @@ ECPGdo(int lineno, const char *connection_name, char *query,...)
 	struct statement *stmt;
 	struct connection *con = get_connection(connection_name);
 	bool		status;
+	char *locale = setlocale(LC_NUMERIC, NULL);
+
+	/* Make sure we do NOT honor the locale for numeric input/output */
+	/* since the database wants teh standard decimal point */
+	setlocale(LC_NUMERIC, "C");
 
 	if (!ecpg_init(con, connection_name, lineno))
 		return(false);
@@ -1069,6 +1074,9 @@ ECPGdo(int lineno, const char *connection_name, char *query,...)
 
 	status = ECPGexecute(stmt);
 	free_statement(stmt);
+
+	/* and reser value so our application is not affected */
+	setlocale(LC_NUMERIC, locale);
 	return (status);
 }
 
-- 
GitLab