We now have defenses against running a non-LOCALE-enabled backend in a
database that was created in non-C locale.  Shouldn't we likewise
prevent a non-MULTIBYTE-enabled backend from running in a database with
a multibyte encoding that's not SQL_ASCII?  Or am I missing a reason why
that is safe?

I propose the following addition to ReverifyMyDatabase in postinit.c:

  #ifdef MULTIBYTE
        SetDatabaseEncoding(dbform->encoding);
+ #else
+       if (dbform->encoding != SQL_ASCII)
+               elog(FATAL, "some suitable error message");
  #endif

Comments?

                        regards, tom lane

Reply via email to