Vůbec nejde o chybu.
Odsílání řetězcového literálu 'ab '
na character
, získáte toto:
a
Podle dokumentace:
character
bez 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ů?