OSDN Git Service

Department of second thoughts: probably still need an IsTransactionState
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 27 Apr 2003 18:01:46 +0000 (18:01 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 27 Apr 2003 18:01:46 +0000 (18:01 +0000)
test in there...

src/backend/utils/mb/mbutils.c

index a39dad6..fe9829a 100644 (file)
@@ -4,7 +4,7 @@
  * (currently mule internal code (mic) is used)
  * Tatsuo Ishii
  *
- * $Header: /cvsroot/pgsql/src/backend/utils/mb/mbutils.c,v 1.40 2003/04/27 17:31:25 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/mb/mbutils.c,v 1.41 2003/04/27 18:01:46 tgl Exp $
  */
 #include "postgres.h"
 
@@ -107,6 +107,17 @@ SetClientEncoding(int encoding, bool doit)
        }
 
        /*
+        * If we're not inside a transaction then we can't do catalog lookups,
+        * so fail.  After backend startup, this could only happen if we
+        * are re-reading postgresql.conf due to SIGHUP --- so basically this
+        * just constrains the ability to change client_encoding on the fly
+        * from postgresql.conf.  Which would probably be a stupid thing to do
+        * anyway.
+        */
+       if (!IsTransactionState())
+               return -1;
+
+       /*
         * Look up the conversion functions.
         */
        to_server_proc = FindDefaultConversionProc(encoding,