aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/utils/mb/mbutils.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/backend/utils/mb/mbutils.c b/src/backend/utils/mb/mbutils.c
index 9b1b2021c4d..661a6ff882d 100644
--- a/src/backend/utils/mb/mbutils.c
+++ b/src/backend/utils/mb/mbutils.c
@@ -3,7 +3,7 @@
* client encoding and server internal encoding.
* (currently mule internal code (mic) is used)
* Tatsuo Ishii
- * $Id: mbutils.c,v 1.30 2002/08/08 06:35:26 ishii Exp $
+ * $Id: mbutils.c,v 1.31 2002/08/14 05:33:34 ishii Exp $
*/
#include "postgres.h"
#include "access/xact.h"
@@ -90,7 +90,21 @@ SetClientEncoding(int encoding, bool doit)
if (IsTransactionState())
{
ClientEncoding = &pg_enc2name_tbl[encoding];
+
+ if(ToServerConvPorc != NULL)
+ {
+ if (ToServerConvPorc->fn_extra)
+ pfree(ToServerConvPorc->fn_extra);
+ pfree(ToServerConvPorc);
+ }
ToServerConvPorc = to_server;
+
+ if(ToClientConvPorc != NULL)
+ {
+ if (ToClientConvPorc->fn_extra)
+ pfree(ToClientConvPorc->fn_extra);
+ pfree(ToClientConvPorc);
+ }
ToClientConvPorc = to_client;
}
return 0;