Non è affatto un bug.
Trasmissione della stringa letterale 'ab ' a character , ecco cosa ottieni:
a
Per documentazione:
character senza l'identificatore di lunghezza è equivalente a character(1) .
'a'::character(1) verrà quindi forzato a varchar (character varying ) per verificare l'uguaglianza con 'a'::varchar o 'ab'::varchar e restituisci TRUE o FALSE rispettivamente.
Fondamentalmente, non c'è quasi nessuna buona ragione per usare character per niente . È un tipo legacy che è sopravvissuto alla sua utilità. Usa semplicemente text o varchar .
- Qualche aspetto negativo dell'utilizzo del tipo di dati "testo" per la memorizzazione di stringhe?