*** fe-connect.c.old Sun Jan 5 09:34:00 2003 --- fe-connect.c Sun Jan 5 09:46:25 2003 *************** *** 2730,2739 **** } int ! PQclientEncoding(const PGconn *conn) { if (!conn || conn->status != CONNECTION_OK) return -1; return conn->client_encoding; } --- 2730,2754 ---- } int ! PQclientEncoding(PGconn *conn) { + static char query[] = "show client_encoding"; + PGresult *res; + char *encoding; + if (!conn || conn->status != CONNECTION_OK) return -1; + res = PQexec(conn, query); + + if(res == (PGresult *) NULL) + return -1; + if(res->resultStatus != PGRES_TUPLES_OK) + return -1; + else{ + encoding = PQgetvalue(res, 0, 0); + conn->client_encoding = pg_char_to_encoding(encoding); + } + PQclear(res); return conn->client_encoding; }