Jim C. Nasby wrote:
> What type are bare strings considered if they haven't been cast? I'm curious as
> to how the first case is of size 5, and how the last case is 301...
>
> decibel=# select pg_column_size('test');
> 5
"unknown". This seems to be a cstring (i.e. length 5 considering the
trailing \0)
> decibel=# select pg_column_size('test'::varchar);
> 8
> decibel=# select pg_column_size('test'::text);
> 8
> decibel=# select pg_column_size('test'::char(4));
> 8
4 fixed varlena + 4 string length
> decibel=# select pg_column_size('test'::name);
> 64
name is fixed 64 bytes (not varlena)
> decibel=# select
pg_column_size('123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890');
> 301
Same as the first case. (There are actual 300 chars here according to
my count, is that right?)
--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.