Ces fonctions contrôlent divers détails du comportement de libpq.
PQclientEncoding
     
     #Renvoie l'encodage client.
      int PQclientEncoding(const PGconn *conn);
      
      Notez qu'il renvoie l'ID de l'encodage, pas une chaîne symbolique
      telle que EUC_JP. Renvoie -1 en cas d'échec. Pour
      convertir un ID d'encodage en nom, vous pouvez utiliser :
      
       char *pg_encoding_to_char(int encoding_id);
      
PQsetClientEncoding
     
     #Configure l'encodage client.
      int PQsetClientEncoding(PGconn *conn, const char *encoding);
      
      conn est la connexion au serveur, et
      encoding est l'encodage que vous voulez
      utiliser. Si la fonction initialise l'encodage avec succès, elle
      renvoie 0, sinon -1. L'encodage en cours pour cette connexion peut être
      déterminé en utilisant 
     PQclientEncoding
     
    .
     
PQsetErrorVerbosity #
      Détermine la verbosité des messages renvoyés par
      PQerrorMessage et PQresultErrorMessage.
      
typedef enum
       {
           PQERRORS_TERSE,
           PQERRORS_DEFAULT,
           PQERRORS_VERBOSE,
           PQERRORS_SQLSTATE
       } PGVerbosity;
       PGVerbosity PQsetErrorVerbosity(PGconn *conn, PGVerbosity verbosity);
      
      PQsetErrorVerbosity initialise le mode de verbosité, renvoyant le
      paramétrage précédant de cette connexion. Dans le mode
      TERSE, les
      messages renvoyés incluent seulement la sévérité, le texte principal et la
      position ; ceci tiendra normalement sur une seule ligne. Le mode
      DEFAULT produit des messages qui incluent ces champs ainsi que les champs détail,
      astuce ou contexte (ils pourraient être sur plusieurs lignes). Le mode
      VERBOSE inclut tous les champs disponibles. Le mode
      SQLSTATE inclut seulement la sévérité de l'erreur
      et le code d'erreur SQLSTATE, s'il est disponible (dans le
      cas contraire, la sortie est identique au mode TERSE).
     
      Modifier la verbosité
      n'affecte pas les messages disponibles à partir d'objets
      PGresult déjà existants, seulement ceux créés après.
      (Mais voyez PQresultVerboseErrorMessage si vous voulez
      afficher une erreur précédente avec une verbosité différente).
     
PQsetErrorContextVisibility
     
     #
      Détermine la gestion des champs CONTEXT dans les
      messages renvoyées par PQerrorMessage
      et PQresultErrorMessage.
      
typedef enum
{
    PQSHOW_CONTEXT_NEVER,
    PQSHOW_CONTEXT_ERRORS,
    PQSHOW_CONTEXT_ALWAYS
} PGContextVisibility;
PGContextVisibility PQsetErrorContextVisibility(PGconn *conn, PGContextVisibility show_context);
      
      
     PQsetErrorContextVisibility
     
     configure le mode
      d'affichage du contexte, renvoyant la précédente configuration de la
      connexion. Ce mode contrôle si le champ CONTEXT est
      inclus dans les messages. Le mode NEVER n'inclut jamais
      CONTEXT, alors que ALWAYS l'inclut
      en permanence s'il est disponible. Dans le mode par défaut,
      ERRORS, les champs CONTEXT sont
      inclus seulement pour les messages d'erreur, et non pas pour les messages
      d'informations et d'avertissements. (Cependant, si le paramètre verbosity est TERSE
      ou SQLSTATE, les champs CONTEXT
      sont omis quelque soit le contexte de mode d'affichage.)
     
      La modification de ce mode n'affecte
      pas les messages disponibles à partir des objets
      PGresult déjà existants, seulement ceux créés
      après. (Cependant, voyez PQresultVerboseErrorMessage
      si vous voulez afficher une erreur précédente avec un mode d'affichage
      différent.)
     
PQtrace #Active la trace de la communication entre client et serveur vers un fichier de débogage.
void PQtrace(PGconn *conn, FILE *stream);
      
      Chaque ligne consiste en : un horodatage optionnel, un indicateur
      de direction(F pour les messages du client au
      serveur ou B pour les messages du serveur au
      client), la longueur du message, le type du message et le contenu du
      message. Les champs autre que le contenu du message
      (horodatage, direction, longueur et type) sont séparés par une
      tabulation. Le contenu du message est séparé par un espace. Les chaînes
      du protocole sont entourées de guillemets doubles alors que les chaînes
      utilisées comme valeurs de données sont entourées de guillemets
      simples. Les caractères non affichables sont affichés sous la forme
      d'échappement hexadécimaux. Plus d'informations spécifique au type de
      message sont disponibles dans Section 55.7.
     
       Sur Windows, si la bibliothèque libpq et une
       application sont compilées avec des options différentes, cet appel de
       fonction fera planter l'application car la représentation interne des
       pointeurs FILE diffère. Spécifiquement, les options
       multi-threaded/single-threaded, release/debug et static/dynamic
       devraient être identiques pour la bibliothèque et les applications qui
       l'utilisent.
      
PQsetTraceFlags #Contrôle le comportement des traces sur la communication client/serveur.
void PQsetTraceFlags(PGconn *conn, int flags);
      flags contient des bits décrivant le mode
      opérationnel des traces. Si flags contient
      PQTRACE_SUPPRESS_TIMESTAMPS, alors l'horodatage
      n'est pas inclus lors de l'affichage de chaque message. Si
      flags contient
      PQTRACE_REGRESS_MODE, alors certains champs sont
      modifiés lors de la sortie de chaque message, comme par exemple l'OID
      de l'objet, pour rendre la sortie plus agréable à utiliser dans des
      environnements de tests. Cette fonction doit être appelée après l'appel
      à PQtrace.
     
PQuntrace #
      Désactive les traces commencées avec PQtrace.
      
void PQuntrace(PGconn *conn);