Bukan bug sama sekali.
Melempar string literal 'ab ' ke character , inilah yang Anda dapatkan:
a
Per dokumentasi:
charactertanpa penentu panjang sama dengancharacter(1).
'a'::character(1) kemudian akan dipaksa untuk varchar (character varying ) untuk menguji kesetaraan dengan 'a'::varchar atau 'ab'::varchar dan hasilkan TRUE atau FALSE masing-masing.
Pada dasarnya, hampir tidak ada alasan bagus untuk menggunakan character sama sekali . Ini adalah jenis warisan yang telah hidup lebih lama dari kegunaannya. Cukup gunakan text atau varchar .
- Apakah ada kerugian menggunakan tipe data "teks" untuk menyimpan string?