X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fdata%2Fpsql-reader.c;h=2d9a2678086380725b8cb812305f5682373e8bf0;hb=bfd019e1c9272143a637747cf8dbd66774696483;hp=346d214ad31e6d43050dccba941979390cb5cf33;hpb=81579d9e9f994fb2908f50af41c3eb033d216e58;p=pspp diff --git a/src/data/psql-reader.c b/src/data/psql-reader.c index 346d214ad3..2d9a267808 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,23 +287,21 @@ 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 (); + /* select count (*) from (select * from medium) stupid_sql_standard; */