Re: Explanation of pg_column_size

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Explanation of pg_column_size
Дата
Msg-id 18647.1470089598@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Explanation of pg_column_size  (Steve Baldwin <steve.baldwin@gmail.com>)
Список pgsql-novice
Steve Baldwin <steve.baldwin@gmail.com> writes:
> Can someone please explain the following to me:

> mse=# with l as (select 0.1::numeric as numlit) select
> pg_column_size(numlit) as sz_numlit, pg_column_size(0.1::numeric) as
> sz_expr from l;
>  sz_numlit | sz_expr
> -----------+---------
>          5 |       8
> (1 row)

I think the first case is putting the value into a tuple, which will cause
it to be trimmed to short-header form (1 length byte, 4 payload bytes).
In the other case you're looking at a raw numeric_in result, which will
be in the default 4-byte-length-word format (plus the same 4 payload
bytes).  The former would be a more accurate representation of how
big this specific value would be on-disk.

            regards, tom lane


В списке pgsql-novice по дате отправления:

Предыдущее
От: Steve Baldwin
Дата:
Сообщение: Explanation of pg_column_size
Следующее
От: David Muller
Дата:
Сообщение: Column Does Not Exist Error: Order by an Particular Cell of an Array