Re: [HACKERS] libpq+MB/putenv(), getenv() clean up - Mailing list pgsql-hackers

From Tatsuo Ishii
Subject Re: [HACKERS] libpq+MB/putenv(), getenv() clean up
Date
Msg-id 20000115145242R.t-ishii@sra.co.jp
Whole thread Raw
In response to libpq+MB/putenv(), getenv() clean up  (Tatsuo Ishii <t-ishii@sra.co.jp>)
List pgsql-hackers
I have committed changes below.

> (1) Add a new member "int client_encoding" to struct pg_conn.

done.

> (2) Add an argument which is a pointer to PGconn to PQsetenvPoll() so
> that the client encoding can be set in (1) above.

Rather than adding new parameter, I changed the argument to PGconn *.

> (3) Add a new function PQclientencoding() to extract client_encoding
> from PGconn.

done.

> (4) Change PQmblen() so that it extracts encoding info using
> PQclientencoding() rather than calling getenv(). This also requires
> add an argument which is a pointer to PGconn.

Now,

extern int    PQmblen(const unsigned char *s, int encoding);

(Thanks goes to Peter for the suggestion)

> (5) Change fe-print.c:do_filed() to add an argument which is a pointer to
> PGconn.

I found the arugument PGresult *res of do_field() has a pointer to
PGconn. So I did not need to change the interface.

(6) lots of changes have been made to psql to adapt the changes above.

Though I have run the regression test with/without multibyte and did
not find particular problem, please let me know if you find anything
wrong with those changes.
--
Tatsuo Ishii


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: [HACKERS] Re: Peter opens a can of worms
Next
From: Tom Lane
Date:
Subject: Re: [HACKERS] psql variables fixed (?)