"And. Andruikhanov" <andy@euinf.dp.ua> writes:
> insert into ku values(1, '\000');
This cannot work as you expect, because what comes out of the parser is
a string containing a single null character --- and that's fed to a
datatype input routine that expects a null-terminated string. So the
char(n) input routine thinks you entered just '', which it blank-pads
to one character.
In general the Postgres I/O routines are not friendly to embedded nulls.
The char/varchar/text types could not support embedded nulls even
without the I/O problem, because they depend on C library routines like
strcoll(), and those routines don't support strings with embedded nulls.
regards, tom lane