X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fpsql-reader.c;h=4cbd8409eae549cf6cd1118a001c698e46a88125;hb=refs%2Fbuilds%2F20120608060502%2Fpspp;hp=346d214ad31e6d43050dccba941979390cb5cf33;hpb=81579d9e9f994fb2908f50af41c3eb033d216e58;p=pspp diff --git a/src/data/psql-reader.c b/src/data/psql-reader.c index 346d214ad3..4cbd8409ea 100644 --- a/src/data/psql-reader.c +++ b/src/data/psql-reader.c @@ -27,6 +27,7 @@ #include "data/dictionary.h" #include "data/format.h" #include "data/variable.h" +#include "libpspp/i18n.h" #include "libpspp/message.h" #include "libpspp/misc.h" #include "libpspp/str.h" @@ -229,6 +230,7 @@ psql_open_reader (struct psql_read_info *info, struct dictionary **dict) int n_fields, n_tuples; PGresult *qres = NULL; casenumber n_cases = CASENUMBER_MAX; + const char *encoding; struct psql_reader *r = xzalloc (sizeof *r); struct string query ; @@ -285,21 +287,19 @@ psql_open_reader (struct psql_read_info *info, struct dictionary **dict) r->postgres_epoch = calendar_gregorian_to_offset (2000, 1, 1, NULL); - - /* Create the dictionary and populate it */ - *dict = r->dict = dict_create (); - { const int enc = PQclientEncoding (r->conn); /* According to section 22.2 of the Postgresql manual a value of zero (SQL_ASCII) indicates "a declaration of ignorance about the encoding". - Accordingly, we don't set the dictionary's encoding + Accordingly, we use the default encoding if we find this value. */ - if ( enc != 0 ) - dict_set_encoding (r->dict, pg_encoding_to_char (enc)); + encoding = enc ? pg_encoding_to_char (enc) : get_default_encoding (); + + /* Create the dictionary and populate it */ + *dict = r->dict = dict_create (encoding); } /*