public void ClientEncodingEnvVar()
{
using (var conn = OpenConnection())
Assert.That(conn.ExecuteScalar("SHOW client_encoding"), Is.Not.EqualTo("SQL_ASCII"));
var prevEnvVar = Environment.GetEnvironmentVariable("PGCLIENTENCODING");
Environment.SetEnvironmentVariable("PGCLIENTENCODING", "SQL_ASCII");
// Note that the pool is unaware of the environment variable, so if a connection is
// returned from the pool it may contain the wrong client_encoding
var connString = new NpgsqlConnectionStringBuilder(ConnectionString)
{
ApplicationName = nameof(ClientEncodingEnvVar),
Pooling = false
};
try
{
using (var conn = OpenConnection(connString))
Assert.That(conn.ExecuteScalar("SHOW client_encoding"), Is.EqualTo("SQL_ASCII"));
}
finally
{
Environment.SetEnvironmentVariable("PGCLIENTENCODING", prevEnvVar);
}
}