Ce n'est pas du tout un bogue.
Transformation de la chaîne littérale 'ab ' à character , voici ce que vous obtenez :
a
Par documentation :
charactersans spécificateur de longueur est équivalent àcharacter(1).
'a'::character(1) sera alors contraint à varchar (character varying ) pour tester l'égalité avec 'a'::varchar ou 'ab'::varchar et donne TRUE ou FALSE respectivement.
Fondamentalement, il n'y a pratiquement aucune bonne raison d'utiliser character du tout . C'est un type hérité qui a perdu son utilité. Utilisez simplement text ou varchar .
- Y a-t-il des inconvénients à utiliser le type de données "texte" pour stocker des chaînes ?