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?