Re: PQexecPrepared() question - Mailing list pgsql-general

From Laurenz Albe
Subject Re: PQexecPrepared() question
Date
Msg-id 852dee881b6cc82b9d4b51d69d48c415e2a87b4d.camel@cybertec.at
Whole thread Raw
In response to Re: PQexecPrepared() question  (Igor Korot <ikorot01@gmail.com>)
Responses Re: PQexecPrepared() question
Re: PQexecPrepared() question
List pgsql-general
On Fri, 2025-12-19 at 20:10 -0800, Igor Korot wrote:
> > > > What is “clientencoding in this case?
> > >
> > > - if PGCLIENTENCODING is set in the environment of the client executable, that
> >
> > No it is not.
> >
> > > - otherwise, if "client_encoding" is set on the server, that
>
> I just checked the postgres.conf.
>
> This file does not have any client_encoding.
>
> > > - otherwise, SQL_ASCII
>
> Which means that this is an encoding that will be used.

You can verify that with the SQL statement "SHOW client_encoding"
in your sample program.

> But then I don’t understand anything.
>
> The code I posted above worked fine on SELECT, but INSERT failed.
>
> If the SQL_ASCII is the encoding used both operations should fail. Or both succeeds.
>
> Could someone explain what happened?

SQL_ASCII as client encoding means that no conversion will take place.

Still, the database encoding (I suspect UTF8) will govern what can be stored
in the database.  Anything that is not valid UTF-8 will be rejected.

A SELECT will never cause an error - the client will just receive data
in UTF-8.

Yours,
Laurenz Albe



pgsql-general by date:

Previous
From: Igor Korot
Date:
Subject: Re: PQexecPrepared() question
Next
From: Igor Korot
Date:
Subject: Re: PQexecPrepared() question