Vůbec nejde o chybu.
Odsílání řetězcového literálu 'ab ' na character , získáte toto:
a
Podle dokumentace:
characterbez specifikátoru délky je ekvivalentnícharacter(1).
'a'::character(1) bude poté vynucen na varchar (character varying ) pro testování rovnosti s 'a'::varchar nebo 'ab'::varchar a výsledkem je TRUE nebo FALSE respektive.
V podstatě neexistuje žádný dobrý důvod, proč používat character vůbec . Je to starší typ, který přežil svou užitečnost. Stačí použít text nebo varchar .
- Nějaké nevýhody používání datového typu "text" pro ukládání řetězců?