On Tue, Nov 30, 2010 at 08:56, Alvaro Herrera <alvhe...@commandprompt.com> wrote: >> > * I hope pg_execute_from_file (and pg_read_file) had an option >> > to specify an character encoding of the file. Especially, SJIS >> > is still used widely, but it is not a valid server encoding. >> >> So, what about client_encoding here, again? > > I tried this in an earlier iteration of this patch, and it works fine > (albeit with a Latin1 file in an UTF8 encoded database, but presumably > this is no different from any other pair of client/server encodings; > recoding took place correctly during execution).
client_encoding won't work at all because read_sql_queries_from_file() uses pg_verifymbstr(), that is verify the input with *server_encoding*. Even if we replace it with pg_verify_mbstr(client_encoding, ...) and pg_do_encoding_conversion(from client_encoding to server_encoding), it still won't work well when error messages are raised. The client expects the original client encoding, but messages are sent in the file encoding. It would be a security hole. -- Itagaki Takahiro -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers