Bonjour.
libpq permet d'utiliser la fonction PQexecParams pour obtenir des résultats en mode "texte" ou en mode "binaire".
Le mode texte est relativement simple: tout apparait sous forme de chaine de caractères et il n'y a plus qu'à retransformer en ce qu'on veut, que ce soit une valeur simple (par exemple entier, flottant, booléen...) ou une valeur plus complexe (par exemple point, line, box, circle, bytea...). Ca n'est pas très difficile.
Le mode binaire oblige à recalculer les valeurs voulues, par exemple les entiers sur 4 octets (en big-endian en plus), etc. Ce n'est pas très difficile non plus mais là où ça se corse, c'est pour récupérer des données timestamp, ou integer[], ou encore des données de types composés créés par l'utilisateur... Savez-vous s'il y a quelque part une doc sur le format binaire des différents types de données possibles ?
Et, question subsidiaire : y a-t-il un avantage à récupérer ces données en format binaire plutôt que texte, mis à part peut-être une petite considération de performance si on considère que pour fournir du format texte, libpq est obligé de transformer le format binaire natif, et que pour l'utiliser ensuite, je suis obligé de le retransformer en int, en bool, en float, etc. ?
Merci!
Partager